AWS マネジメントコンソールで Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスが使用する Amazon マシンイメージ (AMI) を選択できなくなりました。AMI の [詳細] タブを見ると、「ami-xxxxxx の詳細をロードできません。閲覧が許可されていない可能性があります」と表示されます。
公開されていない AMI の説明を取得する方法を教えてください。
または
AWS CloudFormation テンプレートで特定の AMI ID を参照します。アマゾン ウェブ サービス (AWS) は、Microsoft のパッチ適用後 5 営業日以内に、定期的に更新を行い、完全にパッチが適用された Windows AMI を提供します。 これにより、古いテンプレートスタックの破損、または定期的に更新する必要があるテンプレートなどの問題が発生します。なぜこれが起こっているのですか? この問題を防ぐにはどうすればよいですか?
簡単な説明
EC2 Windows インスタンスが使用する AMI は公開されなくなりました。
AWS は、Windows プラットフォーム専用に設定された、公開されている AMI を提供します。各リリースの AMI には新しい AMI ID があります。新しい AMI リリースから 10 日以内に、3 か月を超える AMI は非公開になります。
これは、カスタム AMI の登録が解除された場合にも発生します。詳細については、「パッチ、セキュリティ更新、および AMI ID」を参照してください。
注: 同じ AMI からインスタンスを起動する必要がある場合は、インスタンスから新しい AMI を作成する必要があります。
解決方法
公開されなくなった AMI ID の説明を取得する
最初に、レジストリから AMI の名前を見つけます。次に、PowerShell を使用して、同じ名前の最新の AMI を見つけます。次の手順を実行します:
注: これらの手順は、Amazon が提供する AMI を使用する場合にのみ適用されます。
1. Amazon EC2 コンソールから、ナビゲーションペインで [インスタンス] を選択します。使用できなくなった AMI を使って起動したインスタンスを選択します。
2. インスタンスに接続します。
3. 次のレジストリの場所を確認して、AMI 名を確認します。
$AMIName=(Get-Itemproperty HKLM:\SOFTWARE\Amazon\MachineImage).AMIName
$AMIName
注意: HKLM:\SOFTWARE\Amazon\MachineImage レジストリの場所には、インスタンスの起動時に AMI の名前と日付が刻印されています。
4. Get-SSMLatestEC2Image PowerShell command を実行して、すべてのパブリック AMI を名前でリストします。結果を絞り込むには、次のコマンドを実行します。
Get-SSMLatestEC2Image -ImageName $AMIName -Path ami-windows-latest | %{ write-host $AMIName, $_}
注: この例では、AWS リージョンの最新の AMI ID と OS バージョンを一覧表示します。
この AMI は、最新の Microsoft ソフトウェアの更新と AWS によるパフォーマンスの改善を除き、古いものと同じです。最新の AMI を使用して新しいインスタンスを起動するのがベストプラクティスです。
定期的な変更の通知を受け取るには、Windows AMI 通知をサブスクライブできます。
AMI ID は CloudFormation テンプレートまたは IaaS プラットフォームにハードコードされている
AMI ID ではなく、名前または説明で最新の AWS Windows AMI を検索するスクリプトを作成することをお勧めします。AMI ID は、リリースごとに変更される場合があります。
詳細については、「パッチ、セキュリティ更新、および AMI ID」を参照してください。
ビルドパイプラインの中断を避けるために、AWS が公開した最新の AMI を、要件に一致するパブリックパラメータストアにプログラムで取得できます。詳細については、「パブリックパラメータの操作」を参照してください。
独自の AMI を作成して、AMI のライフサイクルと更新をより詳細に制御することもできます。
AMI を使用したインスタンスからイメージを作成するには、次の手順に従います。
1. インスタンスを停止します。
2. Amazon EC2 コンソールから、ナビゲーションペインで [インスタンス] を選択します。
3. インスタンスを選択します。[Actions] では、[Image]、[Create Image] を選択します。
[Image name] には名前を入力します。
(オプション) [Image description] には説明を入力します。
[Create Image] を選択します。
4. 重要: 手順 3 は、サーバー名と管理者パスワードを含む、インスタンスの正確なイメージを作成します。競合を防ぐには、新しいイメージに基づいて新しいインスタンスを作成します。必要なカスタマイズを適用し、一般化のプロセスを実行して健全な AMI を作成します。手順については、「Sysprep を使用してカスタムの再利用可能な Windows AMI を作成およびインストールする方法を教えてください」を参照してください。
5. これで、手順 4 で作成したイメージを使用して、インスタンスを起動できるようになりました。
関連情報
AWS Windows AMI