SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Docker Marseille – 16/12/15
Docker Bordeaux – 17/12/2015
Amazon ECS
Julien Simon
Technical Evangelist, AWS
The problem
Given an arbitrary amount of
processing power and memory
(provided by EC2 instances),
how can we manage an
arbitrary number of apps
running in Docker containers
in the most efficient and
scalable manner ? http://tidalseven.com
Requirements for modern cluster orchestration
Reliable state management & flexible scheduling
à Cluster must be multi-tenant and scalable
à Cluster must work well for both long-lived and short-lived apps
à  Users must be able to focus on writing apps and growing their business
•  High availability must be built-in
•  State management must be built-in
Amazon EC2 Container Service (ECS)
Preview in 11/2014, launch in 04/2015
https://aws.amazon.com/ecs/
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
“ Our big questions were, ‘Can we scale the amount of compute resources
necessary to run all our customers’ apps?’ and, ‘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.
We reduced service response times in the 99th percentile by 50%”
Jason Fischl, VP of Engineering
https://www.youtube.com/watch?v=8zbbQkszP04
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
Amazon ECS scalability
AWS re:Invent 2015 - Amazon ECS: Distributed Applications at Scale https://www.youtube.com/watch?v=eun8CqGqdk8
DEMO #1
Demo gods, I’m your humble servant, please be good to me
https://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/docker-basics.html
https://github.com/awslabs/ecs-demo-php-simple-app
Load balancing services on fixed ports
Amazon EC2 Container Service Developer Guide
“A distributed system is one in which the failure
of a computer you didn't even know existed
can render your own computer unusable”
Leslie Lamport, 1987
Micro-services: it just 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?
Microservice = Docker container + 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?
Front à Back : DNS round-robin
User à Front : ELB if running on fixed ports, ELB+Fabio if not
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
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
Thank you! Let’s keep in touch J
Many events and meetups in 2016
à @aws_actus @julsimon
AWS Summit Paris 2016 : 31/05/2016
Need an AWS speaker?
julsimon@amazon.fr
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
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
AWS Compute Blog
https://aws.amazon.com/blogs/aws/category/ec2-container-service/
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
Creating, scaling and deleting a cluster
$ ecs-cli configure -c myCluster -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 myCluster --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 myCluster
$ aws ecs list-container-instances --cluster myCluster
$ aws ecs describe-container-instances --cluster myCluster
--container-instances ECS_INSTANCE_ID
Allowing SSH access on an ECS cluster
$ aws ecs describe-container-instances --cluster myCluster
--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
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 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 ECS service
$ ecs-cli compose service stop
$ ecs-cli compose service delete

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)
 
Running Docker clusters on AWS (June 2016)
Running Docker clusters on AWS (June 2016)Running Docker clusters on AWS (June 2016)
Running Docker clusters on AWS (June 2016)
 
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...
 
Building a data warehouse with Amazon Redshift … and a quick look at Amazon ...
Building a data warehouse  with Amazon Redshift … and a quick look at Amazon ...Building a data warehouse  with Amazon Redshift … and a quick look at Amazon ...
Building a data warehouse with Amazon Redshift … and a quick look at Amazon ...
 
Building a Serverless Pipeline
Building a Serverless PipelineBuilding a Serverless Pipeline
Building a Serverless Pipeline
 
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)
 
Serverless architecture with AWS Lambda (June 2016)
Serverless architecture with AWS Lambda (June 2016)Serverless architecture with AWS Lambda (June 2016)
Serverless architecture with AWS Lambda (June 2016)
 
AWS July Webinar Series: Introducing AWS OpsWorks for Windows Server
AWS July Webinar Series: Introducing AWS OpsWorks for Windows ServerAWS July Webinar Series: Introducing AWS OpsWorks for Windows Server
AWS July Webinar Series: Introducing AWS OpsWorks for Windows Server
 
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
 
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
 
Building serverless apps with Node.js
Building serverless apps with Node.jsBuilding serverless apps with Node.js
Building serverless apps with Node.js
 
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)
 
Agile Deployment using Git and AWS Elastic Beanstalk
Agile Deployment using Git and AWS Elastic BeanstalkAgile Deployment using Git and AWS Elastic Beanstalk
Agile Deployment using Git and AWS Elastic Beanstalk
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
 
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
 
Serverless architectures on aws
Serverless architectures on awsServerless architectures on aws
Serverless architectures on aws
 
AWS Big Data combo
AWS Big Data comboAWS Big Data combo
AWS Big Data combo
 
AWS Code{Commit,Deploy,Pipeline} (June 2016)
 AWS Code{Commit,Deploy,Pipeline} (June 2016) AWS Code{Commit,Deploy,Pipeline} (June 2016)
AWS Code{Commit,Deploy,Pipeline} (June 2016)
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
 
Building Serverless APIs on AWS
Building Serverless APIs on AWSBuilding Serverless APIs on AWS
Building Serverless APIs on AWS
 

Semelhante a Amazon ECS (December 2015)

Workshop; Deploy a Deep Learning Framework on Amazon ECS and Spot Instances
Workshop; Deploy a Deep Learning Framework on Amazon ECS and Spot InstancesWorkshop; Deploy a Deep Learning Framework on Amazon ECS and Spot Instances
Workshop; Deploy a Deep Learning Framework on Amazon ECS and Spot Instances
Amazon Web Services
 

Semelhante a Amazon ECS (December 2015) (20)

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)
 
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
 
Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018
 
IDI 2020 - Containers Meet Serverless
IDI 2020 - Containers Meet ServerlessIDI 2020 - Containers Meet Serverless
IDI 2020 - Containers Meet Serverless
 
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
 
Introduction to Containers - AWS Startup Day Johannesburg.pdf
Introduction to Containers - AWS Startup Day Johannesburg.pdfIntroduction to Containers - AWS Startup Day Johannesburg.pdf
Introduction to Containers - AWS Startup Day Johannesburg.pdf
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWS
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency Woo
 
Paris Container Day 2016 : Running docker clusters on AWS (Amazon Web Services)
Paris Container Day 2016 : Running docker clusters on AWS (Amazon Web Services)Paris Container Day 2016 : Running docker clusters on AWS (Amazon Web Services)
Paris Container Day 2016 : Running docker clusters on AWS (Amazon Web Services)
 
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
 
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Containers on Cloud- AWS Kolkata User Group Meetup April 2019
Containers on Cloud- AWS Kolkata User Group Meetup April 2019Containers on Cloud- AWS Kolkata User Group Meetup April 2019
Containers on Cloud- AWS Kolkata User Group Meetup April 2019
 
Interstella GTC: Monolith to Microservices with ECS
Interstella GTC: Monolith to Microservices with ECSInterstella GTC: Monolith to Microservices with ECS
Interstella GTC: Monolith to Microservices with ECS
 
Advanced Container Scheduling
Advanced Container SchedulingAdvanced Container Scheduling
Advanced Container Scheduling
 
Containers and the Evolution of Computing
Containers and the Evolution of ComputingContainers and the Evolution of Computing
Containers and the Evolution of Computing
 
Workshop; Deploy a Deep Learning Framework on Amazon ECS and Spot Instances
Workshop; Deploy a Deep Learning Framework on Amazon ECS and Spot InstancesWorkshop; Deploy a Deep Learning Framework on Amazon ECS and Spot Instances
Workshop; Deploy a Deep Learning Framework on Amazon ECS and Spot Instances
 
Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overview
 
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
 

Mais de 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

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Amazon ECS (December 2015)

  • 1. © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Docker Marseille – 16/12/15 Docker Bordeaux – 17/12/2015 Amazon ECS Julien Simon Technical Evangelist, AWS
  • 2. The problem Given an arbitrary amount of processing power and memory (provided by EC2 instances), how can we manage an arbitrary number of apps running in Docker containers in the most efficient and scalable manner ? http://tidalseven.com
  • 3. Requirements for modern cluster orchestration Reliable state management & flexible scheduling à Cluster must be multi-tenant and scalable à Cluster must work well for both long-lived and short-lived apps à  Users must be able to focus on writing apps and growing their business •  High availability must be built-in •  State management must be built-in Amazon EC2 Container Service (ECS) Preview in 11/2014, launch in 04/2015 https://aws.amazon.com/ecs/
  • 4. 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
  • 5. Case study : Meteor https://www.youtube.com/watch?v=xIc3WT6kAVw “ Our big questions were, ‘Can we scale the amount of compute resources necessary to run all our customers’ apps?’ and, ‘Can we scale the mechanics of coordinating all those pieces?’ Using AWS, we can answer ‘yes’ to both” Matt DeBergalis, Cofounder & VP Product
  • 6. Case study : Remind “Moving to Amazon ECS significantly improved our service performance. We reduced service response times in the 99th percentile by 50%” Jason Fischl, VP of Engineering https://www.youtube.com/watch?v=8zbbQkszP04
  • 8. Amazon ECS scalability AWS re:Invent 2015 - Amazon ECS: Distributed Applications at Scale https://www.youtube.com/watch?v=eun8CqGqdk8
  • 9. DEMO #1 Demo gods, I’m your humble servant, please be good to me https://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/docker-basics.html https://github.com/awslabs/ecs-demo-php-simple-app
  • 10. Load balancing services on fixed ports Amazon EC2 Container Service Developer Guide
  • 11. “A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” Leslie Lamport, 1987
  • 12. Micro-services: it just 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?
  • 13. Yes we can! •  Can micro-services be deployed and scaled independently? Microservice = Docker container + 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? Front à Back : DNS round-robin User à Front : ELB if running on fixed ports, ELB+Fabio if not
  • 14. 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
  • 15. DEMO #2Demo gods, I know I’m pushing it, but please don’t let me down now 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
  • 16. Thank you! Let’s keep in touch J Many events and meetups in 2016 à @aws_actus @julsimon AWS Summit Paris 2016 : 31/05/2016 Need an AWS speaker? julsimon@amazon.fr
  • 18. 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
  • 19. Amazon ECS resources 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 AWS Compute Blog https://aws.amazon.com/blogs/aws/category/ec2-container-service/ 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
  • 20. Creating, scaling and deleting a cluster $ ecs-cli configure -c myCluster -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 myCluster --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 myCluster $ aws ecs list-container-instances --cluster myCluster $ aws ecs describe-container-instances --cluster myCluster --container-instances ECS_INSTANCE_ID
  • 22. Allowing SSH access on an ECS cluster $ aws ecs describe-container-instances --cluster myCluster --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
  • 23. ECS metadata Log into the ECS instance Instance information $ curl http://localhost:51678/v1/metadata Task information $ curl http://localhost:51678/v1/tasks
  • 24. Creating and scaling an ECS service Write a docker-compose.yml file $ ecs-cli compose service start $ ecs-cli compose service up $ ecs-cli compose service scale 3
  • 25. Stopping and deleting an ECS service $ ecs-cli compose service stop $ ecs-cli compose service delete