1.はじめに
2026 年 10 月 13 日、AWS より Amazon ECS(以下、ECS)の新しいサービスメトリクスとして LiveTaskCount が発表されました。
Amazon ECS が LiveTaskCount を追加し、RunningTaskCount メトリクスを無料化 にもある通り、これまで提供されていた Amazon CloudWatch Container Insights(以下、Container Insights)の RunningTaskCount メトリクスの無料化と併せてアナウンスされています。
今回追加された LiveTaskCount は、タスクのライフサイクルのうち複数のステータスにまたがってカウントを行う仕様となっています。
ここで気になったのが、タスクの起動時や停止時において、LiveTaskCount と RunningTaskCount の 2 つのメトリクスにどのような推移の差が生じるのかという点です。
そこで今回、Application Load Balancer(以下、ALB)配下に AWS Fargate(以下、Fargate)でタスクが稼働する ECS サービスを用意し、タスクの増減に伴う両メトリクスの立ち上がりや減少のタイミングを実際に確認してみたので紹介します。
2.メトリクス仕様とタスクライフサイクルの整理
今回扱う 2 つのメトリクスと ECS タスクのライフサイクルについて整理しておきます。
対象メトリクスの概要
Amazon ECS CloudWatch metrics および Amazon ECS Container Insights metrics より、各メトリクスの概要は以下となります。
- LiveTaskCount:ACTIVATING、RUNNING、DEACTIVATING 状態にあるタスクの数をカウントするメトリクス。
- RunningTaskCount:Container Insights において、RUNNING 状態にあるタスクの数をカウントするメトリクス。
タスクライフサイクルの補足
Amazon ECS task lifecycle に記載されている通り、ECS タスクは起動から停止までにいくつかの移行状態を経由します。
今回の確認に関わるステータスは以下の通りです。
- ACTIVATING:タスクが RUNNING 状態に移行する前に、ECS が追加の構成手順を実行している移行状態。
- RUNNING:タスクが正常に実行されている状態。
- DEACTIVATING:タスクが停止する前に、ECS が追加のステップを実行している移行状態。
LiveTaskCount は RUNNING への移行準備中である ACTIVATING や、登録解除処理中である DEACTIVATING のタスクも含めて捉えるのに対し、RunningTaskCount は RUNNING 状態にあるタスクのみを捉えるメトリクスとなります。
※ なお、RunningTaskCount メトリクス自体は 2026 年 10 月 1 日より無料化されましたが、Container Insights を有効化した場合、収集される他のメトリクスはカスタムメトリクスとして課金対象となります。
Monitor Amazon ECS containers using Container Insights with enhanced observability の注意書きにも記載されているため、導入時はご留意ください。

3.構成について
環境の構成
東京リージョン(ap-northeast-1)に ALB と Fargate 起動タイプの ECS クラスターおよびサービスを構築しました。
ALB のターゲットグループにおける「登録解除の遅延」は 300 秒(5 分)に設定しています。
全体の構成イメージは以下の通りとなります。
[Application Load Balancer (ALB)]
└─ ターゲットグループ (登録解除遅延: 300 秒)
│
▼
[Amazon ECS on AWS Fargate]
└─ ECS サービス (test-ecs-metrics-svc)
├─ タスク 1 (ACTIVATING / RUNNING / DEACTIVATING)
└─ タスク 2 (必要タスク数の変更に伴い追加)
│
▼
[Amazon CloudWatch]
├─ AWS/ECS LiveTaskCount (新規メトリクス)
└─ ECS/ContainerInsights RunningTaskCount (Container Insights)
CloudWatch ダッシュボードの設定
メトリクスの推移を比較するため、CloudWatch ダッシュボードに以下の 3 つのウィジェットを用意しました。
いずれもメトリクスの期間は 1 分、統計は Maximum です。
- Widget A:AWS/ECS LiveTaskCount 単体
- Widget B:ECS/ContainerInsights RunningTaskCount 単体
- Widget C:LiveTaskCount と RunningTaskCount の比較(同一グラフ上で重ね合わせ)
4.Container Insights 無効時の RunningTaskCount
本題に入る前に、Container Insights が無効な状態では RunningTaskCount が取得できないことを確認しておきます。
ECS クラスターの CloudWatch モニタリングの項目が「デフォルト」となっており、Container Insights は無効の状態です。

この状態でタスクを 1 台起動し、ダッシュボードの表示を確認してみます。

LiveTaskCount は「1」としてカウントされていますが、RunningTaskCount は「データがありません」と表示されました。
RunningTaskCount は Container Insights の機能として収集されるメトリクスであるため、ECS クラスター側で Container Insights を有効化していない状態ではメトリクス自体が取得されません。
5.タスク起動時におけるメトリクス
以降の挙動確認では、Container Insights をあらかじめ有効化した状態で作成した ECS クラスターを使用し、タスクの起動からメトリクスの推移を見ていきます。
クラスターの CloudWatch モニタリングが「Container Insights」となっている画面が以下となります。
これで 2 つのメトリクスを取得できます。

ECS サービスにおいてタスクが 1 台実行中となっている状態を確認しました。

このタスク起動時におけるメトリクスの推移を確認してみます。

LiveTaskCount が先んじて「1」に到達しています。
RunningTaskCount は 09:53 時点では「0」であり、1 分後の 09:54 に「1」へ上昇しました。
この差が生じる理由は、タスクライフサイクルにおけるステータス遷移によるものです。
LiveTaskCount は ACTIVATING の段階からカウント対象とするため早い段階で「1」となり、その後タスクが正常に立ち上がって RUNNING ステータスへ遷移した段階で RunningTaskCount が「1」としてカウントされた形となります。
6.タスク減少時におけるメトリクス
続いて、タスク数を減らした際のメトリクスを確認してみます。
2 台稼働状態から 1 台への削減
まず、ECS サービスの必要タスク数を 2 に変更し、2 台のタスクが正常に稼働している状態を用意しました。

ここで、ALB ターゲットグループの属性設定を確認しておきます。
ターゲットの登録解除の遅延は 300 秒(5 分)に設定されています。

この状態から、ECS サービスの必要タスク数を 2 から 1 に変更します。
サービス概要を確認すると、タスクの 1 台が「非アクティブ化中(DEACTIVATING)」ステータスへ移行しました。

タスク削減直後のメトリクス推移
タスクが「非アクティブ化中」となった状態で、メトリクスを確認してみます。

グラフを確認すると、10:16 から 10:17 にかけて RunningTaskCount が先に「2」から「1」へと減少しました。
一方で、LiveTaskCount は 10:17 の時点でも「2」の数値を維持しています。
これは、RunningTaskCount が RUNNING ステータスのタスクのみを対象とするため、タスクが非アクティブ化中(DEACTIVATING)へ移行した時点でカウントから除外されたためです。
LiveTaskCount は DEACTIVATING ステータスのタスクもカウント対象に含むため、「2」が維持されています。
登録解除遅延の経過と完全停止
時間が経過すると、非アクティブ化中だったタスクが「停止済み」へ遷移しました。

タスクが停止した後のメトリクスを確認してみます。

RunningTaskCount が 10:17 に「1」へ減少してから 5 分が経過した 10:22 から 10:23 にかけて、LiveTaskCount も「2」から「1」へと減少しました。
ターゲットグループからの登録解除が完了し、タスクの DEACTIVATING ステータスが終了したタイミングで、LiveTaskCount のカウントも減算されたことが確認できます。
7.おわりに
ECS に新しく追加された LiveTaskCount と、既存の RunningTaskCount メトリクスについて、タスク増減時の挙動を確認しました。
起動時は ACTIVATING ステータスを包含する LiveTaskCount が先にカウントされ、RUNNING ステータスへの移行に伴って RunningTaskCount が追従します。
停止時は RUNNING から外れた時点で RunningTaskCount が先に減少し、ターゲットグループの登録解除処理(DEACTIVATING)が完了した段階で LiveTaskCount が減少します。
このように、タスクライフサイクルの移行ステータスを考慮するかどうかによって、メトリクスの増減タイミングに違いがあることが確認できました。
純粋に現在の RUNNING ステータスのタスク数を把握したい場合は RunningTaskCount が適しており、タスクの起動準備中や登録解除処理中も含めたタスク総数を把握したい場合は LiveTaskCount が適しています。
監視やアラームに活用する際は、それぞれのメトリクスの特性を理解した上で、目的に応じて使い分けるのがよいかと思います。