SlideShare a Scribd company logo
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.


AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
DevOps
Development Operation+
Development Operation
Development Operation
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS x Docker Swarm
~ !
•
$ docker run [options] [image]
$ docker service create [options] [image]
• Docker swarm mode
$ docker swarm init
Docker swarm cluster
$ docker swarm join [options]
•
•
•
•
•
•
• Clustering
• Scheduling
• / Rolling Update / Rollback
• Scale Out
• Service Discovery
• DNS / Auto DNS Register
• Multi-host network
• Load Balancing
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
https://docs.docker.com/docker-for-aws/
Elastic Load

Balancing
Manager Node

Auto Scaling Group
Worker Node

Auto Scaling Group
CloudWatch
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
https://docs.docker.com/docker-for-aws/
$ ssh -i <path-to-ssh-key> docker@<ssh-host>
Welcome to Docker!
$ docker info
$ docker node ls
docker service create 
--name=viz 
--publish=5000:8080/tcp 
--constraint=node.role==manager 
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock 
dockersamples/visualizer
docker service ls
docker service ps viz
docker service create 
--name=viz 
--publish=5000:8080/tcp 
--constraint=node.role==manager 
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock 
dockersamples/visualizer
name
publish
contraint
mount
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
docker network create --driver overlay vote-network
docker service create 
--name=vote 
--publish=3000:80 
--network=vote-network 
subicura/sample_vote:1
docker service scale vote=3
docker service create 
--name=redis 
redis:alpine
docker service rm redis
docker service create 
--network=vote-network 
--name=redis 
redis:alpine
docker network create --driver overlay result-network
docker service create 
--name=db 
--network=result-network 
--constraint=node.role==manager 
--mount=type=volume,src=db-data,dst=/var/lib/postgresql/data 
postgres:9.4
docker service create 
--name=worker 
--network=vote-network 
--network=result-network 
subicura/sample_worker:latest
docker service create 
--name=result 
--publish=3001:80 
--network=result-network 
--replicas 2 
subicura/sample_result:1
docker service update 
--image subicura/sample_vote:2 
vote
docker service update 
--image subicura/sample_result:2 
result
curl https://gist.githubusercontent.com/subicura/07a4e4f38768f9a1e6eeae37c6e1ad87/raw/
8810e90be73bcd21ee2c65e6e5c220c4d08fd17c/docker-stack.yml > docker-stack.yml
curl https://gist.githubusercontent.com/subicura/ffff392ddd3f4a2ede0a4727fafaa0da/raw/
1378a8414f86255e7cb4bda1f6018fe3166bae13/prometheus.yml > prometheus.yml
docker stack deploy -c ./docker-stack.yml prometheus-stack
admin / password
dashboard id - 609
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
https://traefik.io/
docker network create --driver overlay frontend-network
docker service create --name traefik 
--constraint 'node.role == manager' 
-p 80:80 
-p 8080:8080 
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock 
--network frontend-network 
traefik 
--docker 
--docker.swarmmode 
--docker.domain=aws.subicura.com 
--docker.watch 
--web
docker service create --name portainer 
--network frontend-network 
--label traefik.port=9000 
--constraint 'node.role == manager' 
--mount "type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock" 
portainer/portainer
docker service create 
--name=viz 
--network=frontend-network 
--label traefik.port=8080 
--constraint=node.role==manager 
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock 
dockersamples/visualizer
docker service create 
--name=vote 
--label traefik.port=80 
--label traefik.docker.network=frontend-network 
--network=vote-network 
--network=frontend-network 
--replicas 3 
subicura/sample_vote:2
docker service create 
--name=result 
--label traefik.port=80 
--label traefik.docker.network=frontend-network 
--label traefik.backend.loadbalancer.sticky=true 
--network=frontend-network 
--network=result-network 
--replicas 2 
subicura/sample_result:2
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
The three chief virtues of
a programmer are:
Laziness, Impatience and Hubris
, ,
Creator of Perl
The three chief virtues of
a programmer are:
Laziness, Impatience and Hubris
, ,
Creator of Perl
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
:)
http://www.purpleworks.co.kr/recruit
Thank you!
https://www.awssummit.kr

More Related Content

AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017