Skip to content
Cloud Efficiency Hub

Suboptimal Architecture Selection in AWS Fargate

Explanation

AWS Fargate supports both x86 and Graviton2 (ARM64) CPU architectures, but by default, many workloads continue to run on x86. Graviton2 delivers significantly better price-performance, especially for stateless, scale-out container workloads. Teams that fail to configure task definitions with the `ARM64` architecture miss out on meaningful efficiency gains. Because this setting is not enabled automatically and is often overlooked, it results in higher compute costs for functionally equivalent workloads.

Relevant Billing Model

Fargate charges are based on the requested vCPU and memory resources for the duration of containerized workloads. The choice of CPU architecture (x86 vs. ARM) directly impacts pricing. Graviton2 (ARM64) offers up to 40% better price-performance compared to x86 for many workloads but must be explicitly specified.

Detection

  • Review ECS task definitions or EKS pod specs for Fargate workloads to determine if the `ARM64` architecture is specified
  • Identify workloads where Graviton2 would be compatible (e.g., stateless services, compiled for ARM)
  • Evaluate cost differences between current architecture and potential Graviton2 performance improvements
  • Confirm that container images are compatible with ARM-based environments
  • Ensure no external dependencies or libraries require x86

Remediation

  • Update Fargate task definitions to use `"runtimePlatform": { "cpuArchitecture": "ARM64" }` where supported
  • Rebuild container images for multi-architecture compatibility if needed
  • Benchmark ARM-based performance to validate expected savings
  • Standardize Graviton2 usage for eligible workloads via IaC templates or CI/CD pipelines