You are on page 1of 22

AWS Fargate platform version 1.

AWS Cloud Containers Conference


July 9th 2020

Massimo Re Ferrè
Developer Advocate @ Amazon Web Services
What is Fargate?
“AWS Fargate is a serverless compute engine for containers”
Read: you don’t have to run (and manage) VMs to run containers

Fargate works with both ECS and EKS


You can deploy both ECS tasks and Kubernetes pods on Fargate

https://aws.amazon.com/blogs/containers/the-role-of-aws-fargate-in-the-container-world/
Why Fargate?
Task and Pod isolation (1 task/pod : 1 VM)
No EC2 instance to manage, patch, scale, deploy, etc.
You can focus on the application Vs the infrastructure details
The EC2 flow at 33,000 feet
AWS Run a task on EC2 Customer Account
for me, please

VPC

Amazon ECS
ENI

Service Task

You have to manage this


capacity (e.g., with ASGs)
Amazon EC2
The Fargate flow at 33,000 feet
AWS Run a container on Customer Account
FARGATE for me, please

VPC

Amazon ECS
ENI

Service Task

You don’t have to


manage capacity
AWS Fargate
What are Fargate platform versions?
It represents a combination of OS and container runtime components
Fargate platform versions provide a consistent behavior

A new platform version is released when there is a substantial stack change


Avoid impacting customers with changes in the underlying OS or container runtime

Fargate ”platform versions” only apply when using ECS


EKS has its own notion of platform versions (which includes Fargate-related features)

https://aws.amazon.com/blogs/containers/aws-fargate-platform-versions-primer/
Do all new features require a new platform version?
New individual features do not require a brand new platform version
New features are added to existing platform versions progressively
Demo(s)

Fargate in action
Fargate platform version 1.4: new features
EFS integration
20GB ephemeral volume
New task ENI flows
Network performance in CloudWatch Container Insights
Support for the CAP_SYS_PTRACE Linux capability
Network stats available in task metadata v4
AZ attribute now available in all task metadata
Containerd is replacing Docker as the container runtime
https://aws.amazon.com/blogs/containers/aws-fargate-launches-platform-version-1-4/
EFS consumption (pre-integration)

Container 1
dockerVolumeConfiguration

Container 2
Task Amazon ECS

File system
Amazon EC2 AWS Fargate
Amazon EFS

Explicit configurations

X
EFS integration

Container 1
EFSVolumeConfiguration
File system Container 2
Amazon EFS Task Amazon ECS

Amazon EC2 AWS Fargate


EFS integration

https://aws.amazon.com/blogs/containers/developers-guide-to-using-amazon-efs-with-amazon-ecs-and-aws-fargate-part-3/
20GB ephemeral volume
Up to PV 1.3: 10GB for Docker storage + 4GB for volume mounts
These two storage spaces have hard boundaries

With PV 1.4: 20GB of flat storage (for Docker + volume mounts)


Just restart your task with the new PV to take advantage of the additional storage

https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/fargate-task-storage.html
New task ENI flows

https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/fargate-task-storage.html
New task ENI flows – diagram
Network performance in Container Insights
Up until platform version 1.3 Fargate tasks net stats were not available
Only CPU, Memory and Disk metrics were available

With Fargate PV 1.4 Container Insights can monitor all subsystems


Fargate tasks can be monitored for CPU, Memory, Disk and Network
Support for the CAP_SYS_PTRACE Linux capability

https://sysdig.com/blog/falco-support-on-aws-fargate/
New and richer task metadata (net stats and AZ)
With PV 1.4, network stats are available with task metadata v4
This complements Container Insights and allows our partners to have access to the same data

With PV 1.4, AZ placement is available with task metadata v4


You can now introspect which AZ the Fargate task has been deployed to
Example of a partner leveraging Fargate net stats

https://www.datadoghq.com/blog/monitor-aws-fargate/
Containerd is replacing Docker

https://aws.amazon.com/blogs/containers/under-the-hood-fargate-data-plane/
Recap
Fargate is a serverless platform to run containers
Available to both ECS and EKS

Fargate uses the notion of “platform versions”


This helps with substantial changes in the Fargate stack

Fargate platform version 1.4 introduces a number of new features


For example, the EFS integration for stateful workloads
Thanks for watching and keep in touch!

Massimo Re Ferrè
Mail: mreferre@amazon.com
Twitter: @mreferre
GitHub: github.com/mreferre

You might also like