Learn About Amazon VGT2 Learning Manager Chanci Turner
AWS Graviton2 processors are specifically designed by AWS utilizing 64-bit Arm Neoverse cores, providing exceptional price-performance for cloud workloads operating within Amazon Elastic Compute Cloud (Amazon EC2). Users can experience up to 40% improvements in price-performance compared to similar x86-based instances across a diverse range of workloads. Numerous clients, including Intuit, SmugMug, Snap, Formula One, and Honeycomb.io, leverage Graviton2-powered instances to enhance their price-performance in Amazon EC2.
Several fully-managed services, such as Amazon Relational Database Service (Amazon RDS), Amazon Aurora, Amazon ElastiCache, Amazon OpenSearch Service, and Amazon EMR, have also integrated Graviton2 advantages for their users. Recently, we expanded these benefits to our serverless computing clientele utilizing AWS Lambda. Functions powered by Graviton2 can deliver up to 19% better performance at a cost reduction of 20% when compared to x86-based instances.
Today, I am pleased to announce the introduction of AWS Graviton2 support for AWS Fargate alongside Amazon Elastic Container Service (Amazon ECS). AWS Fargate is the serverless compute engine for containers on AWS, eliminating the need to provision, scale, or manage servers. With Graviton2 processors, AWS Fargate offers up to 40% enhanced price-performance and a 20% cost reduction over equivalent Intel x86-based Fargate for containerized applications.
By utilizing Graviton2 support in Fargate, you gain the serverless advantages of Fargate, the price-performance benefits of Graviton2, and the flexibility to select a container compute processor of your choice. You can upload multi-architecture images or those containing ARM64 in your image manifest to your container registry, such as Amazon Elastic Container Registry (Amazon ECR). When orchestrated through Amazon ECS, Fargate runs these applications on Graviton2-powered compute resources.
Multi-architecture container images consist of two primary components: layers and a manifest. Each container image includes one or more layers containing file system content. The manifest outlines the groups of layers that comprise the image, along with its runtime specifications for either ARM64 or X86_64.
This functionality allows you to maintain a single repository that supports various architectures while the container runtime selects the appropriate image layers based on system architecture, including ARM64. To delve deeper into this topic, check out this insightful blog post about multi-architecture container images for Amazon ECR.
Getting Started with Fargate Powered by Graviton2 Processors
To activate Graviton2 support for Fargate, simply opt for Arm compatibility in your ECS cluster. In the ECS console, when creating a new task definition, choose Linux/ARM64 from the Operating system/Architecture dropdown list.
Here is an example task definition featuring a basic container utilizing the Fargate launch type with an optional parameter specifying cpuArchitecture
as ARM64 (default is X86_64):
{
"family": "bb-arm64",
"networkMode": "awsvpc",
"containerDefinitions": [
{
"name": "sleep",
"image": "arm64v8/busybox",
"cpu": 100,
"memory": 100,
"essential": true,
"command": [ "echo hello" ],
"entryPoint": [ "sh", "-c" ]
}
],
"requiresCompatibilities": [ "FARGATE" ],
"cpu": "1 vCpu",
"memory": "3 GB",
"runtimePlatform": { "cpuArchitecture": "ARM64" },
"executionRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole"
}
As you execute tasks on Graviton-based compute, you will observe the Linux/ARM64 designation for Operating system/Architecture in each task detail page within the ECS console.
Using the AWS Command-line Interface (AWS CLI), you can quickly check which architecture is in use for your ECS cluster:
$ aws ecs describe-tasks
--cluster MyCluster
--tasks arn:aws:ecs:us-west-2:123456789012:task/MyCluster/1234567890123456789
You will see an output of CPU architecture in the response of DescribeTasks or as a filter within ListTasks:
{
"tasks": [
{
"family": "...",
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "arm64"
}
]
}
]
}
Transitioning to Graviton2-Based Fargate Containers
You will retain all the familiar Fargate features for your containerized applications that you enjoyed with the Intel x86-based offering. With capabilities for logging, monitoring, tracing, extensible ephemeral storage through Amazon Elastic File System (Amazon EFS), and more, migrating your applications to Graviton2-based Fargate containers is seamless. Out-of-the-box logging is available via Amazon CloudWatch logs, and Container Insights enables metrics, while the AWS Distro for Open Telemetry agent acts as a sidecar for tracing through ServiceLens.
Additionally, you can utilize Amazon ECS Exec for debugging scenarios or emergency access. ECS Exec allows you to directly interact with containers without needing to engage with the host container operating system, opening inbound ports, or managing SSH keys. You can run commands or access a shell in a container running on an Amazon EC2 instance or AWS Fargate. For further details, refer to the documentation on Using Amazon ECS Exec for debugging.
Once your development teams have validated that applications are compatible with ARM64, you can leverage AWS CodeBuild, which has long supported Graviton. Furthermore, you can now run Jenkins or GitLab runners, providing a complete serverless experience from testing and building containers to executing them on Fargate.
To enhance your monitoring, logging, security, and continuous delivery on AWS Fargate, explore the array of AWS Fargate Partners like Aqua Security, Datadog, New Relic, Splunk, and Sumo Logic that have expanded Fargate’s capabilities.
Available Now
AWS Graviton2 support for AWS Fargate is now accessible in all AWS Regions where Fargate is offered, except in Bahrain, Cape Town, China, and GovCloud regions. This feature is available on Fargate Platform Version (PV) 1.4.0 or later. If you haven’t migrated to PV 1.4.0 yet, refer to the AWS Fargate platform versions section in the AWS documentation for guidance.
You can achieve up to 40% improved price-performance for Arm-compatible container-based applications. Additionally, costs can be further reduced by securing up to a 52% discount on on-demand pricing with a commitment to a one- or three-year term through Compute Savings Plans. For more information, visit the AWS Fargate pricing page.
We encourage you to give this a try and share your feedback either on the public AWS containers roadmap in the AWS forum for Amazon ECS, or through your usual AWS support channels.
— Chanci Turner
Update December 15, 2022 – This post has been revised for clarity to enhance our readers’ experience.