DOCKER ON AWSSascha Möllering | zanox AG
Sascha Möllering
Lead Engineer / DevOps Hipster
zanox AG
http://autoscaling.io
@sascha242
ABOUT ME
JAVA MAGAZIN 11.14
ARCHITEKTUR IM KONTEXT DER CLOUD: PATTERNS UND BEST
PRACTICES
AWS VIRTUAL CLOUD SUMMIT
CONTINUOUS DELIVERY IN AWS USING DOCKER
ENTWICKLER SPEZIAL: DOCKER
ÜBER DEN WOLKEN: EIN ERFAHRUNGSBERICHT ZUM DOCKER-
EINSATZ IN DER AMAZON CLOUD
ABOUT ME
●Our current project
●Highly scalable tracking application
●Multi-Region
●Multi-AZ
●Latency based routing
GENERAL ARCHITECTURE
RegionUS-WEST (N. California) EU-WEST (Ireland)
ASIA PAC
(Tokyo)
ASIA PAC
(Singapore)
US-WEST (Oregon)
SOUTH AMERICA (Sao
Paulo)
US-EAST (Virginia)
GOV CLOUD
ASIA PAC
(Sydney)
EU-CENTRAL (Frankfurt)
GENERAL ARCHITECTURE
Availability
Zone
GENERAL ARCHITECTURE
Internet
Auto Scaling group
Auto Scaling group
Availability Zone
Availability Zone
GENERAL ARCHITECTURE
Apache Kafka
IMMUTABLE SERVER
Berlin | 08.06.2012 | zanox | Company Präsentation
IMMUTABLE SERVER
●Trash your servers!!!
●New deployment => new infrastructure
●Don’t change an existing server
●Problem: snowflake server
IMMUTABLE SERVER
Berlin | 08.06.2012 | zanox | Company Präsentation
IMMUTABLE SERVER
IMMUTABLE SERVER
DOCKER REGISTRY
●Private Docker registry
●Based an EC2 and S3
●Stores custom images
EC2 instance with Docker
registry (port 5000)
S3 bucket to store
Docker images
DOCKER REGISTRY
DOCKER REGISTRY
Amazon Cloud
WorkstationGitHub
Jenkins
Python/Boto
Docker Image
Docker Registry S3 bucket with
Docker Images
● Implementation progress:
● CloudFormation template
● Uses VPC and Multi-AZ
● Scalable (ELB)
● SSL support missing
● https://github.com/SaschaMoellering/docker-
registry-aws
DOCKER REGISTRY
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
python start_docker_instance.py \
-r <myregistry>:5000 \
-i tracking-ppv \
-t 95 \
-q 4 \
-s quality \
-n 'Sascha Moellering’
-e '[email protected]'
-m trackingppv
-d '-d -p 8080:8080'
DEPLOYMENT
python start_elb.py \
-r <myregistry>:5000 \
-i tracking-ppv \
-t 95 \
-s quality \
-d '-d -p 8080:8080’
EC2 INSTANCES AND ELB
EC2 CONTAINER SERVICE
●Amazon EC2 Container Service (ECS):
● Container management service
● Fast
● Highly scalable
● Supports Docker
EC2 CONTAINER SERVICE
●Cluster
●Container Instance
●Task Definition
●Task
●Container
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
#!/bin/bash
echo ECS_CLUSTER = \
your_cluster_name >> \
/etc/ecs/ecs.config
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE
EC2 CONTAINER SERVICE