SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Docker Grenoble, 13/01/2016
Docker Lyon, 14/01/2016
Docker Nantes, 18/01/2016
Docker Rennes, 01/03/2016
Clustering Docker on AWS
with Amazon ECR & ECS
Julien Simon, Principal Technical Evangelist
@julsimon
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
Requirements for modern cluster orchestration
Distributed state management
Scalable scheduling
Built-in high availability
Amazon EC2 Container Service (ECS)
Launched in 04/2015
https://aws.amazon.com/ecs/
No additional charge J
Amazon EC2 Container Registry (ECR)
Launched in 12/2015
https://aws.amazon.com/ecr/
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
Case study: Coursera
https://www.youtube.com/watch?v=a45J6xAGUvA
“Amazon ECS enabled Coursera to focus on releasing new software
rather than spending time managing clusters”
Frank Chen, Software Engineer
Case study: Meteor
https://www.youtube.com/watch?v=xIc3WT6kAVw
“Can we scale the amount of compute resources necessary to run all our customers’
apps? Can we scale the mechanics of coordinating all those pieces? Using AWS, we
can answer ‘yes’ to both” - Matt DeBergalis, Cofounder & VP Product
Case study: Remind
“Moving to Amazon ECS significantly improved our service performance”
Jason Fischl, VP of Engineering
https://www.youtube.com/watch?v=8zbbQkszP04
DEMO #1
Demo gods, I’m your humble servant, please be good to me
Using the ‘aws’ and ‘ecs-cli’ command lines:
Create and scale an Amazon ECS cluster
Pull an image from an Amazon ECR registry
Run, scale and load-balance a simple PHP app
… and look at EC2 Instances, Security Groups, Auto-Scaling Groups,
Elastic Load Balancers and Cloud Formation
Load balancing services on fixed ports
Amazon EC2 Container Service Developer Guide
Micro-services: it gets worse J
Micro-services run in an ever-moving production environment:
continuous deployment, multiple versions running in parallel,
servers coming and going, etc.
•  Can micro-services be deployed and scaled independently?
•  Can multiple copies of a micro-service run on the same server?
•  Can micro-services register their name & port automatically?
•  Can micro-services discover each other?
•  Can traffic be load-balanced across multiple copies of a micro-service?
Yes we can!
•  Can micro-services be deployed and scaled independently?
Micro-service = Docker image + task definition + service definition
•  Can multiple copies of a micro-service run on the same server?
Let Docker assign a random port
•  Can micro-services register name & port automatically?
Use Registrator to inspect containers and register them in Consul
•  Can micro-services discover each other?
Use local Consul agent for DNS lookups
•  Can traffic be load-balanced across multiple copies of a micro-service?
User-facing service: ELB (80) à Fabio (fixed port) à service (random port)
Internal service: DNS lookup (53) à service (random port)
Internet
Gateway
Elastic Load
Balancer
Consul server
EC2 instance
R R RC C C
F F F:9999 :9999 :9999
:80
ECS agent
R
Registrator
C
Consul agent
F
Fabio
P
Portal
S
Stock
W
Weather
P P P PP P
S
:random
S
:random
S
:random
W
:random
W
:random
:random :random :random:random :random
ECS instance ECS instance ECS instance
IP and port number of service returned by local DNS lookup
Consul traffic
omitted for brevity
and sanity J
ECS
cluster
Load balancing services on random ports
:53:53:53
:random
J. Simon
DEMO #2Demo gods, I know I’m pushing it, but please don’t let me down now
Run an application built from 3 micro-services (portal, stock, weather) running on random ports
Use a combination of ELB, Fabio and Consul (DNS lookups) for load-balancing
Scale & break stuff, see what happens J
Thank you. Let’s keep in touch!
@aws_actus @julsimon
facebook.com/groups/AWSFrance/
AWS User Groups in Paris,
Lyon, Nantes, Lille & Rennes
(meetup.com)
March 7-8
AWS Summit
May 31st
April 20-22
March 23-24 April 6-7 (Lyon)
April 25
March 16
BONUS SLIDES
Using Amazon ECS
AWS Console
https://console.aws.amazon.com/ecs/
AWS CLI
https://github.com/aws/aws-cli
https://github.com/awslabs/aws-shell NEW!
AWS SDK (Java, .NET, Node.js, PHP,
Python, Ruby, Go, C++)
https://github.com/aws/aws-sdk-*
Amazon ECS CLI
https://github.com/aws/amazon-ecs-cli
https://www.youtube.com/watch?v=MMr78xAiZpQ
https://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/ECS_GetStarted.html
Amazon ECS resources
Building demos #1 & #2
https://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/docker-basics.html
https://github.com/awslabs/ecs-demo-php-simple-app
https://aws.amazon.com/blogs/compute/service-discovery-via-consul-with-amazon-ecs/
https://github.com/awslabs/service-discovery-ecs-consul
https://www.consul.io/ - https://github.com/gliderlabs/registrator - https://github.com/eBay/fabio
Tech articles by Werner Vogels, CTO of Amazon
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 video @ 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 Deployments https://www.youtube.com/watch?v=7CZFpHUPqXw
Managing Amazon ECR repositories
$ aws ecr create-repository --repository-name REPO_NAME
--region us-east-1
$ aws ecr describe-repositories --region us-east-1
$ aws ecr delete-repository --repository-name REPO_NAME
--region us-east-1
Managing Docker images with ECR
$ aws ecr get-login --region us-east-1
<run docker login command provided as output>
$ docker build -t REPO_NAME .
$ docker tag REPO_NAME:latest
ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/REPO_NAME:latest
$ docker push ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com
REPO_NAME:latest
Creating, scaling and deleting an ECS cluster
$ ecs-cli configure -c CLUSTER_NAME -r eu-west-1
$ ecs-cli up --keypair KEY_PAIR_ID --capability-iam --size 1
--instance-type t2.micro
$ ecs-cli scale --size 3 --capability-iam
$ ecs-cli ps
$ ecs-cli down CLUSTER_NAME --force
Reminder:
•  ‘ecs-cli up’ launches a CloudFormation template
•  By default, the cluster is created in a new VPC
•  By default, only port 80 is open on ECS instances
•  See ‘ecs-cli up –help’ for advanced networking options
Basic ECS commands
$ aws ecs list-clusters
$ aws ecs describe-clusters --cluster CLUSTER_NAME
$ aws ecs list-container-instances --cluster CLUSTER_NAME
$ aws ecs describe-container-instances --cluster CLUSTER_NAME
--container-instances ECS_INSTANCE_ID
Updating the Amazon ECS agent
$ aws ecs update-container-agent --cluster CLUSTER_NAME
--container-instance ECS_INSTANCE_ID
#!/bin/bash
for i in `aws ecs list-container-instances --cluster CLUSTER_NAME | grep arn | cut -b 64-99`
do
aws ecs update-container-agent --cluster CLUSTER_NAME--container-instance $i
done
Allowing SSH access on an ECS cluster
$ aws ecs describe-container-instances --cluster CLUSTER_NAME
--container-instances ECS_INSTANCE_ID
--query 'containerInstances[*].ec2InstanceId’
$ aws ec2 describe-instances --instance-ids EC2_INSTANCE_ID
--query "Reservations[*].Instances[*].SecurityGroups[*].GroupId"
$ aws ec2 authorize-security-group-ingress
--group-id SECURITY_GROUP_ID
--protocol tcp --port 22 --cidr 0.0.0.0/0
Amazon ECS metadata
Log into the ECS instance
Instance information
$ curl http://localhost:51678/v1/metadata
Task information
$ curl http://localhost:51678/v1/tasks
Creating and scaling an Amazon ECS service
Write a docker-compose.yml file
$ ecs-cli compose service start
$ ecs-cli compose service up
$ ecs-cli compose service scale 3
Stopping and deleting an Amazon ECS service
$ ecs-cli compose service stop
$ ecs-cli compose service delete

Mais conteúdo relacionado

Mais procurados

Building a Serverless Pipeline
Building a Serverless PipelineBuilding a Serverless Pipeline
Building a Serverless PipelineJulien SIMON
 
Hands-on with AWS IoT
Hands-on with AWS IoTHands-on with AWS IoT
Hands-on with AWS IoTJulien SIMON
 
Workshop: Building Containerized Swift Applications on Amazon ECS
Workshop: Building Containerized Swift Applications on Amazon ECSWorkshop: Building Containerized Swift Applications on Amazon ECS
Workshop: Building Containerized Swift Applications on Amazon ECSAmazon Web Services
 
Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC...
 Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC... Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC...
Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC...Julien SIMON
 
Amazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionAmazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionPaolo latella
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)Julien SIMON
 
Building serverless apps with Node.js
Building serverless apps with Node.jsBuilding serverless apps with Node.js
Building serverless apps with Node.jsJulien SIMON
 
Serverless architectures on aws
Serverless architectures on awsServerless architectures on aws
Serverless architectures on awsPaolo latella
 
AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo  AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo Amazon Web Services
 
CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016Paolo latella
 
Introduction to Amazon Lightsail
Introduction to Amazon LightsailIntroduction to Amazon Lightsail
Introduction to Amazon LightsailAmazon Web Services
 
An introduction to serverless architectures (February 2017)
An introduction to serverless architectures (February 2017)An introduction to serverless architectures (February 2017)
An introduction to serverless architectures (February 2017)Julien SIMON
 
AWS Webcast - Getting Started with AWS OpsWorks
AWS Webcast - Getting Started with AWS OpsWorksAWS Webcast - Getting Started with AWS OpsWorks
AWS Webcast - Getting Started with AWS OpsWorksAmazon Web Services
 
Serverless Frameworks on AWS
Serverless Frameworks on AWSServerless Frameworks on AWS
Serverless Frameworks on AWSJulien SIMON
 
AWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemAWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemNaoya Hashimoto
 
Building Serverless APIs on AWS
Building Serverless APIs on AWSBuilding Serverless APIs on AWS
Building Serverless APIs on AWSJulien SIMON
 
ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate
ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate
ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate Massimo Ferre'
 
Understand AWS OpsWorks - A DevOps Tool from AWS
Understand AWS OpsWorks - A DevOps Tool from AWSUnderstand AWS OpsWorks - A DevOps Tool from AWS
Understand AWS OpsWorks - A DevOps Tool from AWSdevopsjourney
 
[Jun AWS 201] Elastic Beanstalk for Startups
[Jun AWS 201] Elastic Beanstalk for Startups[Jun AWS 201] Elastic Beanstalk for Startups
[Jun AWS 201] Elastic Beanstalk for StartupsAmazon Web Services Korea
 
Developing and deploying serverless applications (February 2017)
Developing and deploying serverless applications (February 2017)Developing and deploying serverless applications (February 2017)
Developing and deploying serverless applications (February 2017)Julien SIMON
 

Mais procurados (20)

Building a Serverless Pipeline
Building a Serverless PipelineBuilding a Serverless Pipeline
Building a Serverless Pipeline
 
Hands-on with AWS IoT
Hands-on with AWS IoTHands-on with AWS IoT
Hands-on with AWS IoT
 
Workshop: Building Containerized Swift Applications on Amazon ECS
Workshop: Building Containerized Swift Applications on Amazon ECSWorkshop: Building Containerized Swift Applications on Amazon ECS
Workshop: Building Containerized Swift Applications on Amazon ECS
 
Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC...
 Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC... Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC...
Using Amazon CloudWatch Events, AWS Lambda and Spark Streaming to Process EC...
 
Amazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionAmazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to production
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)
 
Building serverless apps with Node.js
Building serverless apps with Node.jsBuilding serverless apps with Node.js
Building serverless apps with Node.js
 
Serverless architectures on aws
Serverless architectures on awsServerless architectures on aws
Serverless architectures on aws
 
AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo  AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo
 
CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016
 
Introduction to Amazon Lightsail
Introduction to Amazon LightsailIntroduction to Amazon Lightsail
Introduction to Amazon Lightsail
 
An introduction to serverless architectures (February 2017)
An introduction to serverless architectures (February 2017)An introduction to serverless architectures (February 2017)
An introduction to serverless architectures (February 2017)
 
AWS Webcast - Getting Started with AWS OpsWorks
AWS Webcast - Getting Started with AWS OpsWorksAWS Webcast - Getting Started with AWS OpsWorks
AWS Webcast - Getting Started with AWS OpsWorks
 
Serverless Frameworks on AWS
Serverless Frameworks on AWSServerless Frameworks on AWS
Serverless Frameworks on AWS
 
AWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemAWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant system
 
Building Serverless APIs on AWS
Building Serverless APIs on AWSBuilding Serverless APIs on AWS
Building Serverless APIs on AWS
 
ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate
ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate
ContainerDay 2020 - Using Docker as a frontend for Amazon ECS and AWS Fargate
 
Understand AWS OpsWorks - A DevOps Tool from AWS
Understand AWS OpsWorks - A DevOps Tool from AWSUnderstand AWS OpsWorks - A DevOps Tool from AWS
Understand AWS OpsWorks - A DevOps Tool from AWS
 
[Jun AWS 201] Elastic Beanstalk for Startups
[Jun AWS 201] Elastic Beanstalk for Startups[Jun AWS 201] Elastic Beanstalk for Startups
[Jun AWS 201] Elastic Beanstalk for Startups
 
Developing and deploying serverless applications (February 2017)
Developing and deploying serverless applications (February 2017)Developing and deploying serverless applications (February 2017)
Developing and deploying serverless applications (February 2017)
 

Semelhante a Clustering Docker on AWS with Amazon ECR & ECS

Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Amazon Web Services
 
Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)Julien SIMON
 
Docker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesDocker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesJulien SIMON
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)Julien SIMON
 
Monitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesAmazon Web Services
 
Advanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECSAdvanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECSJulien SIMON
 
Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016Amazon Web Services
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at ScaleAmazon Web Services
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAmazon Web Services
 
Advanced Scheduling with Amazon ECS (September 2017)
Advanced Scheduling with Amazon ECS (September 2017)Advanced Scheduling with Amazon ECS (September 2017)
Advanced Scheduling with Amazon ECS (September 2017)Julien SIMON
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWSAmazon Web Services
 
February 2016 Webinar Series - EC2 Container Service Deep Dive
February 2016 Webinar Series - EC2 Container Service Deep Dive February 2016 Webinar Series - EC2 Container Service Deep Dive
February 2016 Webinar Series - EC2 Container Service Deep Dive Amazon Web Services
 
初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務Amazon Web Services
 
AWS November Webinar Series - From Local Development to Production Using the ...
AWS November Webinar Series - From Local Development to Production Using the ...AWS November Webinar Series - From Local Development to Production Using the ...
AWS November Webinar Series - From Local Development to Production Using the ...Amazon Web Services
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS Riyadh User Group
 
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayAmazon Web Services Korea
 
Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017Philipp Garbe
 

Semelhante a Clustering Docker on AWS with Amazon ECR & ECS (20)

Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
 
Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)
 
Docker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesDocker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and Kubernetes
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)
 
Monitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar Series
 
Advanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECSAdvanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECS
 
Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
 
應用開發新思維
應用開發新思維應用開發新思維
應用開發新思維
 
Introduction to Docker on AWS
Introduction to Docker on AWSIntroduction to Docker on AWS
Introduction to Docker on AWS
 
Advanced Scheduling with Amazon ECS (September 2017)
Advanced Scheduling with Amazon ECS (September 2017)Advanced Scheduling with Amazon ECS (September 2017)
Advanced Scheduling with Amazon ECS (September 2017)
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWS
 
February 2016 Webinar Series - EC2 Container Service Deep Dive
February 2016 Webinar Series - EC2 Container Service Deep Dive February 2016 Webinar Series - EC2 Container Service Deep Dive
February 2016 Webinar Series - EC2 Container Service Deep Dive
 
初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務
 
AWS November Webinar Series - From Local Development to Production Using the ...
AWS November Webinar Series - From Local Development to Production Using the ...AWS November Webinar Series - From Local Development to Production Using the ...
AWS November Webinar Series - From Local Development to Production Using the ...
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
 
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
 
Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017
 

Mais de Julien SIMON

An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceJulien SIMON
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersJulien SIMON
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with TransformersJulien SIMON
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Julien SIMON
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Julien SIMON
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Julien SIMON
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)Julien SIMON
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...Julien SIMON
 
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)Julien SIMON
 
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...Julien SIMON
 
A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)Julien SIMON
 
Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Julien SIMON
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Julien SIMON
 
The Future of AI (September 2019)
The Future of AI (September 2019)The Future of AI (September 2019)
The Future of AI (September 2019)Julien SIMON
 
Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Julien SIMON
 
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Julien SIMON
 
Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Julien SIMON
 
Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Julien SIMON
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Julien SIMON
 
Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Julien SIMON
 

Mais de Julien SIMON (20)

An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging Face
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face Transformers
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with Transformers
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
 
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
 
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
 
A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)
 
Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)
 
The Future of AI (September 2019)
The Future of AI (September 2019)The Future of AI (September 2019)
The Future of AI (September 2019)
 
Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)
 
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
 
Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)
 
Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)
 
Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)
 

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Clustering Docker on AWS with Amazon ECR & ECS

  • 1. © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Docker Grenoble, 13/01/2016 Docker Lyon, 14/01/2016 Docker Nantes, 18/01/2016 Docker Rennes, 01/03/2016 Clustering Docker on AWS with Amazon ECR & ECS Julien Simon, Principal Technical Evangelist @julsimon
  • 2. 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
  • 3. Requirements for modern cluster orchestration Distributed state management Scalable scheduling Built-in high availability Amazon EC2 Container Service (ECS) Launched in 04/2015 https://aws.amazon.com/ecs/ No additional charge J Amazon EC2 Container Registry (ECR) Launched in 12/2015 https://aws.amazon.com/ecr/ Free tier: 500MB / month for a year $0.10 / GB / month + outgoing traffic
  • 5. Case study: Coursera https://www.youtube.com/watch?v=a45J6xAGUvA “Amazon ECS enabled Coursera to focus on releasing new software rather than spending time managing clusters” Frank Chen, Software Engineer
  • 6. Case study: Meteor https://www.youtube.com/watch?v=xIc3WT6kAVw “Can we scale the amount of compute resources necessary to run all our customers’ apps? Can we scale the mechanics of coordinating all those pieces? Using AWS, we can answer ‘yes’ to both” - Matt DeBergalis, Cofounder & VP Product
  • 7. Case study: Remind “Moving to Amazon ECS significantly improved our service performance” Jason Fischl, VP of Engineering https://www.youtube.com/watch?v=8zbbQkszP04
  • 8. DEMO #1 Demo gods, I’m your humble servant, please be good to me Using the ‘aws’ and ‘ecs-cli’ command lines: Create and scale an Amazon ECS cluster Pull an image from an Amazon ECR registry Run, scale and load-balance a simple PHP app … and look at EC2 Instances, Security Groups, Auto-Scaling Groups, Elastic Load Balancers and Cloud Formation
  • 9. Load balancing services on fixed ports Amazon EC2 Container Service Developer Guide
  • 10. Micro-services: it gets worse J Micro-services run in an ever-moving production environment: continuous deployment, multiple versions running in parallel, servers coming and going, etc. •  Can micro-services be deployed and scaled independently? •  Can multiple copies of a micro-service run on the same server? •  Can micro-services register their name & port automatically? •  Can micro-services discover each other? •  Can traffic be load-balanced across multiple copies of a micro-service?
  • 11. Yes we can! •  Can micro-services be deployed and scaled independently? Micro-service = Docker image + task definition + service definition •  Can multiple copies of a micro-service run on the same server? Let Docker assign a random port •  Can micro-services register name & port automatically? Use Registrator to inspect containers and register them in Consul •  Can micro-services discover each other? Use local Consul agent for DNS lookups •  Can traffic be load-balanced across multiple copies of a micro-service? User-facing service: ELB (80) à Fabio (fixed port) à service (random port) Internal service: DNS lookup (53) à service (random port)
  • 12. Internet Gateway Elastic Load Balancer Consul server EC2 instance R R RC C C F F F:9999 :9999 :9999 :80 ECS agent R Registrator C Consul agent F Fabio P Portal S Stock W Weather P P P PP P S :random S :random S :random W :random W :random :random :random :random:random :random ECS instance ECS instance ECS instance IP and port number of service returned by local DNS lookup Consul traffic omitted for brevity and sanity J ECS cluster Load balancing services on random ports :53:53:53 :random J. Simon
  • 13. DEMO #2Demo gods, I know I’m pushing it, but please don’t let me down now Run an application built from 3 micro-services (portal, stock, weather) running on random ports Use a combination of ELB, Fabio and Consul (DNS lookups) for load-balancing Scale & break stuff, see what happens J
  • 14. Thank you. Let’s keep in touch! @aws_actus @julsimon facebook.com/groups/AWSFrance/ AWS User Groups in Paris, Lyon, Nantes, Lille & Rennes (meetup.com) March 7-8 AWS Summit May 31st April 20-22 March 23-24 April 6-7 (Lyon) April 25 March 16
  • 16. Using Amazon ECS AWS Console https://console.aws.amazon.com/ecs/ AWS CLI https://github.com/aws/aws-cli https://github.com/awslabs/aws-shell NEW! AWS SDK (Java, .NET, Node.js, PHP, Python, Ruby, Go, C++) https://github.com/aws/aws-sdk-* Amazon ECS CLI https://github.com/aws/amazon-ecs-cli https://www.youtube.com/watch?v=MMr78xAiZpQ https://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/ECS_GetStarted.html
  • 17. Amazon ECS resources Building demos #1 & #2 https://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/docker-basics.html https://github.com/awslabs/ecs-demo-php-simple-app https://aws.amazon.com/blogs/compute/service-discovery-via-consul-with-amazon-ecs/ https://github.com/awslabs/service-discovery-ecs-consul https://www.consul.io/ - https://github.com/gliderlabs/registrator - https://github.com/eBay/fabio Tech articles by Werner Vogels, CTO of Amazon 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 video @ 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 Deployments https://www.youtube.com/watch?v=7CZFpHUPqXw
  • 18. Managing Amazon ECR repositories $ aws ecr create-repository --repository-name REPO_NAME --region us-east-1 $ aws ecr describe-repositories --region us-east-1 $ aws ecr delete-repository --repository-name REPO_NAME --region us-east-1
  • 19. Managing Docker images with ECR $ aws ecr get-login --region us-east-1 <run docker login command provided as output> $ docker build -t REPO_NAME . $ docker tag REPO_NAME:latest ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/REPO_NAME:latest $ docker push ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com REPO_NAME:latest
  • 20. Creating, scaling and deleting an ECS cluster $ ecs-cli configure -c CLUSTER_NAME -r eu-west-1 $ ecs-cli up --keypair KEY_PAIR_ID --capability-iam --size 1 --instance-type t2.micro $ ecs-cli scale --size 3 --capability-iam $ ecs-cli ps $ ecs-cli down CLUSTER_NAME --force Reminder: •  ‘ecs-cli up’ launches a CloudFormation template •  By default, the cluster is created in a new VPC •  By default, only port 80 is open on ECS instances •  See ‘ecs-cli up –help’ for advanced networking options
  • 21. Basic ECS commands $ aws ecs list-clusters $ aws ecs describe-clusters --cluster CLUSTER_NAME $ aws ecs list-container-instances --cluster CLUSTER_NAME $ aws ecs describe-container-instances --cluster CLUSTER_NAME --container-instances ECS_INSTANCE_ID
  • 22. Updating the Amazon ECS agent $ aws ecs update-container-agent --cluster CLUSTER_NAME --container-instance ECS_INSTANCE_ID #!/bin/bash for i in `aws ecs list-container-instances --cluster CLUSTER_NAME | grep arn | cut -b 64-99` do aws ecs update-container-agent --cluster CLUSTER_NAME--container-instance $i done
  • 23. Allowing SSH access on an ECS cluster $ aws ecs describe-container-instances --cluster CLUSTER_NAME --container-instances ECS_INSTANCE_ID --query 'containerInstances[*].ec2InstanceId’ $ aws ec2 describe-instances --instance-ids EC2_INSTANCE_ID --query "Reservations[*].Instances[*].SecurityGroups[*].GroupId" $ aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol tcp --port 22 --cidr 0.0.0.0/0
  • 24. Amazon ECS metadata Log into the ECS instance Instance information $ curl http://localhost:51678/v1/metadata Task information $ curl http://localhost:51678/v1/tasks
  • 25. Creating and scaling an Amazon ECS service Write a docker-compose.yml file $ ecs-cli compose service start $ ecs-cli compose service up $ ecs-cli compose service scale 3
  • 26. Stopping and deleting an Amazon ECS service $ ecs-cli compose service stop $ ecs-cli compose service delete