0% found this document useful (0 votes)
18 views

Clousters Con AWS

This document discusses running Docker containers on Amazon Web Services. It describes Amazon ECS for managing Docker containers across a cluster of AWS EC2 instances. It also provides case studies of companies like Coursera, Remind, and Segment that use Amazon ECS for Docker container management. Finally, it outlines different architectures for running applications on ECS, including using Elastic Load Balancers, Weave Net for service discovery, or Consul for service registration and discovery across a cluster.

Uploaded by

martinez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Clousters Con AWS

This document discusses running Docker containers on Amazon Web Services. It describes Amazon ECS for managing Docker containers across a cluster of AWS EC2 instances. It also provides case studies of companies like Coursera, Remind, and Segment that use Amazon ECS for Docker container management. Finally, it outlines different architectures for running applications on ECS, including using Elastic Load Balancers, Weave Net for service discovery, or Consul for service registration and discovery across a cluster.

Uploaded by

martinez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Running Docker clusters on AWS

Julien Simon
Principal Technical Evangelist
Amazon Web Services

julsimon@amazon.com
@julsimon

09/11/2016
The problem

Given a certain amount of


processing power and memory,

how can we best manage


an arbitrary number of apps
running in Docker containers?
http://tidalseven.com
Docker on Amazon Web Services

Amazon EC2 Container Service (ECS)


•  https://aws.amazon.com/ecs/
•  Launched in 04/2015
•  Available in eu-west-1 & eu-central-1
•  No additional charge

Amazon EC2 Container Registry (ECR)


•  https://aws.amazon.com/ecr/
•  Launched in 12/2015
•  Available in eu-west-1 & eu-central-1
•  Free tier: 500MB / month for a year
•  $0.10 / GB / month + outgoing traffic
https://github.com/aws/amazon-ecs-init
https://github.com/aws/amazon-ecs-agent

http://www.allthingsdistributed.com/2015/07/under-the-hood-of-the-amazon-ec2-container-service.html
AWS Partners
https://aws.amazon.com/fr/containers/partners/
Case study: Coursera
https://www.youtube.com/watch?v=a45J6xAGUvA

•  Coursera deliver Massive Open Online Courses (14 million students,


1000+ courses). Their platform runs a large number of batch jobs,
notably to grade programming assignments. Grading jobs need to run in
near-real time while preventing execution of untrusted code inside the
Coursera platform.

•  After trying out some other Docker solutions, Coursera have picked
Amazon ECS and have even written their own scheduler.

•  “Amazon ECS enabled Coursera to focus on releasing new software !


rather than spending time managing clusters” - Frank Chen, Software
Engineer
Case study: Remind
https://www.youtube.com/watch?v=8zbbQkszP04

•  Messaging platform for


teachers, parents and
students (35M users,
2.5B messages, 50% of
U.S. public schools)

•  Micro-service platform
deployed on Heroku, “Moving to Amazon ECS significantly improved
migrated to Amazon ECS our service performance” Jason Fischl, VP of
(36 nodes in Q4’15) Engineering
Case study: Segment
https://aws.amazon.com/fr/solutions/case-studies/segment/

•  Segment provides a service used by businesses to collect customer data for


later use in analytics and marketing.

•  Different micro-services such as API, CDN, and App are deployed on


different Amazon ECS clusters. Each service registers to an ELB and
Amazon Route 53 points a local entry at each ELB. Services can
communicate with each other through DNS.

•  Segment have also built their own PaaS on top of AWS: "
https://segment.com/blog/the-segment-aws-stack/

“Switching to Amazon ECS has greatly simplified running a service without


needing to worry about provisioning or availability”"
Calvin French-Owen, Cofounder and CTO
The Amazon ECS CLI in one slide
https://github.com/aws/amazon-ecs-cli

ecs-cli configure --cluster myCluster --region eu-west-1


ecs-cli up --keypair myKey --capability-iam –size 3 

ecs-cli down myCluster --force

ecs-cli compose service up


ecs-cli compose service ps
ecs-cli compose service scale 8
ecs-cli compose service stop
ecs-cli compose service delete

aws ecs list-clusters


aws ecs describe-clusters --cluster myCluster
aws ecs list-container-instances --cluster myCluster

Homemade tool: ‘ecs-find’ 



https://github.com/juliensimon/aws/blob/master/ecs/ecs-find
Managing containers on ECS with the console
Demo #1"
"
Amazon Linux + Amazon ECS"
"
"
number of web apps (on port 80) = number of nodes in the cluster


Managing containers on ECS with Rancher
Demo #2"
"
RancherOS + Amazon ECS "
+ Rancher Server"
"
number of web apps (on port 80) = number of nodes in the cluster "

Architecture #1: Fixed ports + ELB

•  No service discovery,
no service registration:
automation required

•  Don’t use 1 ELB per


service. Use 1 single
ALB instead!

•  Only 1 container
from a given image
per ECS instance

Amazon EC2 Container Service Developer Guide


Architecture #2: Fixed ports + LB + DNS
https://aws.amazon.com/blogs/compute/service-discovery-an-amazon-ecs-reference-architecture/

•  Service registration done in


Route 53 by CloudWatch
Events and Lambda (new
CNAME for the LB)

•  Service discovery with DNS

•  Only 1 container
from a given image
per ECS instance
Architecture #3: Fixed ports + Weave + DNS
https://aws.amazon.com/blogs/apn/architecting-microservices-using-weave-net-and-amazon-ec2-container-service/

•  Service registration done by Weave


•  gossip protocol, no central server
•  IP address only (no port)

•  Service discovery & load balancing


done with DNS

•  LB for Internet-facing services

•  Only 1 container from a given image


per ECS instance
Demo #3 "
"
Amazon Linux + Amazon ECS "
+ Weave"
"
number of web apps (on port 80) = number of nodes in the cluster
Architecture #4: Random ports + Consul and friends
https://aws.amazon.com/blogs/compute/service-discovery-via-consul-with-amazon-ecs/ + tweaks ;)
ECS agent

ECS instance ECS instance ECS instance


ECS
cluster
Registrator

R C R C R C
:53 :53 :53 R
S W W S S
Consul agent

:random :random :random :random :random C


Fabio
IP and port number of service returned by local DNS lookup

F
P P P P P P Consul server Portal
EC2 instance
:random
:random :random :random :random :random
P
Stocks

F :9999 F :9999 F :9999


S
Weather

Consul traffic
omitted for brevity W
Internet and sanity J
Gateway Load Balancer
:80
Demo #4 "
Amazon Linux + Amazon ECS "
+ Consul + Registrator + Fabio"
"
"

number of web apps (on port 80) > number of nodes in the cluster…"
but this is really a complex setup!
Architecture #5: Random ports, much simpler!
https://aws.amazon.com/blogs/compute/microservice-delivery-with-amazon-ecs-and-application-load-
balancers/

•  ECS and the ALB work


hand in hand for
registration and discovery

•  Multiple containers from a


given image
per ECS instance
Demo #5"
"
Amazon Linux + Amazon ECS + ALB"
"
number of web apps (on port 80) > number of nodes in the cluster…"
and the setup doesn’t make your head hurt (too much) "

"

Additional resources
Tech articles by Werner Vogels, CTO, Amazon.com
http://www.allthingsdistributed.com/2014/11/amazon-ec2-container-service.html
http://www.allthingsdistributed.com/2015/04/state-management-and-scheduling-with-ecs.html"
http://www.allthingsdistributed.com/2015/07/under-the-hood-of-the-amazon-ec2-container-service.html

Amazon ECS videos @ AWS re:Invent 2015


Amazon ECS: Distributed Applications at Scale https://www.youtube.com/watch?v=eun8CqGqdk8
Turbocharge Your Deployment Pipeline with Containers https://www.youtube.com/watch?v=o4w8opVCI-Q
From Local Docker Development to Production https://www.youtube.com/watch?v=7CZFpHUPqXw

A earlier version of this talk, with a focus on Consul, Registrator & Fabio
https://www.youtube.com/playlist?list=PLJgojBtbsuc37iqrxro5S5DcMwv63vrTl

More sessions

•  7/11, 15:00 Hands-on with AWS IoT


•  8/11, 10:00 A 60-minute tour of AWS Compute
•  9/11, 10:00 Deep Dive: DevOps on AWS
•  9/11, 11:00 Running Docker clusters on AWS

•  21/11, 11:00 Move fast, build things with AWS


•  22/11, 11:00 Deep Dive: Amazon RDS
Danke sehr!
Julien Simon
Principal Technical Evangelist
Amazon Web Services

julsimon@amazon.com
@julsimon

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy