SlideShare une entreprise Scribd logo
1  sur  32
Intro to Amazon ECS
Abby Fuller, AWS
@abbyfuller
Amazon EC2 Container Service
Amazon EC2 Container Service (ECS)
Highly scalable, high performance
container management system.
Eliminates the need to install,
operate, and scale your own
container management
infrastructure.
@abbyfuller
Amazon EC2 Container Service (ECS)
ECS provides a managed platform for:
Container
orchestration
Deep AWS
integration
Cluster
management
@abbyfuller
How does ECS map to traditional workloads?
Instances: standard EC2 boxes. Once
registered to a Cluster, your Tasks run here
Services: layer that manages and places
Tasks
Tasks: container wrapper and configuration
around processes running on the instance
@abbyfuller
How does ECS work?
Load balancer: (ALB or EC2 classic)
routes traffic to the cluster instances.
Cluster is made up of one or more EC2
instances
Each cluster instance runs one or more
Services
Load balancer: (ALB or EC2 classic) routes
traffic to the cluster instances.
Cluster is made up of one or more EC2
instances
Each cluster instance runs one or more
Services
ECS
Cluster
@abbyfuller
How does ECS work?
Each cluster instance runs one or more Services
A Service controls things like the number of copies of a
Task you want running (Desired Count), and registers
your Service with a load balancer
A Task Definition controls things like container image,
environment variables, resource allocation, logger, and
other parameters
@abbyfuller
Application Load Balancer
ECS Cluster
Autoscaling Group for cluster instances
Service
ECR Registry
@abbyfuller
Let’s talk about ALB
• Define routing rules based on content. Fancy way of saying “send traffic to
different services based on endpoint”. This is magical.
• As a bonus, this allows ECS to allocate ports dynamically rather than statically,
and one ALB can handle multiple services.
@abbyfuller
Why ECS?
Bottom line: containers and
microservices can require a lot of
orchestration and moving pieces.
ECS removes a lot of this heavy
lifting.
@abbyfuller
Who is using ECS?
…and many more!
Let’s get (feature) specific
A few features, but many more.
Amazon ECS Task Placement
Amazon ECS Event Stream for Cloudwatch Logs
IAM Roles for Tasks
Fast, hassle-free deployments
Flexible scaling for performance
@abbyfuller
Amazon ECS Task Placement
• A task placement strategy is an algorithm for
selecting instances for task placement, or tasks for
termination
• A task placement constraint is a rule taken into
consideration during task placement
• Strategies and constraints can be used together
@abbyfuller
How can strategies and policies be used?
Name Example
AMI ID attribute:ecs.ami-id == ami-eca289fb
Availability Zone attribute:ecs.availability-zone == us-east-1a
Instance Type attribute:ecs.instance-type == t2.small
Distinct Instances type=“distinctInstances”
Custom attribute:stack == prod @abbyfuller
Multiple strategies are supported
???
Binpacking Random Spread
@abbyfuller
How it works
Cluster Constraints Satisfy CPU, memory, and port requirements
Filter for location, instance-type, AMI, or custom
attribute constraints
Identify instances that meet spread or binpack
placement strategy
Select final container instances for placement
Custom Constraints
Placement Strategies
Apply filter
@abbyfuller
Amazon ECS Event Stream for Cloudwatch Logs
• Receive near real-time updates about both
the current state of both the container
instances within the ECS Cluster, and the
current state of all tasks running on those
container instances.
• Can be used to build custom schedulers, or
to monitor cluster state and handle those
state changes by consuming events with
other AWS services, such as Lambda.
@abbyfuller
IAM Roles for ECS Tasks
• Specify an IAM role used by the containers in a task.
• Credential Isolation: containers can only access the role
for the specific task that they are assigned to.
• Authorization: Unauthorized containers cannot access
IAM role credentials defined for other tasks.
• Auditability: Audit through CloudTrail. Can track the
Task credentials taskARN to show which task is using
which role.
@abbyfuller
Fast, hassle-free deployments
• Services deploy and scale quickly. Very easily
extensible through API calls; for example, trigger a
deployment based on a commit to a branch on
Github through your CI tool.
• Plus, extra protection baked in. ECS will only drain
connections from the previous Task Definition if
the new Task Definition passes health checks.
@abbyfuller
Flexible scaling for performance
• Scale a service up or down based on CloudWatch
alarms. Autoscaling is built into the Service during the
registration process.
• Since Clusters are part of EC2 Autoscaling Groups, you
can also scale the Cluster itself based on resources, like
you would any other group.
@abbyfuller
A great disturbance in the force
• With the shift to microservices, comes a shift in thinking: more and
more options are moving from just the server level to the containers
themselves.
• Don’t just move a service over to containers and call it a day:
decompose and rebuild.
• Security (IAM), scaling (Task-level autoscaling), traffic distribution
(ALB and NLB), configuration, settings  all happening at the
container/service level now.
@abbyfuller
With more services comes more responsibility
• More moving pieces
• Safety and security first
• Choose the right option (tool, language,
setting) that works for you.
• Use your resources! Document, alert,
automate.
@abbyfuller
Stop! (fake) demo time.
IAM Roles for Tasks
@abbyfuller
Amazon ECS Task Placement
@abbyfuller
Autoscaling
@abbyfuller
Deployments
@abbyfuller
Amazon ECS Event Stream for CloudWatch
@abbyfuller
Some ECS resources
• AWS docs: https://aws.amazon.com/ecs/
• ECS first run wizard:
https://console.aws.amazon.com/ecs/home?region=us-east-1
• Nathan Peck’s ECS repo: https://github.com/nathanpeck/awesome-
ecs
• More talks of mine: https://aws.amazon.com/evangelists/abby-fuller/
• ECS ”Getting Started” workshop: https://www.github.com/abby-
fuller/ecs-demo
@abbyfuller
Questions?

Contenu connexe

Tendances

Tendances (20)

AWS Elastic Load Balancing for AWS Architect & SysOps Certification
AWS Elastic Load Balancing for AWS Architect & SysOps CertificationAWS Elastic Load Balancing for AWS Architect & SysOps Certification
AWS Elastic Load Balancing for AWS Architect & SysOps Certification
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Getting Started on Amazon EKS
Getting Started on Amazon EKSGetting Started on Amazon EKS
Getting Started on Amazon EKS
 
Intro to AWS Lambda
Intro to AWS Lambda Intro to AWS Lambda
Intro to AWS Lambda
 
Deep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveDeep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep Dive
 
Introducing AWS Fargate
Introducing AWS FargateIntroducing AWS Fargate
Introducing AWS Fargate
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day Israel
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best Practices
 
Deep Dive into Amazon ECS & Fargate
Deep Dive into Amazon ECS & FargateDeep Dive into Amazon ECS & Fargate
Deep Dive into Amazon ECS & Fargate
 
Deep Dive - CI/CD on AWS
Deep Dive - CI/CD on AWSDeep Dive - CI/CD on AWS
Deep Dive - CI/CD on AWS
 
Aws VPC
Aws VPCAws VPC
Aws VPC
 
AWS Route53
AWS Route53AWS Route53
AWS Route53
 
Getting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and ServerlessGetting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and Serverless
 
AWS CloudFormation Masterclass
AWS CloudFormation MasterclassAWS CloudFormation Masterclass
AWS CloudFormation Masterclass
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Encryption and Key Management in AWS
Encryption and Key Management in AWSEncryption and Key Management in AWS
Encryption and Key Management in AWS
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
AWS Technical Essentials Day
AWS Technical Essentials DayAWS Technical Essentials Day
AWS Technical Essentials Day
 

Similaire à Intro to Amazon ECS

Similaire à Intro to Amazon ECS (20)

Amazon ECS.pptx tasks conatiner ecs new car
Amazon ECS.pptx tasks conatiner ecs new carAmazon ECS.pptx tasks conatiner ecs new car
Amazon ECS.pptx tasks conatiner ecs new car
 
Building and scaling your containerized microservices on Amazon ECS
Building and scaling your containerized microservices on Amazon ECSBuilding and scaling your containerized microservices on Amazon ECS
Building and scaling your containerized microservices on Amazon ECS
 
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
 
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
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container Service
 
Cloud & Native Cloud for Managers
Cloud & Native Cloud for ManagersCloud & Native Cloud for Managers
Cloud & Native Cloud for Managers
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
 
Introduction to Batch Processing on AWS
Introduction to Batch Processing on AWSIntroduction to Batch Processing on AWS
Introduction to Batch Processing on AWS
 
State of the Union: Containers on AWS
State of the Union: Containers on AWSState of the Union: Containers on AWS
State of the Union: Containers on AWS
 
AWS re:Invent 2016: Running Batch Jobs on Amazon ECS (CON310)
AWS re:Invent 2016: Running Batch Jobs on Amazon ECS (CON310)AWS re:Invent 2016: Running Batch Jobs on Amazon ECS (CON310)
AWS re:Invent 2016: Running Batch Jobs on Amazon ECS (CON310)
 
Batch Processing with Containers on AWS - June 2017 AWS Online Tech Talks
Batch Processing with Containers on AWS -  June 2017 AWS Online Tech TalksBatch Processing with Containers on AWS -  June 2017 AWS Online Tech Talks
Batch Processing with Containers on AWS - June 2017 AWS Online Tech Talks
 
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
 
Containers State of the Union
Containers State of the UnionContainers State of the Union
Containers State of the Union
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
 
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
 
The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)
 
New AWS Services for Bioinformatics
New AWS Services for BioinformaticsNew AWS Services for Bioinformatics
New AWS Services for Bioinformatics
 
오토스케일링 제대로 활용하기 (김일호) - AWS 웨비나 시리즈 2015
오토스케일링 제대로 활용하기 (김일호) - AWS 웨비나 시리즈 2015오토스케일링 제대로 활용하기 (김일호) - AWS 웨비나 시리즈 2015
오토스케일링 제대로 활용하기 (김일호) - AWS 웨비나 시리즈 2015
 

Plus de Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Plus de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Intro to Amazon ECS

  • 1. Intro to Amazon ECS Abby Fuller, AWS @abbyfuller
  • 3. Amazon EC2 Container Service (ECS) Highly scalable, high performance container management system. Eliminates the need to install, operate, and scale your own container management infrastructure. @abbyfuller
  • 4. Amazon EC2 Container Service (ECS) ECS provides a managed platform for: Container orchestration Deep AWS integration Cluster management @abbyfuller
  • 5. How does ECS map to traditional workloads? Instances: standard EC2 boxes. Once registered to a Cluster, your Tasks run here Services: layer that manages and places Tasks Tasks: container wrapper and configuration around processes running on the instance @abbyfuller
  • 6. How does ECS work? Load balancer: (ALB or EC2 classic) routes traffic to the cluster instances. Cluster is made up of one or more EC2 instances Each cluster instance runs one or more Services Load balancer: (ALB or EC2 classic) routes traffic to the cluster instances. Cluster is made up of one or more EC2 instances Each cluster instance runs one or more Services ECS Cluster @abbyfuller
  • 7. How does ECS work? Each cluster instance runs one or more Services A Service controls things like the number of copies of a Task you want running (Desired Count), and registers your Service with a load balancer A Task Definition controls things like container image, environment variables, resource allocation, logger, and other parameters @abbyfuller
  • 8. Application Load Balancer ECS Cluster Autoscaling Group for cluster instances Service ECR Registry @abbyfuller
  • 9. Let’s talk about ALB • Define routing rules based on content. Fancy way of saying “send traffic to different services based on endpoint”. This is magical. • As a bonus, this allows ECS to allocate ports dynamically rather than statically, and one ALB can handle multiple services. @abbyfuller
  • 10. Why ECS? Bottom line: containers and microservices can require a lot of orchestration and moving pieces. ECS removes a lot of this heavy lifting. @abbyfuller
  • 11. Who is using ECS? …and many more!
  • 13. A few features, but many more. Amazon ECS Task Placement Amazon ECS Event Stream for Cloudwatch Logs IAM Roles for Tasks Fast, hassle-free deployments Flexible scaling for performance @abbyfuller
  • 14. Amazon ECS Task Placement • A task placement strategy is an algorithm for selecting instances for task placement, or tasks for termination • A task placement constraint is a rule taken into consideration during task placement • Strategies and constraints can be used together @abbyfuller
  • 15. How can strategies and policies be used? Name Example AMI ID attribute:ecs.ami-id == ami-eca289fb Availability Zone attribute:ecs.availability-zone == us-east-1a Instance Type attribute:ecs.instance-type == t2.small Distinct Instances type=“distinctInstances” Custom attribute:stack == prod @abbyfuller
  • 16. Multiple strategies are supported ??? Binpacking Random Spread @abbyfuller
  • 17. How it works Cluster Constraints Satisfy CPU, memory, and port requirements Filter for location, instance-type, AMI, or custom attribute constraints Identify instances that meet spread or binpack placement strategy Select final container instances for placement Custom Constraints Placement Strategies Apply filter @abbyfuller
  • 18. Amazon ECS Event Stream for Cloudwatch Logs • Receive near real-time updates about both the current state of both the container instances within the ECS Cluster, and the current state of all tasks running on those container instances. • Can be used to build custom schedulers, or to monitor cluster state and handle those state changes by consuming events with other AWS services, such as Lambda. @abbyfuller
  • 19. IAM Roles for ECS Tasks • Specify an IAM role used by the containers in a task. • Credential Isolation: containers can only access the role for the specific task that they are assigned to. • Authorization: Unauthorized containers cannot access IAM role credentials defined for other tasks. • Auditability: Audit through CloudTrail. Can track the Task credentials taskARN to show which task is using which role. @abbyfuller
  • 20. Fast, hassle-free deployments • Services deploy and scale quickly. Very easily extensible through API calls; for example, trigger a deployment based on a commit to a branch on Github through your CI tool. • Plus, extra protection baked in. ECS will only drain connections from the previous Task Definition if the new Task Definition passes health checks. @abbyfuller
  • 21. Flexible scaling for performance • Scale a service up or down based on CloudWatch alarms. Autoscaling is built into the Service during the registration process. • Since Clusters are part of EC2 Autoscaling Groups, you can also scale the Cluster itself based on resources, like you would any other group. @abbyfuller
  • 22.
  • 23. A great disturbance in the force • With the shift to microservices, comes a shift in thinking: more and more options are moving from just the server level to the containers themselves. • Don’t just move a service over to containers and call it a day: decompose and rebuild. • Security (IAM), scaling (Task-level autoscaling), traffic distribution (ALB and NLB), configuration, settings  all happening at the container/service level now. @abbyfuller
  • 24. With more services comes more responsibility • More moving pieces • Safety and security first • Choose the right option (tool, language, setting) that works for you. • Use your resources! Document, alert, automate. @abbyfuller
  • 26. IAM Roles for Tasks @abbyfuller
  • 27. Amazon ECS Task Placement @abbyfuller
  • 30. Amazon ECS Event Stream for CloudWatch @abbyfuller
  • 31. Some ECS resources • AWS docs: https://aws.amazon.com/ecs/ • ECS first run wizard: https://console.aws.amazon.com/ecs/home?region=us-east-1 • Nathan Peck’s ECS repo: https://github.com/nathanpeck/awesome- ecs • More talks of mine: https://aws.amazon.com/evangelists/abby-fuller/ • ECS ”Getting Started” workshop: https://www.github.com/abby- fuller/ecs-demo @abbyfuller