Amazon ECS タスクライフサイクル
タスクが手動またはサービスの一部として開始されると、自己終了するか手動で停止されるまでに、複数の状態を経由します。バッチジョブとして実行され、PENDING
から RUNNING
、その後 STOPPED
と自然に進行するタスクもあります。他のタスクの場合は、サービスの一部であることもありますが、無制限に実行され続けるか、必要に応じてスケールアップまたはスケールダウンします。
タスクの停止や、スケールアップまたはスケールダウンのためのサービスの必要数の更新など、タスクのステータスの変更がリクエストされた場合、Amazon ECS コンテナエージェントはこれらの変更をタスクの最後の既知のステータス (lastStatus
) およびタスクの目的のステータス (desiredStatus
) として追跡します。タスクの最後の既知のステータスと目的のステータスの両方が、コンソールでまたは API あるいは AWS CLI でタスクを記述することにより、表示できます。
以下のフローチャートは、タスクのライフサイクルのフローを示しています。

ライフサイクル状態
それぞれのタスクのライフサイクル状態の説明は、以下のとおりです。
- PROVISIONING
-
Amazon ECS は、タスクを起動する前に追加のステップを実行する必要があります。例えば、
awsvpc
ネットワークモードを使用するタスクの場合、Elastic Network Interface をプロビジョニングする必要があります。 - 保留中
-
これは、Amazon ECS が他の操作を実行するためにコンテナエージェントで待機している遷移状態です。タスクは、そのタスクに利用可能なリソースがあるまで保留状態のままです。
- アクティブ化中
-
これは、タスクが起動された後で、タスクが
RUNNING
状態に移行する前に、Amazon ECS が追加の手順を実行する必要がある移行状態です。これは、Amazon ECS がコンテナイメージをプルし、コンテナを作成し、タスクネットワークを設定し、ロードバランサーのターゲットグループを登録し、サービス検出を設定する状態です。 - RUNNING
-
タスクを正常に実行中です。
- 非アクティブ化中
-
これは、タスクを停止する前に Amazon ECS が追加のステップを実行する必要がある移行状態です。例えば、Elastic Load Balancings ターゲットグループを使用するように設定されたサービスの一部であるタスクの場合、この状態でターゲットグループの登録解除が行われます。
- 停止中
-
これは、Amazon ECS が他の操作を実行するためにコンテナエージェントで待機している遷移状態です。
Linux コンテナの場合、コンテナエージェントは、アプリケーションを終了してシャットダウンする必要があることを通知する
SIGTERM
シグナルを送信し、タスク定義で設定されたStopTimeout
期間を待機した後にSIGKILL
を送信します。 - プロビジョン解除中
-
Amazon ECS は、タスクが停止された後で、タスクが
STOPPED
状態に移行する前に、追加の手順を実行する必要があります。例えば、awsvpc
ネットワークモードを使用するタスクの場合、Elastic Network Interface をデタッチして削除する必要があります。 - 停止
-
タスクは正常に停止しました。
エラーが原因でタスクが停止した場合は、「Amazon ECS の停止したタスクのエラーを表示する」を参照してください。
- DELETED
-
これは、タスクが停止したときの移行状態です。この状態はコンソールには表示されませんが、
describe-tasks
に表示されます。