Amazon ECS CloudWatch のメトリクス - Amazon ECS

Amazon ECS CloudWatch のメトリクス

Amazon CloudWatch を使用して、Amazon ECS リソースをモニタリングすることで Amazon ECS から raw データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。これらの統計情報は 2 週間記録されるため、履歴情報にアクセスしてクラスターまたはサービスの動作をより的確に把握できます。Amazon ECS メトリクスデータは 1 分間隔で CloudWatch に自動的に送信されます。CloudWatch の詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

CloudWatch メトリクスを有効にする

Fargate 起動タイプを使用するどの Amazon ECS サービスでも CloudWatch の CPU とメモリの使用率メトリクスが自動的に有効になっているため、手動で有効にする必要はありません。

使用できるメトリクスとディメンション

以下のセクションでは、Amazon ECS が Amazon CloudWatch に送信するメトリクスとディメンションを一覧表示しています。

Amazon ECS のメトリクス

Amazon ECS には、リソースをモニタリングするためのメトリクスが用意されています。クラスター全体の CPU とメモリの予約率と使用率、およびクラスター内のサービスの CPU とメモリの使用率を測定できます。GPU のワークロードについては、クラスター全体の GPU 予約率を測定できます。

使用可能になるメトリクスは、クラスター内のタスクとサービスの起動タイプに応じて変化します。サービスに Fargate 起動タイプを使用する場合、サービスのモニタリングを支援するための CPU とメモリの使用率メトリクスが提供されます。EC2 起動タイプの場合、基盤となるインフラストラクチャを構成する Amazon EC2 インスタンスの所有者となるため、それらのインスタンスをモニタリングする必要があります。したがって、追加の CPU、メモリ、GPU の予約率、CPU とメモリの使用率メトリクスが、クラスター、サービス、タスクの各レベルで使用可能になっています。

Amazon ECS は以下のメトリクスを CloudWatch に毎分送信します。Amazon ECS がメトリクスを収集する際は、1 分ごとに、複数のデータポイントを収集します。次に、それらを 1 つのデータポイントに集計してから、データを CloudWatch に送信します。したがって、CloudWatch では、1 つのサンプル数は実際には 1 分間の複数のデータポイントの集計になります。

AWS/ECS 名前空間には、次のメトリクスが含まれます。

CPUReservation

クラスターでタスクを実行することで予約されている CPU ユニットの割合。

クラスターの CPU 予約率 (このメトリクスは ClusterName でのみフィルタ処理できます) は、クラスター内の Amazon ECS タスクによって予約されている CPU ユニットの合計を、クラスター内のすべてのコンテナインスタンスに登録されている CPU ユニットの合計で割った数として測定されます。ステータスが ACTIVE または DRAINING であるコンテナインスタンスのみが、CPU 予約メトリクスに影響します。このメトリクスは、EC2 起動タイプを使用するタスクにのみ適用されます。

有効なディメンション: ClusterName

有効な統計: 平均、最小、最大、合計、サンプル数。最も有用な統計は Average です。

単位: パーセント。

CPUUtilization

クラスターやサービスで使用されている CPU の割合。

クラスターの CPU 使用率 (このメトリクスは ServiceName を除く ClusterName でフィルタ処理されます) は、クラスター内の Amazon ECS タスクによって使用されている CPU ユニットの合計を、クラスター内のすべてのコンテナインスタンスに登録されている CPU ユニットの合計で割った数として測定されます。ステータスが ACTIVE または DRAINING であるコンテナインスタンスのみが、CPU 使用率メトリクスに影響します。クラスターの CPU 使用率メトリクスは、EC2 起動タイプを使用するタスクにのみ適用されます。

サービスの CPU 使用率 ( ClusterNameServiceName の両方でフィルタリングされたメトリクス) は、サービスに属するタスクで使用されている CPU ユニット数を、サービスに属するタスクで予約されている CPU ユニット数で割った値です。サービスの CPU 使用率メトリクスは、Fargate と EC2 の両方の起動タイプを使用するタスクに適用されます。

有効なディメンション: ClusterNameServiceName

有効な統計: 平均、最小、最大、合計、サンプル数。最も有用な統計は Average です。

単位: パーセント。

MemoryReservation

クラスターでタスクを実行することで予約されているメモリの割合。

クラスターのメモリ予約率 (このメトリクスは ClusterName でのみフィルタ処理できます) は、クラスター内の Amazon ECS タスクによって予約されているメモリの合計を、クラスター内のすべてのコンテナインスタンスに登録されているメモリの合計で割った数として測定されます。ステータスが ACTIVE または DRAINING であるコンテナインスタンスのみが、メモリ予約メトリクスに影響します。このメトリクスは、EC2 起動タイプを使用するタスクにのみ適用されます。

有効なディメンション: ClusterName

有効な統計: 平均、最小、最大、合計、サンプル数。最も有用な統計は Average です。

単位: パーセント。

MemoryUtilization

クラスターやサービスで利用されるメモリの割合。

クラスターのメモリ使用率 (このメトリクスは ServiceName を除く ClusterName でフィルタ処理されます) は、クラスター内の Amazon ECS タスクによって使用されているメモリの合計を、クラスター内のすべてのコンテナインスタンスに登録されているメモリの合計で割った数として測定されます。ステータスが ACTIVE または DRAINING であるコンテナインスタンスのみが、メモリ使用率メトリクスに影響します。クラスターのメモリ使用率メトリクスは、EC2 起動タイプを使用するタスクにのみ適用されます。

サービスメモリの使用率は (メトリクスは ClusterNameServiceName 出フィルタリングされます)、サービスに付属するタスク数をサービスに属するタスクのためのメモリ総数で割った数で使用中の合計メモリを測定します。サービスのメモリ使用率メトリクスは、Fargate と EC2 の両方の起動タイプを使用するタスクに適用されます。

有効なディメンション: ClusterNameServiceName

有効な統計: 平均、最小、最大、合計、サンプル数。最も有用な統計は Average です。

単位: パーセント。

GPUReservation

使用可能な GPU の合計に対する、クラスター内の実行中のタスクによって予約されている GPU の割合。

クラスターの GPU 予約率は、クラスター内の Amazon ECS タスクによって予約されている GPU の合計を、クラスター内のすべての GPU 対応コンテナインスタンスで使用可能だった GPU の合計で割った数として測定されます。ステータスが ACTIVE または DRAINING であるコンテナインスタンスのみが、GPU 予約メトリクスに影響します。

有効なディメンション: ClusterName

有効な統計: 平均、最小、最大、合計、サンプル数。最も有用な統計は Average です。

単位: パーセント。

注記

EC2 起動タイプを使用するタスク、および Linux コンテナインスタンスがある場合、Amazon ECS コンテナエージェントは Docker stats メトリクスを利用して、インスタンスで実行中の各コンテナの CPU およびメモリデータを収集します。バーストパフォーマンスインスタンス (T3、T3a、および T2 インスタンス) の場合、CPU 使用率メトリクスには、インスタンスレベルの CPU メトリクスとは異なるデータが反映される場合があります。

Amazon ECS メトリクスのディメンション

Amazon ECS メトリックスは AWS/ECS 名前空間を使用し、以下のディメンションのメトリックスを提供しています。ディメンションのメトリクスは、期間中にタスクが実行されているリソースのみを反映します。たとえば、クラスターに 1 つのサービスがあるが、このサービスに RUNNING 状態のタスクがない場合、CloudWatch に送信されるメトリクスはありません。2 つのサービスがあり、1 つに実行中のタスクがあるが、別の 1 つに実行中のタスクがない場合、実行中のタスクがあるサービスのメトリクスのみが送信されます。

ClusterName

このディメンションにより、指定したクラスター内のすべてのリソースから、リクエストしたデータがフィルタ処理されます。すべての Amazon ECS メトリクスは ClusterName でフィルタ処理されます。

ServiceName

このディメンションにより、指定したクラスター内の特定サービスのすべてのリソースから、リクエストしたデータがフィルタ処理されます。

サービス使用率

サービスの使用率は、サービスのタスク定義で指定された CPU およびメモリに対する、クラスターのサービスに属する Amazon ECS タスクによって使用されている CPU とメモリの比率として測定されます。このメトリクスは、Fargate 起動タイプを使用するタスクを含むサービスでサポートされています。

(Total CPU units used by tasks in service) x 100 Service CPU utilization = ---------------------------------------------------------------------------- (Total CPU units specified in task definition) x (number of tasks in service)
(Total MiB of memory used by tasks in service) x 100 Service memory utilization = -------------------------------------------------------------------------------- (Total MiB of memory specified in task definition) x (number of tasks in service)

各タスクに関連付けられている Amazon ECS コンテナエージェントは毎分、サービスが所有する各タスクで現在使用されている CPU ユニット数とメモリの MiB を計算し、この情報は Amazon ECS にレポートされます。クラスターで実行中のサービスが所有するすべてのタスクで使用されている CPU とメモリの合計が計算され、その数字がサービスのタスク定義でサービス用に指定されたリソースの合計に対する比率として CloudWatch にレポートされます。ソフト制限 (memoryReservation) を指定した場合、予約メモリの容量を計算するためにその制限が使用されます。それ以外の場合は、ハード制限 (memory) が使用されます。ハード制限とソフト制限の詳細については、「タスク定義パラメータ」を参照してください。

サービスの RUNNING タスク数

CloudWatch メトリクスを使用して、RUNNING 状態のサービス内のタスク数を表示できます。たとえば、このメトリクスに CloudWatch アラームを設定して、サービスで実行中のタスクの数が指定された値を下回った場合にアラートを送信できます。

サービスの実行中のタスク数を表示するには

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで [Metrics (メトリクス)] を選択します。

  3. [All metrics] タブで、[ECS] を選択します。

  4. [ClusterName]、[ServiceName] を選択してから、実行中のタスクを表示するサービスに対応したメトリクス (CPUUtilization または MemoryUtilization) を選択します。

  5. [グラフ化したメトリクス] タブで、[期間] を [1 分] に、[統計] を [サンプル数] に変更します。

    グラフに表示された値は、サービスの RUNNING タスクの数を示しています。

    
                            クラスターメトリクスビュー