

# Amazon ECS タスクライフサイクル
<a name="task-lifecycle-explanation"></a>

タスクが手動またはサービスの一部として開始されると、自己終了するか手動で停止されるまでに、複数の状態を経由します。バッチジョブとして実行され、`PENDING` から `RUNNING`、その後 `STOPPED` と自然に進行するタスクもあります。他のタスクの場合は、サービスの一部であることもありますが、無制限に実行され続けるか、必要に応じてスケールアップまたはスケールダウンします。

タスクの停止や、スケールアップまたはスケールダウンのためのサービスの必要数の更新など、タスクのステータスの変更がリクエストされた場合、Amazon ECS コンテナエージェントはこれらの変更をタスクの最後の既知のステータス (`lastStatus`) およびタスクの目的のステータス (`desiredStatus`) として追跡します。タスクの最後の既知のステータスと目的のステータスの両方が、コンソールでまたは API あるいは AWS CLI でタスクを記述することにより、表示できます。

以下のフローチャートは、タスクのライフサイクルのフローを示しています。

![\[タスクのライフサイクル状態の説明図。状態には、PROVISIONING、PENDING、ACTIVATING、RUNNING、DEACTIVATING、STOPPING があります。\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/images/task-lifecycle.png)


## ライフサイクル状態
<a name="lifecycle-states"></a>

それぞれのタスクのライフサイクル状態の説明は、以下のとおりです。

PROVISIONING  
Amazon ECS は、タスクを起動する前に追加のステップを実行する必要があります。例えば、`awsvpc` ネットワークモードを使用するタスクの場合、Elastic Network Interface をプロビジョニングする必要があります。

保留中  
これは、Amazon ECS が他の操作を実行するためにコンテナエージェントで待機している遷移状態です。タスクは、そのタスクに利用可能なリソースがあるまで保留状態のままです。

アクティブ化中  
これは、タスクが起動された後で、タスクが `RUNNING` 状態に移行する前に、Amazon ECS が追加の手順を実行する必要がある移行状態です。これは、Amazon ECS がコンテナイメージをプルし、コンテナを作成し、タスクネットワークを設定し、ロードバランサーのターゲットグループを登録し、サービス検出を設定する状態です。

RUNNING  
タスクを正常に実行中です。

非アクティブ化中  
これは、タスクを停止する前に Amazon ECS が追加のステップを実行する必要がある移行状態です。例えば、Elastic Load Balancings ターゲットグループを使用するように設定されたサービスの一部であるタスクの場合、この状態でターゲットグループの登録解除が行われます。

停止中  
これは、Amazon ECS が他の操作を実行するためにコンテナエージェントで待機している遷移状態です。  
Linux コンテナの場合、コンテナエージェントはコンテナイメージで定義された停止シグナルを送信して、`STOPSIGNAL` の指示を使用してアプリケーションを終了およびシャットダウンする必要があることを通知します。デフォルトでは、`SIGTERM` です。次に、タスク定義で設定された `StopTimeout` 期間待機してから `SIGKILL` を送信します。

プロビジョン解除中  
Amazon ECS は、タスクが停止された後で、タスクが `STOPPED` 状態に移行する前に、追加の手順を実行する必要があります。例えば、`awsvpc` ネットワークモードを使用するタスクの場合、Elastic Network Interface をデタッチして削除する必要があります。

停止  
タスクは正常に停止しました。  
エラーが原因でタスクが停止した場合は、「[Amazon ECS の停止したタスクのエラーを表示する](stopped-task-errors.md)」を参照してください。

DELETED  
これは、タスクが停止したときの移行状態です。この状態はコンソールには表示されませんが、`describe-tasks` に表示されます。