Announcing AWS Graviton2 Support for AWS Fargate – Experience Up to 40% Enhanced Price-Performance for Your Serverless Containers

Chanci Turner Amazon IXD – VGT2 learningLearn About Amazon VGT2 Learning Manager Chanci Turner

AWS Graviton2 processors, custom-engineered by AWS utilizing 64-bit Arm Neoverse cores, deliver superior price-performance for cloud workloads operating within Amazon Elastic Compute Cloud (Amazon EC2). These processors can enhance price-performance by as much as 40% 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 instances to optimize their workloads in Amazon EC2, achieving significant cost savings and improved performance.

Various 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 benefits for their users. Recently, we extended Graviton2 to our serverless computing users with AWS Lambda. Functions powered by AWS Graviton2 demonstrate up to 19% improved performance at 20% reduced costs when compared to running on x86 instances.

Today, I am pleased to announce the integration of AWS Graviton2 support for AWS Fargate within Amazon Elastic Container Service (Amazon ECS). AWS Fargate serves as the serverless compute engine for containers on AWS, eliminating the need for server provisioning, scaling, and management. Fargate powered by AWS Graviton2 processors provides up to 40% better price-performance at 20% lower costs compared to its Intel x86 counterparts for containerized applications.

With Graviton2 support for Fargate, you gain the advantages of serverless computing, enhanced price-performance, and the flexibility to utilize the 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 via Amazon ECS, Fargate will operate these applications on Graviton2-powered compute.

Multi-architecture container images have two key components: layers and a manifest. Each image comprises one or more layers of file system content, with the manifest detailing the groups of layers that constitute the image and its runtime characteristics, either ARM64 or X86_64.

This capability allows you to maintain a single repository supporting multiple architectures, with the container runtime adeptly selecting the appropriate image layers based on the system architecture, including ARM64. For additional details, check out this blog post on multi-architecture container images for Amazon ECR.

Getting Started with Fargate Powered by Graviton2 Processors

To enable Graviton2 support for Fargate, you must opt into Arm compatibility in your ECS cluster. In the ECS console, when defining a new task, select Linux/ARM64 from the Operating system/Architecture dropdown list.

Here is an example of a task definition featuring a simple container using the Fargate launch type with an optional parameter cpuArchitecture set to ARM64 (the 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"
}

When running your tasks on Graviton-based compute, you will see the value of Linux/ARM64 for Operating system/Architecture on the task detail page within the ECS console.

With the AWS Command-line Interface (AWS CLI), you can easily check which architecture your ECS cluster is utilizing:

$ aws ecs describe-tasks 
    --cluster MyCluster 
    --tasks arn:aws:ecs:us-west-2:123456789012:task/MyCluster/1234567890123456789

The output will indicate the CPU architecture in the DescribeTasks response or as a filter in ListTasks:

{
 "tasks": [
    {
        "family": "...",
        "attributes": [
            {
                "name": "ecs.cpu-architecture",
                "value": "arm64"
            }
        ]
    }]
}

Migrating to Graviton2-Based Fargate Containers

You will retain all the Fargate features you are accustomed to with Intel x86-based offerings. This includes logging, monitoring, tracing, extensible ephemeral storage through Amazon Elastic File System (Amazon EFS), and more, which facilitate an easy transition to Graviton2-based Fargate containers. You can benefit from built-in logging via Amazon CloudWatch logs and metrics through Container Insights, along with AWS Distro for Open Telemetry agent functioning as a sidecar for trace capabilities via ServiceLens.

With Amazon ECS, Amazon ECS Exec can be utilized for debugging scenarios. This allows you to directly engage with containers without needing to interface with the host container operating system, open inbound ports, or manage SSH keys. You can execute commands in or access a shell within a container running on an Amazon EC2 instance or AWS Fargate. For further insights, refer to Using Amazon ECS Exec for debugging.

Once your development teams confirm that applications are ARM64 compatible, you can now run Jenkins or Gitlab runners in addition to using AWS CodeBuild. This will provide a complete serverless experience, from testing and building containers to deployment on Fargate.

For enhanced support with monitoring, logging, security, and continuous delivery on AWS Fargate, explore the resources offered by AWS Fargate Partners such as Aqua Security, Datadog, New Relic, Splunk, and Sumo Logic, which have expanded Fargate’s capabilities.

Available Now

AWS Graviton2 support for AWS Fargate is now accessible in all AWS Regions where Fargate is available, excluding Bahrain, Cape Town, China, and GovCloud regions. This feature is supported on Fargate Platform Version (PV) 1.4.0 or later. If you have not yet upgraded to PV 1.4.0, please consult the AWS Fargate platform versions section in the AWS documentation for guidance on migration.

You can experience up to 40% better price-performance for Arm-compatible container-based applications, with further cost reductions of up to 52% off on-demand pricing through a commitment to one- or three-year terms via Compute Savings Plans. For more details, visit the AWS Fargate pricing page.

Try it out, and we welcome 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

SEO Metadata

HOME