はじめに
先日、「AWSのハンズオン資料に沿ってEC2インスタンスを起動しようとしたが、指定されたAmazon Linux 2のAMIが管理コンソールに表示されない」という問い合わせがありました。
調査の結果、これはAWSのパブリックAMIの仕様によるものであることが判明しました。今回はその原因と対処法について解説します。
原因:公開から2年経過したAMIの「非推奨」ステータス
原因はAWSが提供するパブリックAMIが、公開から2年経過すると「非推奨 (deprecated)」状態になる仕様のためでした。
AWS は定期的にパブリック AMI を廃止し、最新のセキュリティアップデートとソフトウェアバージョンを適用した最新のイメージの使用を促します。ただし、非推奨 AMI を使用してインスタンスを起動することはできます。次のベストプラクティスを実施し、非推奨 AMI を特定して回避してください。
すべてのパブリック AMI を非推奨にする日をデフォルトで AMI 作成日の 2 年後とします。
これは、ユーザーに常に最新のセキュリティアップデートが適用されたイメージを使用してもらうことを目的とした措置です。
重要なポイントは、非推奨になったAMIは管理コンソールのAMI選択画面からは表示されなくなりますが、AMI自体が削除されたわけではない(非公開ではない)という点です。そのため、API経由などでAMI IDを直接指定すれば、インスタンスを起動すること自体は可能です。
今回の問い合わせで指定されていたAMIは2023年4月に公開されたもので、2025年4月に非推奨となっていました。チュートリアルなどで古いAMIが指定されている場合、同様の事象が発生する可能性があります。
対処法
この事象に遭遇した場合、以下のいずれかの方法で対応することが推奨されています。
1. より新しいAMIを利用する
基本的には、利用可能な最新のAMIを選択することがベストプラクティスです。
今回のケースでは、管理コンソールのインスタンス起動画面で 元のAMI名に近いキーワードで検索し、コミュニティAMI欄などから2年以内に公開された新しいバージョンのAmazon Linux 2 AMIを使用することが代替案として挙げられました。
2. AMI IDを直接指定して起動する
チュートリアルの内容を厳密に再現したいなど、どうしても特定の非推奨AMIを利用する必要がある場合は、AWS CLIやSDK(RunInstances
API)からAMI IDを直接指定してインスタンスを作成します。
まとめ
- AWS提供のパブリックAMIは、公開から2年が経過すると「非推奨」となり、管理コンソールに表示されなくなる。
- 非推奨になったAMIも、APIなどでIDを直接指定すれば起動は可能。
- 古いチュートリアルなどを参照する場合は、AMIが非推奨になっている可能性があるため、新しいAMIを利用することを検討する。
インスタンスを起動する際は、特別な理由がない限り、常に最新のAMIを使用することを心がけましょう。