

# Amazon ECS に最適化された Linux AMI
<a name="ecs-optimized_AMI"></a>

**重要**  
Amazon ECS 向けに最適化された Amazon Linux 2 AMI は 2026 年 6 月 30 日にサポート終了となり、上流の Amazon Linux 2 オペレーティングシステムと同じ終了日が反映されます (詳細については、「[Amazon Linux 2 に関するよくある質問](https://aws.amazon.com/amazon-linux-2/faqs/)」を参照してください)。アプリケーションをアップグレードして、2028 年までの長期サポートが提供されている Amazon Linux 2023 を使用することをお勧めします。Amazon Linux 2 から Amazon Linux 2023 への移行については、「[Migrating from the Amazon Linux 2 Amazon ECS-optimized AMI to the Amazon Linux 2023 Amazon ECS-optimized AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/al2-to-al2023-ami-transition.html)」を参照してください。

Amazon ECS に最適化された AMI はすべて、非推奨になる日が AMI 作成日から 2 年後にデフォルト設定されています。Amazon EC2 `DescribeImages` API を使用して、AMI の非推奨化ステータスと日付を確認できます。詳細については、「*Amazon Elastic Compute Cloud API リファレンス*」の「[DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html)」を参照してください。

Amazon ECS は、コンテナワークロードを実行する要件と推奨事項で事前設定された Amazon ECS に最適化された AMI を備えています。Amazon EC2 インスタンスには、Amazon ECS 向けに最適化された Amazon Linux 2023 AMI を使用することをお勧めします。最新の Amazon ECS に最適化された AMI からコンテナインスタンスを起動することで、最新のセキュリティアップデートや、現行バージョンのコンテナエージェントを確実に取得できます。インスタンスを起動する方法についての詳細は、[Amazon ECS Linux コンテナインスタンスの起動](launch_container_instance.md) を参照してください。

コンソールを使用してクラスターを作成すると、Amazon ECS は選択したオペレーティングシステムに関連付けられた最新の AMI を使用してインスタンスの起動テンプレートを作成します。

CloudFormation を使用してクラスターを作成する場合、SSM パラメータは Auto Scaling グループインスタンスの Amazon EC2 起動テンプレートの一部となります。動的な Systems Manager パラメータを使用して、デプロイする Amazon ECS Optimized AMI を決定するようにテンプレートを設定できます。このパラメータにより、スタックをデプロイするたびに、EC2 インスタンスに適用する必要がある利用可能な更新があるかどうかがチェックされます。Systems Manager パラメータの使用方法の例については、「*AWS CloudFormation ユーザーガイド*」の「[Amazon ECS に最適化された Amazon Linux 2023 AMI を使用して Amazon ECS クラスターを作成する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#aws-resource-ecs-cluster--examples--Create_an_cluster_with_the_Amazon_Linux_2023_ECS-Optimized-AMI)」を参照してください。

Amazon ECS に最適化された AMI をカスタマイズする必要がある場合は、GitHub の「[Amazon ECS Optimized AMI Build Recipes](https://github.com/aws/amazon-ecs-ami)」を参照してください。

Amazon Linux 2023 オペレーティングシステムを実行する Amazon EC2 インスタンスでは、Amazon ECS に最適化された AMI の次のバリアントを使用できます。


| オペレーティングシステム | AMI | 説明 | ストレージ設定 | 
| --- | --- | --- | --- | 
| Amazon Linux 2023 |  Amazon ECS 最適化 Amazon Linux 2023 AMI |  Amazon Linux 2023 は、AWS の次世代 Amazon Linux です。ほとんどの場合、Amazon ECS ワークロードのために Amazon EC2 インスタンスを起動するためにお勧めします。詳細については、「Amazon Linux 2023 ユーザーガイド」の「[Amazon Linux 2023 とは](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html)」を参照してください。  | デフォルトでは、Amazon ECS 最適化 Amazon Linux 2023 AMI は 単一の 30 GiB ルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS 最適化 Amazon Linux 2023 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2023 (arm64) |  Amazon ECS 最適化 Amazon Linux 2023 (arm64) AMI |  この AMI は Amazon Linux 2023 に基づいており、ARM ベースの AWS Graviton/Graviton 2/Graviton 3/Graviton 4 プロセッサを搭載した Amazon EC2 インスタンスを、Amazon ECS ワークロードのために起動する場合に使用することが推奨されています。詳細については、「*Amazon EC2 インスタンスタイプガイド*」の「[Amazon EC2 汎用インスタンスの仕様](https://docs.aws.amazon.com/ec2/latest/instancetypes/gp.html)」を参照してください。  | デフォルトでは、Amazon ECS 最適化 Amazon Linux 2023 AMI は 単一の 30 GiB ルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS 最適化 Amazon Linux 2023 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2023 (Neuron) |  Amazon ECS 最適化 Amazon Linux 2023 AMI  |  これは Amazon Linux 2023 をベースにした、Amazon EC2 Inf1、Trn1、または Inf2 インスタンス用の AMI です。AWS Inferentia および AWS Trainium ドライバーと Docker 用の AWS Neuron ランタイムが事前設定されており、Amazon ECS での機械学習推論ワークロードの実行が容易になります。詳細については、「[AWS Neuron 機械学習ワークロードでの Amazon ECS タスク定義](ecs-inference.md)」を参照してください。 Amazon ECS に最適化された Amazon Linux 2023 (Neuron) AMI には、AWS CLI はプリインストールされていません。  | デフォルトでは、Amazon ECS 最適化 Amazon Linux 2023 AMI は 単一の 30 GiB ルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS 最適化 Amazon Linux 2023 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2023 GPU | Amazon ECS 最適化 Amazon Linux 2023 GPU AMI |  この AMI は Amazon Linux 2023 に基づいており、Amazon EC2 GPU ベースのインスタンスを、Amazon ECS ワークロードのために起動する場合に使用することが推奨されています。NVIDIA カーネルドライバーと Docker GPU ランタイムが事前に構成されており、Amazon ECS で GPU を利用する実行中のワークロードになります。詳細については、「[GPU ワークロード向けの Amazon ECS タスク定義](ecs-gpu.md)」を参照してください。  | デフォルトでは、Amazon ECS 最適化 Amazon Linux 2023 AMI は 単一の 30 GiB ルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS 最適化 Amazon Linux 2023 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 

Amazon Linux 2 オペレーティングシステムを実行する Amazon EC2 インスタンスでは、Amazon ECS に最適化された AMI の次のバリアントを使用できます。


| オペレーティングシステム | AMI | 説明 | ストレージ設定 | 
| --- | --- | --- | --- | 
|  **Amazon Linux 2**   |  Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 AMI | この AMI は Amazon Linux 2 をベースにしており、Amazon ECS ワークロードに Linux カーネル 4.14 ではなく Linux カーネル 5.10 を使用して、Amazon EC2 インスタンスを起動したい場合に使用します。Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 AMI では、AWS CLI は事前インストールされていません。 | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
|  **Amazon Linux 2**  |  Amazon ECS に最適化された Amazon Linux 2 AMI | これは Amazon ECS のワークロード用です。Amazon ECS に最適化された Amazon Linux 2 AMI には、AWS CLI はプリインストールされていません。 | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
|  **Amazon Linux 2 (arm64)**  |  Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 (arm64) AMI |  この AMI は Amazon Linux 2 をベースにし、ARM ベースの AWS Graviton/Graviton 2/Graviton 3/Graviton 4 プロセッサを搭載したAmazon EC2 インスタンス用であり、Amazon EC2 S ワークロードに Linux カーネル 4.14 ではなく Linux カーネル 5.10を使用する場合に使用します。詳細については、「*Amazon EC2 インスタンスタイプガイド*」の「[Amazon EC2 汎用インスタンスの仕様](https://docs.aws.amazon.com/ec2/latest/instancetypes/gp.html)」を参照してください。 Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI には、AWS CLI はプリインストールされていません。  | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2 (arm64) | Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI |  この AMI は Amazon Linux 2 をベースにしており、Amazon ECS ワークロードに ARM ベースの AWS Graviton/Graviton 2/Graviton 3/Graviton 4 プロセッサを搭載した Amazon EC2 インスタンスを起動する場合に使用します。 Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI には、AWS CLI はプリインストールされていません。  | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
|  **Amazon Linux 2 (GPU)**  | Amazon ECS GPU に最適化されたカーネル 5.10 AMI | この AMI は Amazon Linux 2 に基づいており、Amazon ECS ワークロード用に Linux カーネル 5.10 で Amazon EC2 GPU ベースのインスタンスを起動する場合に使用することをお勧めします。NVIDIA カーネルドライバーと Docker GPU ランタイムが事前に構成されており、Amazon ECS で GPU を利用する実行中のワークロードになります。詳細については、「[GPU ワークロード向けの Amazon ECS タスク定義](ecs-gpu.md)」を参照してください。 | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2 (GPU) | Amazon ECS GPU に最適化された AMI | この AMI は Amazon Linux 2 に基づいており、Amazon ECS ワークロード用に Linux カーネル 4.14 で Amazon EC2 GPU ベースのインスタンスを起動する場合に使用することをお勧めします。NVIDIA カーネルドライバーと Docker GPU ランタイムが事前に構成されており、Amazon ECS で GPU を利用する実行中のワークロードになります。詳細については、「[GPU ワークロード向けの Amazon ECS タスク定義](ecs-gpu.md)」を参照してください。 | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2 (Neuron)  | Amazon ECS に最適化された Amazon Linux 2 (Neuron) カーネル 5.10 AMI  | これは Amazon Linux 2 をベースにした、Amazon EC2 Inf1、Trn1、または Inf2 インスタンス用の AMI です。Linux カーネル 5.10 搭載 AWS Inferentia および AWS Trainium ドライバーと Docker 用の AWS Neuron ランタイムが事前設定されており、Amazon ECS での機械学習推論ワークロードの実行が容易になります。詳細については、「[AWS Neuron 機械学習ワークロードでの Amazon ECS タスク定義](ecs-inference.md)」を参照してください。Amazon ECS 最適化 Amazon Linux 2 (Neuron) AMI には、AWS CLI はプリインストールされていません。 | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 
| Amazon Linux 2 (Neuron)  | Amazon ECS 最適化 Amazon Linux 2 (Neuron) AMI | これは Amazon Linux 2 をベースにした、Amazon EC2 Inf1、Trn1、または Inf2 インスタンス用の AMI です。AWS Inferentia および AWS Trainium ドライバーと Docker 用の AWS Neuron ランタイムが事前設定されており、Amazon ECS での機械学習推論ワークロードの実行が容易になります。詳細については、「[AWS Neuron 機械学習ワークロードでの Amazon ECS タスク定義](ecs-inference.md)」を参照してください。Amazon ECS 最適化 Amazon Linux 2 (Neuron) AMI には、AWS CLI はプリインストールされていません。 | デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI（Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI）には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。Amazon ECS に最適化された Amazon Linux 2 AMI のデフォルトファイルシステムは`xfs`を使用しており、Dockerは `overlay2` ストレージドライバーを使用しています。詳細については、Docker ドキュメントの「[OverlayFS ストレージドライバーを使用する](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/)」を参照してください。 | 

Amazon ECS は、GitHub で Amazon ECS を使用して最適化した AMI の Linux バリアントの変更ログを提供します。詳細については、「[Changelog](https://github.com/aws/amazon-ecs-ami/blob/main/CHANGELOG.md)」を参照してください。

Amazon ECS 最適化 AMI の Linux バリエーションは、Amazon Linux 2 AMI または Amazon Linux 2023 AMI をベースとして使用します。Systems Manager Parameter Store API をクエリすることで、各バリアントの AMI 名を取得できます。詳細については、「[Amazon ECS に最適化された Linux AMI メタデータを取得する](retrieve-ecs-optimized_AMI.md)」を参照してください。Amazon Linux 2 AMI リリースノートも公開されています。詳細については、「[Amazon Linux 2 リリースノート](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)」を参照してください。Amazon Linux 2023 リリースノートも公開されています。詳細については、「[Amazon Linux 2023 リリースノート](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html)」を参照してください。

次のページでは、変更に関する追加情報を説明します。
+ GitHub の[ソース AMI リリース](https://github.com/aws/amazon-ecs-ami/releases)ノート
+ Docker ドキュメントの「[Docker Engine リリースノート](https://docs.docker.com/engine/release-notes/)」
+ NVIDIA ドキュメントの「[NVIDIA ドライバードキュメント](https://docs.nvidia.com/datacenter/tesla/index.html)」
+ GitHub での [Amazon ECS エージェントの変更ログ](https://github.com/aws/amazon-ecs-agent/blob/master/CHANGELOG.md)

  `ecs-init` アプリケーションのソースコード、エージェントをパッケージ化するためのスクリプトと構成は、エージェントリポジトリの一部になりました。`ecs-init` の古いバージョンおよびパッケージについては、GitHub で「[Amazon ecs-init の変更ログ](https://github.com/aws/amazon-ecs-init/blob/master/CHANGELOG.md)」を参照してください。

## Amazon ECS に最適化された AMI へのセキュリティ更新の適用
<a name="ecs-optimized-AMI-security-changes"></a>

Amazon Linux に基づく Amazon ECS に最適化された AMI には、cloud-init のカスタマイズされたバージョンが含まれています。Cloud-init は、Linux イメージをクラウドコンピューティング環境でブートストラップし、インスタンスの起動時に必要なアクションを実行するために使用されるパッケージです。デフォルトで、2024 年 6 月 12 日より前にリリースされた Amazon Linux に基づくすべての Amazon ECS に最適化された AMI では、インスタンスの起動時にすべての「重大」および「重要」なセキュリティ更新が適用されます。

2024 年 6 月 12 日のリリース以降、Amazon Linux 2 に基づく Amazon ECS に最適化された AMI の デフォルトの動作には、起動時のパッケージの更新が含まれなくなります。代わりに、リリースが利用可能になりしだい、Amazon ECS に最適化された新しい AMI に更新することをお勧めします。Amazon ECS に最適化された AMI は、利用可能なセキュリティ更新またはベース AMI の変更があったときにリリースされます。この結果、最新のパッケージバージョンとセキュリティ更新が確実に適用され、パッケージバージョンはインスタンスの起動を通じて不変です。Amazon ECS に最適化された最新の AMI の取得方法の詳細については、「[Amazon ECS に最適化された Linux AMI メタデータを取得する](retrieve-ecs-optimized_AMI.md)」を参照してください。

新しい AMI が利用可能になりしだい更新するように環境を自動化することをお勧めします。利用可能なオプションの詳細については、「[Amazon ECS のマネージドインスタンスドレインにより Amazon EC2 キャパシティの管理が容易に](https://aws.amazon.com/blogs/containers/amazon-ecs-enables-easier-ec2-capacity-management-with-managed-instance-draining/)」を参照してください。

特定の AMI バージョンに「重大」および「重要」のセキュリティ更新を引き続き手動で適用する場合は、Amazon EC2 インスタンスで次のコマンドを実行します。

```
yum update --security
```

**警告**  
 Docker または containerd パッケージを更新すると、ホストで実行中のすべてのコンテナが停止するため、実行中のすべての Amazon ECS タスクも停止されることになります。サービスの中断を最小限に抑えるため、適切に計画してください。

起動時にセキュリティ更新を再度有効にする場合は、Amazon EC2 インスタンスの起動時に cloud-init ユーザーデータの `#cloud-config` セクションに次の行を追加できます。詳細については、「*Amazon Linux ユーザーガイド*」の「[Amazon Linux 2 で cloud–init を使用する](https://docs.aws.amazon.com/linux/al2/ug/amazon-linux-cloud-init.html)」を参照してください。

```
#cloud-config
repo_upgrade: security
```

## Amazon ECS 最適化 AL2023 GPU AMI のバージョンロックパッケージ
<a name="ecs-optimized-ami-version-locked-packages"></a>

Amazon ECS 最適化 AL2023 GPU AMI で GPU 機能の正確かつ高性能な動作を確保するには、特定のパッケージが不可欠です。具体的には次のとおりです。
+ NVIDIA ドライバー (`nvidia*`)
+ カーネルモジュール (`kmod*`)
+ NVIDIA ライブラリ (`libnvidia*`)
+ カーネルパッケージ (`kernel*`)

**注記**  
これは網羅的なリストではありません。ロックされたパッケージの完全なリストは、`dnf versionlock list` を使用することで入手できます。

これらのパッケージは、安定性を確保し、GPU ワークロードを中断する可能性のある意図しない変更を防ぐためにバージョンロックされています。このため、これらのパッケージの変更は、潜在的な問題を適切に処理し、GPU の機能性を維持するマネージドプロセスの範囲内で行う必要があるのが一般的です。

意図しない変更を防ぐため、これらのパッケージには `dnf versionlock` プラグインが使用されています。

ロックされたパッケージを変更したい場合は、以下を実行できます。

```
# unlock a single package
sudo dnf versionlock delete $PACKAGE_NAME

# unlock all packages
sudo dnf versionlock clear
```

**重要**  
これらのパッケージを更新する必要があるお客様は、必要な更新が含まれる最新の AMI バージョンの使用を検討するようにしてください。既存のインスタンスを更新する必要がある場合は、パッケージのロック解除、更新、再ロックを含めた慎重なアプローチを用いることで、プロセスの全体を通じて GPU の機能性を常に確保するようにしてください。

# Amazon ECS に最適化された Linux AMI メタデータを取得する
<a name="retrieve-ecs-optimized_AMI"></a>

Amazon ECS に最適化された AMI のメタデータをプログラムで取得できます。メタデータには、AMI 名、Amazon ECS コンテナエージェントバージョン、Docker バージョンを含む ECS ランタイムバージョンなどが入っています。

コンソールを使用してクラスターを作成すると、Amazon ECS は選択したオペレーティングシステムに関連付けられた最新の AMI を使用してインスタンスの起動テンプレートを作成します。

CloudFormation を使用してクラスターを作成する場合、SSM パラメータは Auto Scaling グループインスタンスの Amazon EC2 起動テンプレートの一部となります。動的な Systems Manager パラメータを使用して、デプロイする Amazon ECS Optimized AMI を決定するようにテンプレートを設定できます。このパラメータにより、スタックをデプロイするたびに、EC2 インスタンスに適用する必要がある利用可能な更新があるかどうかがチェックされます。Systems Manager パラメータの使用方法の例については、「*AWS CloudFormation ユーザーガイド*」の「[Amazon ECS に最適化された Amazon Linux 2023 AMI を使用して Amazon ECS クラスターを作成する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#aws-resource-ecs-cluster--examples--Create_an_cluster_with_the_Amazon_Linux_2023_ECS-Optimized-AMI)」を参照してください。

Amazon ECS に最適化された AMI の各バリアントの AMI ID、イメージ名、オペレーティングシステム、コンテナエージェントバージョン、ソースイメージ名、ランタイムバージョンは、Systems Manager Parameter Store API にクエリすることでプログラムで取得できます。Systems Manager パラメータストア API の詳細については、「[GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html)」および「[GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html)」を参照してください。

**注記**  
Amazon ECS に最適化された AMI メタデータを取得するには、管理ユーザーに次の IAM アクセス権限が必要です。`AmazonECS_FullAccess` IAM ポリシーには、次の許可が追加されています。  
ssm:GetParameters
ssm:GetParameter
ssm:GetParametersByPath

## Systems Manager パラメータストアのパラメータフォーマット
<a name="ecs-optimized-ami-parameter-format"></a>

以下は、各 Amazon ECS に最適化された AMI バリアントのパラメータ名のフォーマットです。

**Linux Amazon ECS に最適化された AMI**
+ Amazon Linux 2023 AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2023/<version>
  ```
+ Amazon Linux 2023 (arm64) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2023/arm64/<version>
  ```
+ Amazon Linux 2023 (Neuron) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/<version>
  ```
+ Amazon Linux 2023 (GPU) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2023/gpu/<version>
  ```

  Amazon Linux 2 AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/<version>
  ```
+ Amazon Linux 2 カーネル 5.10 AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/<version>
  ```
+ Amazon Linux 2 (arm64) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/arm64/<version>
  ```
+ Amazon Linux 2 カーネル 5.10 (arm64) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/arm64/<version>
  ```
+ Amazon ECS GPU に最適化されたカーネル 5.10 AMI のメタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/gpu/<version>
  ```
+ Amazon Linux 2 (GPU) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/<version>
  ```
+ Amazon ECS に最適化された Amazon Linux 2 (Neuron) カーネル 5.10 AMI のメタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/inf/<version>
  ```
+ Amazon Linux 2 (Neuron) AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/inf/<version>
  ```

以下のパラメータ名の形式は、サブパラメータ `image_id` を使用して、推奨される最新の Amazon ECS に最適化された Amazon Linux 2 AMI のイメージ ID を取得します。

```
/aws/service/ecs/optimized-ami/amazon-linux-2/recommended/image_id
```

以下のパラメータ名の形式は、AMI 名を指定して、特定の Amazon ECS に最適化された AMI バージョンのメタデータを取得します。
+ Amazon ECS に最適化された Amazon Linux 2 AMI メタデータ:

  ```
  /aws/service/ecs/optimized-ami/amazon-linux-2/amzn2-ami-ecs-hvm-2.0.20181112-x86_64-ebs
  ```

**注記**  
Amazon ECS に最適化された Amazon Linux 2 AMI のすべてのバージョンを取得できます。Amazon ECS に最適化された AMI バージョン `amzn-ami-2017.09.l-amazon-ecs-optimized` (Linux) 以降のみ取得できます。

## 例
<a name="ecs-optimized-ami-parameter-examples"></a>

以下の例は、それぞれの Amazon ECS に最適化された AMI バリアントのメタデータを取得する方法を示しています。

### 推奨される最新の Amazon ECS に最適化された AMI メタデータを取得する
<a name="ecs-optimized-ami-parameter-examples-1"></a>

推奨される最新の Amazon ECS に最適化された AMI を取得するには、AWS CLI で次の AWS CLI コマンドを使用します。

**Linux Amazon ECS に最適化された AMI**
+ **Amazon ECS 最適化 Amazon Linux 2023 AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/recommended --region us-east-1
  ```
+ **Amazon ECS 最適化 Amazon Linux 2023 (arm64) AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/arm64/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2023 (Neuron) AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2023 GPU AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/gpu/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2 AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 (arm64) AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/arm64/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/arm64/recommended --region us-east-1
  ```
+ **Amazon ECS GPU に最適化されたカーネル 5.10 AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/gpu/recommended --region us-east-1
  ```
+ **Amazon ECS GPU に最適化された AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --region us-east-1
  ```
+ **Amazon ECS に最適化された Amazon Linux 2 (Neuron) カーネル 5.10 AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/inf/recommended --region us-east-1
  ```
+ **Amazon ECS 最適化 Amazon Linux 2 (Neuron) AMI の場合:**

  ```
  aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/inf/recommended --region us-east-1
  ```

### 推奨される最新の Amazon ECS に最適化された Amazon Linux 2023 AMI のイメージ ID を取得する
<a name="ecs-optimized-ami-parameter-examples-6"></a>

推奨される最新の Amazon ECS に最適化された Amazon Linux 2023 AMI ID のイメージ ID を取得するには、サブパラメータ `image_id` を使用します。

```
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id --region us-east-1
```

`image_id` 値のみを取得するには、特定のパラメータ値のみのクエリを行うことができます。次に例を示します。

```
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id --region us-east-1 --query "Parameters[0].Value"
```

### Amazon ECS に最適化された特定の Amazon Linux 2 AMI バージョンのメタデータを取得する
<a name="ecs-optimized-ami-parameter-examples-2"></a>

Amazon ECS に最適化された特定の Amazon Linux AMI バージョンのメタデータを取得するには、AWS CLI で次の AWS CLI コマンドを使用します。AMI 名を、Amazon ECS に最適化された Amazon Linux AMI の名前と置き換えます。

```
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/amzn2-ami-ecs-hvm-2.0.20200928-x86_64-ebs --region us-east-1
```

### Systems Manager の GetParametersByPath API を使用した Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 AMI メタデータの取得
<a name="ecs-optimized-ami-parameter-examples-3"></a>

Systems Manager の GetParametersByPath API を使用して、Amazon ECS に最適化された Amazon Linux 2 AMI メタデータを取得します。AWS CLI で次のコマンドを使用します。

```
aws ssm get-parameters-by-path --path /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/ --region us-east-1
```

### 推奨される最新の Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 AMI のイメージ ID を取得する
<a name="ecs-optimized-ami-parameter-examples-4"></a>

サブパラメータ `image_id` を使用することで、推奨される最新の Amazon ECS に最適化された Amazon Linux 2 カーネル 5.10 AMI ID のイメージ ID を取得できます。

```
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/recommended/image_id --region us-east-1
```

`image_id` 値のみを取得するには、特定のパラメータ値のみのクエリを行うことができます。次に例を示します。

```
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/recommended/image_id --region us-east-1 --query "Parameters[0].Value"
```

### CloudFormation テンプレートの推奨される最新の Amazon ECS に最適化された AMI を使用する
<a name="ecs-optimized-ami-parameter-examples-5"></a>

Systems Manager パラメータストア名を参照することにより、CloudFormation テンプレートで推奨される最新の Amazon ECS に最適化された AMI を参照できます。

**Linux の例**

```
Parameters:kernel-5.10
  LatestECSOptimizedAMI:
    Description: AMI ID
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Default: /aws/service/ecs/optimized-ami/amazon-linux-2/kernel-5.10/recommended/image_id
```

# Amazon Linux 2 から Amazon Linux 2023 Amazon ECS 最適化 AMI への移行
<a name="al2-to-al2023-ami-transition"></a>

[Amazon Linux](https://aws.amazon.com/amazon-linux-2/faqs) に続いて、Amazon ECS は、2026 年 6 月 30 日をもって Amazon Linux 2 Amazon ECS 最適化 AMI の標準サポートを終了します。この日以降は、Amazon ECS エージェントバージョンは固定され、新しい Amazon Linux 2 Amazon ECS 最適化 AMI は、ソースとなる Amazon Linux 2 AMI が更新された場合にのみ公開されます。完全なサポート終了 (EOL) は 2026 年 6 月 30 日に発生します。その後は、ソースとなる AMI が更新されても、Amazon ECS 向けに最適化された Amazon Linux 2 AMI は公開されません。

Amazon Linux 2023 は、デフォルトで安全性を確保するアプローチを採用し、事前設定されたセキュリティポリシー、Permissive モードの SELinux、デフォルトで有効になっている IMDSv2-only モード、最適化された起動時間、セキュリティとパフォーマンスの向上を目的として改善されたパッケージ管理機能を提供します。

Amazon Linux 2 と Amazon Linux 2023 の Amazon ECS 最適化 AMI は互換性が高く、ほとんどのお客様が感じる 2 つのオペレーティングシステム間でのワークロードの変化は最小限となるか、全く感じられないでしょう。

AL2 および AL2023 間の主な相違点の詳細については、「*Amazon Linux 2023 ユーザーガイド*」の「[Amazon Linux 2 と *Amazon Linux 2023* の比較](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)」と「[AL 2023 に関するよくある質問](https://aws.amazon.com/linux/amazon-linux-2023/faqs)」を参照してください。

## 互換性に関する考慮事項
<a name="al2-to-al2023-ami-transition-compatibility"></a>

### パッケージ管理と OS の更新
<a name="al2-to-al2023-ami-transition-compatibility-package-management"></a>

Amazon Linux の以前のバージョンとは異なり、Amazon ECS 向けに最適化された Linux 2023 AMI の Amazon Linux リポジトリは特定のバージョンにロックされています。このため、不要な変更や互換性を破る変更を引き起こす可能性のあるパッケージを誤って更新することがありません。詳細については、「*Amazon Linux 2023 ユーザーガイド*」の「[Managing repositories and OS updates in Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)」を参照してください。

### Linux カーネルバージョン
<a name="al2-to-al2023-ami-transition-compatibility-kernel"></a>

Amazon Linux 2 AMI は Linux カーネル 4.14 および 5.10 をベースにしており、Amazon Linux 2023 は Linux カーネル 6.1 および 6.12 を使用しています。Amazon Linux 2023 の詳細については、「*Amazon Linux 2023 ユーザーガイド*」の「[Comparing Amazon Linux 2 and Amazon Linux 2023 kernels](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2-kernel.html)」を参照してください。

### パッケージアベイラビリティの変更
<a name="al2-to-al2023-ami-transition-compatibility-packages"></a>

Amazon Linux 2023 でのパッケージにおける重要な変更点は次のとおりです。
+ Amazon Linux 2 の一部のソースバイナリパッケージは、Amazon Linux 2023 では利用できなくなりました。詳細については、「*Amazon Linux 2023 リリースノート*」の「[Packages removed from Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/release-notes/removed.html)」を参照してください。
+ Amazon Linux がさまざまなバージョンのパッケージをサポートする方法が変更されました。Amazon Linux 2 で使用される `amazon-linux-extras` システムは、Amazon Linux 2023 には存在しません。すべてのパッケージは、単純に「コア」リポジトリから使用できます。
+ Enterprise Linux (EPEL) の追加パッケージは Amazon Linux 2023 ではサポートされません。詳細については、「*Amazon Linux 2023 ユーザーガイド*」の「[EPEL compatibility in Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/epel.html)」を参照してください。
+ 32-bit アプリケーションは Amazon Linux 2023 ではサポートされていません。詳細については、「*Amazon Linux 2023 ユーザーガイド*」の「[Deprecated features from Amazon Linux 2](https://docs.aws.amazon.com/linux/al2023/ug/deprecated-al2.html#deprecated-32bit-rpms)」を参照してください。

### コントロールグループ (cgroups) の変更点
<a name="al2-to-al2023-ami-transition-compatibility-cgroups"></a>

コントロールグループ (cgroup) は、プロセスを階層的に整理し、システムリソースをプロセス間で分散するための Linux カーネルの機能です。コントロールグループは、コンテナランタイムの実装や、さまざまな用途に `systemd` によって使用されています。

Amazon ECS エージェント、Docker、および containerd はすべて cgroupv1 と cgroupv2 の両方をサポートしています。Amazon ECS エージェントとコンテナランタイムが cgroup を管理するため、Amazon ECS のお客様は、この基盤となる cgroup アップグレードに変更を加える必要はありません。

cgroupv2 の詳細については、「*Amazon Linux 2023 ユーザーガイド*」の「[Control groups v2 in Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/cgroupv2.html)」を参照してください。

### インスタンスメタデータサービス (IMDS) の変更点
<a name="al2-to-al2023-ami-transition-compatibility-imds"></a>

Amazon Linux 2023 では、デフォルトではインスタンスメタデータサービスのバージョン 2 (IMDSv2) が必要になります。IMDSv2 には、セキュリティ体制の改善に役立ついくつかの利点があります。セッション指向の認証方式を使用しており、セッションを開始するためにシンプルな HTTP PUT リクエストでシークレットトークンを作成する必要があります。セッショントークンの有効期間は 1 秒～ 6 時間です。

IMDSv1 から IMDSv2 への移行の詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスメタデータサービスバージョン 2 の使用への移行](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-transition-to-version-2.html)」を参照してください。

IMDSv1 を使用する場合は、インスタンスのメタデータオプションの起動プロパティで設定を手動で上書きすることで使用可能になります。

### メモリスワップの変更点
<a name="al2-to-al2023-ami-transition-compatibility-memory-swappiness"></a>

コンテナごとのメモリスワップは、Amazon Linux 2023 および cgroups v2 ではサポートされていません。詳細については、「[Amazon ECS のコンテナスワップメモリ空間の管理](container-swap.md)」を参照してください。

### FIPS 検証の変更点
<a name="al2-to-al2023-ami-transition-compatibility-fips"></a>

Amazon Linux 2 は FIPS 140-2 に基づいて認定されており、Amazon Linux 2023 は FIPS 140-3 に基づいて認定されています。

Amazon Linux 2023 で FIPS モードを有効にするには、Amazon EC2 インスタンスに必要なパッケージをインストールし、「*Amazon Linux 2023 ユーザーガイド*」の「[Enable FIPS Mode on Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/fips-mode.html)」に記載された手順に従って設定を行います。

### インスタンスのサポートの高速化
<a name="al2-to-al2023-ami-transition-compatibility-accelerated"></a>

Amazon ECS 向けに最適化された Amazon Linux 2023 AMI は、Neuron と GPU の両方の高速化インスタンスタイプをサポートしています。詳細については、「[Amazon ECS に最適化された Linux AMI](ecs-optimized_AMI.md)」を参照してください。

## カスタム AMI の構築
<a name="al2-to-al2023-ami-transition-custom-ami"></a>

Amazon Linux 2023 では、正式にサポートおよび公開されている Amazon ECS 最適化 AMI に移行することをお勧めしますが、Amazon ECS 最適化 AMI の Linux バリアントの構築に使用されているオープンソースのビルドスクリプトを使用することで、引き続きカスタム Amazon Linux 2 Amazon ECS 最適化 AMI を構築できます。詳細については、「[Amazon ECS 最適化 Linux AMI のビルドスクリプト](ecs-ami-build-scripts.md)」を参照してください。

## 移行戦略
<a name="al2-to-al2023-ami-transition-migration"></a>

徹底的なアプリケーションテストを含む移行計画を作成して実装することをお勧めします。以下のセクションでは、Amazon ECS インフラストラクチャの管理方法に基づくさまざまな移行戦略についての概要を説明します。

### Amazon ECS キャパシティプロバイダーを利用した移行
<a name="al2-to-al2023-ami-transition-migration-capacity-providers"></a>

1. 新しい起動テンプレートを使用して、新しいキャパシティプロバイダーを作成します。これは、既存の起動テンプレートと類似した起動テンプレートを持つ Auto Scaling グループを参照する必要がありますが、Amazon Linux 2 Amazon ECS 最適化 AMI ではなく、Amazon Linux 2023 バリアントのいずれかを指定する必要があります。この新しいキャパシティプロバイダーを既存の Amazon ECS クラスターに追加します。

1. クラスターのデフォルトのキャパシティプロバイダー戦略を更新して、既存の Amazon Linux 2 キャパシティプロバイダーと新しい Amazon Linux 2023 キャパシティプロバイダーの両方が含まれるようにします。Amazon Linux 2 プロバイダーの重みを大きく、Amazon Linux 2023 プロバイダーの重みを小さく設定します (Amazon Linux 2: 重み 80、Amazon Linux 2023: 重み 20 など)。これにより、新しいタスクがスケジュールされると、Amazon ECS は Amazon Linux 2023 インスタンスのプロビジョニングを開始します。インスタンスが正しく登録されていること、タスクが新しいインスタンスで正常に実行できることを確認します。

1. クラスターのデフォルト戦略におけるキャパシティプロバイダーの重みを徐々に調整し、Amazon Linux 2023 プロバイダーの重みを増加させつつ、Amazon Linux 2 プロバイダーの重みを時間の経過とともに減らします (例: 60/40、40/60、20/80)。個々のサービスプロバイダー戦略を更新して、Amazon Linux 2023 インスタンスを優先させることもできます。タスクの配置を監視して、Amazon Linux 2023 インスタンスで正常に実行されていることを確認します。

1. 必要に応じて Amazon Linux 2 コンテナインスタンスをドレインして、タスクの移行を高速化します。Amazon Linux 2023 に置き換える十分な容量がある場合は、Amazon ECS コンソールまたは AWS CLI を使用して Amazon Linux 2 コンテナインスタンスを手動でドレインすることで、Amazon Linux 2 から Amazon Linux 2023 へのタスクの移行を高速化できます。移行が完了したら、クラスターから Amazon Linux 2 キャパシティプロバイダーを削除し、関連する Auto Scaling グループを削除します。

### Amazon EC2 Auto Scaling グループを使用した移行
<a name="al2-to-al2023-ami-transition-migration-asg"></a>

1. 新しい起動テンプレートを使用して、新しい Amazon EC2 Auto Scaling グループを作成します。これは既存の起動テンプレートと類似しているはずですが、Amazon Linux 2 Amazon ECS 最適化 AMI の代わりに、Amazon Linux 2023 バリアントのいずれかを指定する必要があります。この新しい Auto Scaling グループは、既存のクラスターにインスタンスを起動できます。

1. Auto Scaling グループをスケールアップして、Amazon Linux 2023 インスタンスがクラスターに登録されるようにします。インスタンスが正しく登録されていること、タスクが新しいインスタンスで正常に実行できることを確認します。

1. タスクが Amazon Linux 2023 で動作することを検証したら、Amazon Linux 2023 Auto Scaling グループをスケールアップしつつ、Amazon Linux 2 Auto Scaling グループを徐々にスケールダウンし、すべての Amazon Linux 2 インスタンスが完全に置き換えられるまで継続します。

1. Amazon Linux 2023 に置き換える十分な容量がある場合は、コンテナインスタンスを明示的にドレインすることで、Amazon Linux 2 から Amazon Linux 2023 へのタスクの移行を高速化できます。詳細については、「[Amazon ECS コンテナインスタンスをドレインする](container-instance-draining.md)」を参照してください。

### 手動マネージドインスタンスを使用した移行
<a name="al2-to-al2023-ami-transition-migration-manual"></a>

1. Amazon Linux 2 の代わりに Amazon ECS に最適化された Amazon Linux 2023 AMI を使用して、新しい Amazon EC2 インスタンスを手動で起動 (または起動するスクリプトを調整) します。これらのインスタンスが既存の Amazon Linux 2 インスタンスと同じセキュリティグループ、サブネット、IAM ロール、クラスター設定を使用していることを確認します。インスタンスは、起動時に既存の Amazon ECS クラスターに自動的に登録される必要があります。

1. 新しい Amazon Linux 2023 インスタンスが Amazon ECS クラスターに正常に登録され、`ACTIVE` 状態であることを確認します。自然にタスクが配置されるのを待つか、一部のタスクを手動で停止/開始してスケジュール変更を開始することで、これらの新しいインスタンスでタスクを適切にスケジュールして実行できることをテストします。

1. 必要に応じて追加の Amazon Linux 2023 インスタンスを起動し、Amazon Linux 2 インスタンスを手動でドレインして 1 つずつ終了することで、Amazon Linux 2 インスタンスを段階的に置き換えます。インスタンスを `DRAINING` ステータスに設定することで、Amazon ECS コンソールからインスタンスをドレインできます。これにより、インスタンスへの新しいタスクの配置が停止し、既存のタスクの終了や別の場所への再スケジュールが可能になります。

# Amazon ECS 最適化 Linux AMI のビルドスクリプト
<a name="ecs-ami-build-scripts"></a>

Amazon ECS は、Amazon ECS に最適化された AMI の Linux バリアントの構築に使用するビルドスクリプトをオープンソース化しました。これらのビルドスクリプトは、現在 GitHub で入手できます。詳細については、GitHub の「[amazon-ecs-ami](https://github.com/aws/amazon-ecs-ami)」を参照してください。

Amazon ECS に最適化された AMI をカスタマイズする必要がある場合は、GitHub の「[Amazon ECS Optimized AMI Build Recipies](https://github.com/aws/amazon-ecs-ami)」を参照してください。

ビルドスクリプトレポジトリには、[HashiCorp Packer](https://developer.hashicorp.com/packer/docs) テンプレートと、Amazon ECS に最適化された AMI の各 Linux バリアントを生成するためのビルドスクリプトが含まれています。ここに置かれているものは、Amazon ECS 最適化 AMI のビルド用として最も信頼できるソーススクリプトであるため、GitHub リポジトリの状態をフォローすることで、AMI に対し実施された変更をモニタリングできます。例えば、独自の AMI で、Amazon ECS チームが正式な AMI に使用するのと同じバージョンの Docker を使用できます。

詳細については、GitHub の Amazon ECS AMI リポジトリにある「[aws/amazon-ecs-ami](https://github.com/aws/amazon-ecs-ami)」を参照してください。

**Amazon ECS に最適化された Linux AMI を構築するには**

1. `aws/amazon-ecs-ami` GitHub リポジトリのクローンを作成する

   ```
   git clone https://github.com/aws/amazon-ecs-ami.git
   ```

1. AMI の作成時に使用する AWS リージョンの環境変数を追加します。`us-west-2` 値を使用するリージョンに置き換えます。

   ```
   export REGION=us-west-2
   ```

1. AMI を構築するための Makefile が提供されます。クローンされたリポジトリのルートディレクトリから、構築する Amazon ECS 最適化 AMI の Linux バリアントに対応する次のコマンドのいずれかを使用します。
   + Amazon ECS に最適化された Amazon Linux 2 AMI

     ```
     make al2
     ```
   + Amazon ECS に最適化された Amazon Linux 2(arm64) AMI

     ```
     make al2arm
     ```
   + Amazon ECS GPU に最適化された AMI

     ```
     make al2gpu
     ```
   + Amazon ECS 最適化 Amazon Linux 2 (Neuron) AMI

     ```
     make al2inf
     ```
   + Amazon ECS 最適化 Amazon Linux 2023 AMI

     ```
     make al2023
     ```
   + Amazon ECS 最適化 Amazon Linux 2023 (arm64) AMI

     ```
     make al2023arm
     ```
   + Amazon ECS 最適化 Amazon Linux 2023 GPU AMI

     ```
     make al2023gpu
     ```
   + Amazon ECS 最適化 Amazon Linux 2023 (Neuron) AMI

     ```
     make al2023neu
     ```