Resource Usage for Consul on AWS Elastic Container Service (ECS)

We ran performance tests of Consul on ECS to determine the resource usage of the sidecar containers Consul on ECS injects along with the ACL controller. The architecture page describes each Consul on ECS component in depth.

We used the following procedure to measure resource usage:

  • Executed performance tests while deploying clusters of various sizes. We ensured that deployment conditions stressed Consul on ESC components.
  • After each performance test session, we recorded resource usage for each component to determine worst-case scenario resource usage in a production environment.
  • We used Fargate’s minimum allowed CPU (256 shares) and memory settings (512 MB) on ECS during performance testing to demonstrate that Consul on ECS along with application containers can run on the smallest ECS tasks.

Here is the maximum resource usage we observed for each container:

ContainerCPUMemory
ACL Controller5%43 MB
Health Sync6%35 MB
Consul Client10%87 MB
Envoy18%55 MB

The containers added by Consul on ECS consume resources well below the minimum CPU and memory limits for an ECS Task. Use the memory and cpu settings for the task definition if additional resources are necessary for your application task.