Task size
consists of Task memory (GB)
and Task CPU (vCPU)
. While optional in the EC2 launch type, task size is required with the Fargate launch type. Docker container level memory and CPU settings may optionally be defined, but are overridden by task definition level settings. Only specific combinations of task memory and task CPU are supported, and the ECS wizard indicates with a message the supported value (or range of values) for a selected value. As an example, the valid CPU range for 1 GB memory is 0.25 vCPU to 0.5 vCPU. The total resources (memory or CPU) configured at the container level must not exceed the task level resource settings. As an example, if a task definition consists of two containers (MySQL and WordPress) with a memory limit of 128 MB for each container, the task level memory must be at least 256 MB. Also, the total of container level memory must not exceed 256 MB. Similarly for the CPU. Two memory limits may be defined at the container level: Soft limit
and Hard limit
. The Soft limit corresponds to the memoryReservation
attribute at the task level, and the Hard limit corresponds to the memory
attribute at the task level. The sum of container memory reservations (Soft limits) must not exceed the task memory. The Hard limit for each container must not exceed the memory configured at the task level. A minimum of 4 GB must be specified by default for a container.
An example task size is shown in the following screenshot, in which the Task memory
(memory
attribute) is set to 0.5 GB
(512 GB), and the Task CPU
is set to 0.25 vCPU
. At the container level, as configured in the two container definitions, the memory reservation is 128 MB for each container, which makes the total memory reservation of 256 MB
well within the 512 GB
allocated at the task level. The task size is allocated to a task, whether used or not. Similarly, the number of CPU Units
configured for each container is 10
, which makes the total CPU units 20 for containers within the CPU units, 25 are allocated at the task level. Refer to the following screenshot:
Task size configuration and allocation for containers