Amazon ECS クラスターの予約率メトリクス - Amazon Elastic Container Service

Amazon ECS クラスターの予約率メトリクス

クラスターの予約メトリクスは、クラスター内のアクティブな各コンテナインスタンスに登録された CPU、メモリ、GPUs に対する、クラスター内のすべての Amazon ECS タスクによって予約されている CPU、メモリ、GPUs の割合として測定されます。ステータスが ACTIVE または DRAINING であるコンテナインスタンスのみが、クラスター予約メトリクスに影響します。このメトリクスは、EC2 インスタンスでホストされるタスクまたはサービスを含むクラスターでのみサポートされています。AWS Fargate でタスクがホストされているクラスターではサポートされていません。

(Total CPU units reserved by tasks in cluster) x 100 Cluster CPU reservation = -------------------------------------------------------------- (Total CPU units registered by container instances in cluster)
(Total MiB of memory reserved by tasks in cluster x 100) Cluster memory reservation = ------------------------------------------------------------------ (Total MiB of memory registered by container instances in cluster)
(Total GPUs reserved by tasks in cluster x 100) Cluster GPU reservation = ------------------------------------------------------------------ (Total GPUs registered by container instances in cluster)

クラスターでタスクを実行すると、Amazon ECS はタスク定義を解析し、そのコンテナの定義で指定されている CPU ユニット、メモリ (MiB)、GPUs の合計を予約します。Amazon ECS は毎分、クラスター内で実行中の各タスクによって現在予約されている CPU ユニットの数、メモリ (MiB)、GPU の数を計算します。クラスター内で実行中のすべてのタスクによって予約されている CPU、メモリ、GPUs の合計が計算され、その数字がクラスターに登録されているリソースの合計に対する割合として CloudWatch にレポートされます。タスク定義でソフト制限 (memoryReservation) を指定する場合、予約メモリの容量を計算するためにその制限が使用されます。それ以外の場合は、ハード制限 (memory) が使用されます。クラスター内のタスクによって予約されるメモリの合計 MiB には、一時ファイルシステム (tmpfs) のボリュームサイズが含まれます。タスク定義で定義されている場合、sharedMemorySize も含まれます。ハード制限とソフト制限、共有メモリサイズ、tmpfs ボリュームサイズの詳細については、「タスク定義パラメータ」を参照してください。

例えば、クラスターに 2 つのアクティブなコンテナインスタンス、c4.4xlarge インスタンスおよび c4.large インスタンスが登録されているとします。c4.4xlarge インスタンスは、CPU ユニット 16,384、メモリ 30,158 MiB でクラスターに登録されています。c4.large インスタンスは、CPU ユニット 2,048、メモリ 3,768 MiB で登録されています。このクラスターの合計リソースは、CPU ユニット 18,432、メモリ 33,926 MiB です。

このタスク定義により、1,024 CPU ユニットと 2,048 MiB のメモリが予約され、このクラスター内で 10 個のタスクが開始されている (その他のタスクが現在実行されていない) 場合、合計 10,240 CPU ユニットと 20,480 MiB のメモリが予約されています。この場合、クラスターについて CPU 予約率 55%、メモリ予約率 60% として CloudWatch にレポートされます。

以下の図では、クラスターに登録されている CPU ユニットの合計と、それらの予約率および使用率が既存のタスクおよび新規タスク配置にどのように影響するかを示しています。下段 (予約済み、使用中) および中段 (予約済み、未使用) ブロックは、クラスターで実行中の既存タスクで予約されている CPU ユニットの合計、または CPUReservation CloudWatch メトリクスを表しています。下段ブロックは、実行中のタスクがクラスターで実際に使用している予約 CPU ユニット、または CPUUtilization CloudWatch メトリクスを表しています。上段ブロックは既存のタスクによって予約されていない CPU ユニットを表します。これらの CPU ユニットを新しいタスクの配置に利用できます。既存タスクの CPU リソースを増やす必要がある場合に、これらの予約されていない CPU ユニットを使用することもできます。詳細については、「cpu」タスク定義パラメータのドキュメントを参照してください。

クラスターの CPU 予約と使用率