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: