Amazon ECS API または AWS CLI を使用してタスク定義を登録する場合、無効なcpu
またはmemory
値を指定すると、以下のエラーが返されます。
An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task.
注記
Terraform の使用時に、以下のエラーが返される可能性があります。
Error: ClientException: No Fargate configuration exists for given values.
この問題を解決するには、タスク定義でタスクの CPU とメモリにサポートされている値を指定する必要があります。cpu
値はタスク定義で、CPU ユニットまたは vCPU で表すことができます。タスク定義が登録されると、CPU ユニットを示す整数に変換されます。memory
値はタスク定義で、MiB または GB で表すことができます。タスク定義が登録されると、MiB を示す整数に変換されます。
requiresCompatibilities
パラメータに FARGATE
を指定しているタスク定義については (EC2
も指定されている場合も)、次の表のいずれかの値を使用する必要があります。これらの値によって、CPU とメモリのパラメータでサポートされる値の範囲が決まります。
Fargate でホストされるタスクの場合、次の表に有効な CPU とメモリの組み合わせを示します。JSON ファイルのメモリ値は MiB 単位で指定されます。この値に 1024 を掛けると、GB 値を MiB に変換できます。例えば、1 GB = 1024 MiB です。
CPU の値 | メモリの値 | AWS Fargate でサポートされるオペレーティングシステム |
---|---|---|
256 (.25 vCPU) | 512 MiB、1 GB、2 GB | リナックス |
512 (.5 vCPU) | 1 GB、2 GB、3 GB、4 GB | リナックス |
1,024 (1 vCPU) | 2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB | Linux、Windows |
2,048 (2 vCPU) | 4 GB ~ 16 GB (1 GB のインクリメント) | Linux、Windows |
4,096 (4 vCPU) | 8 GB ~ 30 GB (1 GB のインクリメント) | Linux、Windows |
8192 (8 vCPU) 注記このオプションには Linux プラットフォーム |
16 GB~60 GB (4 GB のインクリメント) | リナックス |
16384 (16vCPU) 注記このオプションには Linux プラットフォーム |
32 GB~120 GB (8 GB のインクリメント) | リナックス |
Amazon EC2 でホストされているタスクでサポートされるタスク CPU の値は、0.25 vCPU ~ 192 vCPU です。
Amazon ECS は、CPU 期間と CPU クォータを使用して、タスクサイズの CPU ハード制限を制御します。タスク定義で vCPU を指定すると、Amazon ECS は cgroup
に適用される CPU 期間と CPU クォータの設定に値を変換します。
CPU クォータは、特定の CPU 期間中に cgroup
に付与される CPU 時間を制御します。どちらの設定も、マイクロ秒単位で表されます。CPU クォータが CPU 期間と等しい場合、cgroup
は 1 つの vCPU で最大 100% (または複数の vCPU の場合は合計で 100% になる割合) まで実行できます。CPU クォータは最大 1,000,000 マイクロ秒で、CPU 期間は最小 1 ミリ秒です。これらの値を使用して CPU 数の制限を設定できます。CPU クォータを変更せずに CPU 期間を変更する場合、有効になる制限はタスク定義で指定した制限とは異なります。
100 ミリ秒の期間では、0.125~10 の vCPU を使用できます。
注記
タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。