

# Amazon ECS 対応 AMI での Amazon ECS コンテナエージェントのアップデート
<a name="agent-update-ecs-ami"></a>

Amazon ECS対応AMI を使用している場合は、いくつかの方法で最新バージョンの Amazon ECS コンテナエージェントを取得できます (推奨される順に示します)。
+ 現在のコンテナインスタンスを終了して Amazon ECS 対応 Amazon Linux 2 AMI最新バージョンを起動します (手動で起動するか、最新の AMI で自動スケーリング起動設定を更新して起動します)。これにより、最新のテスト済みおよび検証済みバージョンの Amazon Linux、Docker、`ecs-init`、および Amazon ECS コンテナエージェントを備えたの新しいコンテナインスタンスが提供されます。詳細については、「[Amazon ECS に最適化された Linux AMI](ecs-optimized_AMI.md)」を参照してください。
+ インスタンスに SSH で接続し、`ecs-init` パッケージ (および依存関係) を最新バージョンに更新します。このオペレーションにより、Amazon Linux リポジトリで最新のテスト済みおよび検証済みバージョンの Docker と `ecs-init`、およびAmazon ECS コンテナエージェントの最新バージョンが提供されます。詳細については、「[Amazon ECS対応 &AMI; の `ecs-init` パッケージを更新するには](#procedure_update_ecs-init)」を参照してください。
+ コンソールまたは AWS CLI や AWS SDK 経由で `UpdateContainerAgent` API オペレーションを使用し、コンテナエージェントを更新します。詳細については、「[`UpdateContainerAgent` API オペレーションで Amazon ECS コンテナエージェントを更新する](#agent-update-api)」を参照してください。

**注記**  
エージェント更新は Windows コンテナインスタンスに適用されません。Windows クラスター内のエージェントバージョンを更新するには、新しいコンテナインスタンスを起動することをお勧めします。<a name="procedure_update_ecs-init"></a>

**Amazon ECS対応 &AMI; の `ecs-init` パッケージを更新するには**

1. SSH 経由でコンテナインスタンスにログインします。

1. 次のコマンドを使用して、`ecs-init` パッケージを更新します。

   ```
   sudo yum update -y ecs-init
   ```
**注記**  
`ecs-init` パッケージと Amazon ECS コンテナエージェントが即座に更新されます。ただし、新しいバージョンの Docker は、Docker デーモンを再起動するまでロードされません。インスタンスを再起動するか、インスタンスで次のコマンドを実行して、再起動します。  
Amazon ECS に最適化された Amazon Linux 2 AMI  

     ```
     sudo systemctl restart docker
     ```
Amazon ECS に最適化された Amazon Linux AMI  

     ```
     sudo service docker restart && sudo start ecs
     ```

## `UpdateContainerAgent` API オペレーションで Amazon ECS コンテナエージェントを更新する
<a name="agent-update-api"></a>

**重要**  
-`UpdateContainerAgent`API は、Amazon ECS に最適化された AMI の Linux バリアントでのみサポートされます。ただし、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI は例外です。Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI を使用するコンテナインスタンスの場合、`ecs-init`パッケージを使用してエージェントを更新します。他のオペレーティングシステムを実行しているコンテナインスタンスについては、「[Amazon ECS コンテナエージェントの手動更新（Amazon ECS 最適化以外の AMI の場合）](manually_update_agent.md)」を参照してください。Windows コンテナインスタンスを使用している場合は、新しいコンテナインスタンスを起動して、Windows クラスター内のエージェントバージョンを更新することをお勧めします。

`UpdateContainerAgent`API 処理は、コンソールまたは AWS CLI または AWS SDKを使ってエージェントのアップデートを要求したときに始まります。Amazon ECS は、現在のエージェントバージョンと使用可能な最新バージョンを比較し、更新が可能かどうかを確認します。更新が利用できない場合 (例えばすでに最新バージョンがエージェントで実行されている場合) は、`NoUpdateAvailableException` が返されます。

上に示した更新プロセスのステージは、次のとおりです。

`PENDING`  
エージェントを更新できます。更新プロセスが開始されました。

`STAGING`  
エージェントで、エージェントの更新のダウンロードが開始されています。エージェントで更新をダウンロードできない場合や、更新の内容が正しくないか破損している場合、エージェントは失敗通知を送信し、更新は `FAILED` 状態に遷移します。

`STAGED`  
エージェントのダウンロードが完了し、エージェントの内容が確認されました。

`UPDATING`  
`ecs-init` サービスが再起動され、新しいエージェントバージョンが取得されます。エージェントが何らかの理由で再起動できない場合、更新は `FAILED` 状態に遷移します。それ以外の場合は、エージェントから Amazon ECS に更新完了のシグナルが送信されます。

**注記**  
エージェント更新は Windows コンテナインスタンスに適用されません。Windows クラスター内のエージェントバージョンを更新するには、新しいコンテナインスタンスを起動することをお勧めします。

**Amazon ECSに最適化されたAMIのAmazon ECS コンテナエージェントをコンソールでアップデートするには**

1. コンソール ([https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)) を開きます。

1. ナビゲーションバーから、外部インスタンスが存在するリージョンを選択します。

1. ナビゲーションペインで、[**Clusters**] を選択し、クラスターを選択します。

1. **[Cluster : *name*]** (クラスター: 名前) のページで、**[Infrastructure]** (インフラストラクチャ) タブを選択します。

1. **[コンテナインスタンス]** で、更新するインスタンスを選択し、**[アクション]**、**[エージェントの更新]** を選択します。