This document provides an overview of container services on AWS, including Amazon ECS, EKS, and Fargate. It explains that ECS is fully managed container orchestration, EKS provides managed Kubernetes, and Fargate allows running containers without managing infrastructure. It also discusses differences between EC2 and Fargate launch types, with Fargate eliminating the need to manage clusters and resources. Overall, the document aims to help users choose the right container option for their workload and optimize for portability, scalability, and ease of use.
3. What are containers?
A container is an atomic, self-contained package of software that
includes everything it needs to run (code, runtime, libraries,
packages, etc.).
A popular, widely-used container platform is Docker. More on that
here: https://www.docker.com
4.
5. Why are containers so popular?
• Portable
• Lightweight
• Standardized
• Easy to deploy
• Along with containers, comes the “monolith to microservices” story:
containers and microservices go hand in hand (more on that in a second)
6. OK, so what are microservices?
”Service oriented architecture
composed of loosely coupled elements
that have bounded contexts.”
- Adrian Cockroft
9. But there are still moving pieces
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
10. Managing many containers is hard
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
15. But there were pain points.
Things like scheduling, placing, managing and
deploying containers were difficult. They wanted
something to make those pain points better.
16. So we built ECS
Highly scalable, high
performance container
management system
A managed platform
ECS
Cluster
management
Container
orchestration
Deep AWS
integration
18. 160 billion analytics events per
month
Up to 270,000 events per second
Autoscaling allows them to burst to
thousands of containers to seamlessly
handle demand
ECS
19. ECS
ECS is not just for event processing
Redshift
Running ETL jobs on ECS
20. But ECS isn’t the only way to run containers in
production
More customers running Kubernetes on
AWS than anywhere else.
25. “Deploying Kubernetes in a highly
available configuration on AWS is not for the faint of
heart and requires you to get familiar with its
internals, but we are very pleased with the results”
28. So we built EKS
Platform for
enterprises to run
production-grade
Kubernetes-grade
installations
EKS
Managed and
upstream
experience
Seamless, native
integration with
AWS services
Contributes back
to open source
community
31. AWS Fargate
No cluster or
infrastructure to
manage or scale
Everything is
handled at the
container level
Scale seamlessly
on demand
Underlying technology for container
management
32. What does Fargate mean?
No worrying about scaling, service mesh, underlying infrastructure, cluster
resources, capacity, setup.
Just give it a task definition or pod (in 2018), set some resource limits, and
away you go.
33. How does this work in practice?
• Two launch types for ECS and EKS:
• EC2 (traditional, manage your cluster infrastructure)
• Fargate
34. With Fargate: focus on your
workload (job, container, function,
task) first. Full stop.
43. OK, so why do you want options?
• Options are good! They make the community stronger.
• Use what works for you and your workload -> all choices are good! Use
what you can manage.
• You don’t have to pick just one- benefits of containers are that they
support polyglot architectures, many tools, and portability. Build in the
language, choose the tool/orchestration platform that works for YOU.
• With Fargate, run hybrid clusters!
We want AWS to be the best place for you to run your container workloads,
however you want to run them.
45. ECS
Easiest way to deploy and manage
containers
Integration with entire AWS platform
ALB, Auto Scaling, Batch, Elastic Beanstalk,
CloudFormation, CloudTrail, CloudWatch Events,
CloudWatch Logs, CloudWatch Metrics, ECR, EC2 Spot,
IAM, NLB, Parameter Store, and VPC
Scales to support clusters of any size
Service integrations (like ALB and NLB) are at
container level
1
2
3
46. What we did with ECS in 2017
Container access to
environmental metadata
Network Load Balancer support
Console support for
SpotFleet
Override parameters for
RunTask and StartTask APIs
Task Elastic Network
Interface
Application Load Balancer Support
HIPAA eligibility
Console UX improvements
CLI V1.0
Container instance draining
Windows containers
Cron and Cloudwatch Event
Task scheduling
Support for Docker Privileged
Mode Lifecycle Policies for container images
Beijing Region
Support for Device and Init
flags
Add attributes during boot
Seoul Region
Linux capabilities
47. EKS
Managed Kubernetes on AWS
Highly available Automated
version upgrades
Integration with
other AWS
services
Etcd
Master
Managed
Kubernetes
control plane
CloudTrail, CloudWatch,
ELB, IAM, VPC, PrivateLink
49. What does Fargate mean?
No worrying about scaling, service mesh, underlying infrastructure,
cluster resources, capacity, setup.
Just give it a task definition or pod (in 2018), set some resource
limits, and away you go.
52. How do I know when to use Fargate vs EC2 mode?
Depends on your workload.
For Fargate: if you have a Task Definition, and you’re ok with awsvpc
networking mode, try Fargate. Some caveats: can’t exec into the
container, or access the underlying host (this is also a good thing)
For EC2 mode: good if you need to customize!
58. ECS: can be totally managed, or can customize resource usage, networking, task placement
etc. to fit your application needs. Shared responsibility with AWS (because managed service).
ecs-agent is open source. Easy integration with other AWS services.
EKS: managed, upstream Kubernetes. Can connect to clusters through kubectl and use
existing tooling. Can opt in to managed version upgrades. Add resources to your cluster
through EC2 (now), or with Fargate mode (2018).
Fargate: underlying technology for containers on demand. Pass a Task Definition or
Kubernetes Pod, set resource limits, and Fargate manages everything else. NO access to
underlying host, no managing of resources. Great if you don’t want to handle scaling,
orchestration, deployments, upgrades yourself. Not for those of you that are making changes
to your infrastructure (i.e., bringing custom AMIs, or installing things through EC2 user-data)
tl;dr
61. We want to hear from all of you!
• More focus on supporting Tasks as compute primitive, more focus on
removing undifferentiated heavy lifting.
• Our roadmap is driven by feedback:
62. How can I get started?
• To join the EKS preview: https://aws.amazon.com/eks/
• To get started with Fargate: https://aws.amazon.com/fargate/
• Blogs: https://aws.amazon.com/blogs/aws/aws-fargate/
• https://aws.amazon.com/blogs/aws/amazon-elastic-container-service-for-kubernetes/
• Liz Rice from Aquasec on Fargate: https://blog.aquasec.com/securing-struts-in-aws-fargate
• Nathan Peck from AWS: https://medium.com/containers-on-aws/choosing-your-container-environment-on-
aws-with-ecs-eks-and-fargate-cfbe416ab1a
• Deepak Singh (containers GM at AWS): https://www.slideshare.net/AmazonWebServices/containers-on-aws-
state-of-the-union-con201-reinvent-2017
63. Need a little help?
Community Slack channels:
awsdevelopers.slack.com
amazon-ecs.slack.com
Or reach out to one of us directly:
@abbyfuller or abbyfull@amazon.com
@nathankpeck
@brentcontained
@paulmaddox
@ric_harvey