みなさん、こんばんは。サニービュー事業部の小寺です。
Amazon EC2で更新されたAMIを使ったインスタンスのルートボリュームの置き換えがサポートされるようになりました。
インスタンスの停止不要で、置き換え可能になっています!

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/amazon-ec2-enables-patching-guest-operating-system-application-replace-root-volume/

本アップデートのメリット

AMIを使ったインスタンスのルートボリュームが置き換えできることで、以下のメリットがあります。
インスタンスストアのデータ、ネットワーキング、IAM 設定は変わることなく、アプリケーションとゲストオペレーティングシステムを簡単に更新できるようになります。
パッチ適用の頻度を上げてセキュリティを担保するなどのメリットがあります。

そもそもルートボリュームの置き換えって?

ルートボリュームを置き換えるってどんなときかイメージつきますか。障害対応?トラブルで起動できなくなった?やっぱりバックアップから戻したいときでしょうか。
ボリュームの置き換えだけでもいくつかパターンがあります。

・新しくボリュームが置き換えされて、初期化状態
・スナップショットからリストア:あらかじめ取得しておいた特定時点のスナップショットからリストア
・AMIを使った置き換え:自己所有しているAMIから置き換え

ルートボリュームを置き換えるときの注意事項

・EC2インスタンスは実行中(running)である必要あり
・インスタンスはプロセス中に自動的に再起動されます。メモリ (RAM) の内容は、再起動中に消去されるようになっています。手動での再起動は不要
・インスタンスストアボリュームの場合、ルート ボリュームを置き換えることはできません。 Amazon EBSのルートボリュームのみが対象
・すべての仮想化インスタンス タイプと Amazon EC2 Mac メタル インスタンスのみのルート ボリュームを置き換えることができる
それ以外のメタルインスタンスはサポート対象外
・インスタンスの以前のルート ボリュームと同じインスタンスタイプの任意のスナップショットが利用できる

AMIからルートボリューム置き換えるときの注意事項

・複数のブロック デバイス マッピングを持つ AMI を使用する場合、AMI のルート ボリュームのみが使用されます。他のルートボリューム以外は置き換え対象ではないです。
・AMIに起動権限がある場合のみ使えます。アクセス権が必要。
・インスタンスに製品コードがない場合にのみ、製品コードなしで AMI を使用できます。
・暗号化の設定更新は不可。元のルート ボリュームが暗号化されている場合、新しいルート ボリュームは暗号化されます。
元のルート ボリュームが暗号化されておらず、ルート ボリューム用に選択された AMI のブロック デバイス マッピングが暗号化されている場合、新しいルート ボリュームは暗号化されます。元のルート ボリュームと、ルート ボリューム用に選択された AM のブロック デバイス マッピングが暗号化されていない場合、新しいルート ボリュームは暗号化されていません。
・製品コードなしの AMI を置き換えソースに指定できるのはインスタンスが製品コードを持たない場合のみ
・インスタンスがNA、または sriov-netなど有効化している際に、該当機能をサポートするAMIを使う必要があります

今回のアップデートAMIを使ったインスタンスのルートボリューム置き換えを試してみた

前提条件として、公式のAMIからインスタンスをまず作成します。
その後、新しいAMIをソースとしてルートボリュームを置き替えします。

(1)新規にインスタンスを公式AMIから作成します。今回はAmazon Linux2のKernel4で作成することにしました。

(2) AMI名は「 amzn2-ami-hvm-2.0.20221004.0-x86_64-gp2 」です。

(3)次にルートボリュームの置き換えを行います。 ストレージの詳細画面から選択するかインスタンスを選んだ状態で、「アクション」→「モニタリングとトラブルシューティング」 をクリックします。

(4)置き換え先として準備しておいたAMI「 ami-09d3b3274b6c5d4aa 」を入力して「置き換えタスクを作成」をクリックします。

(5)置き換えタスクの正常終了を確認します。

(6)早速結果を確認します。AMI名とAMIの変更を確認します。

【AMI変更前】 amzn2-ami-hvm-2.0.20221004.0-x86_64-gp2

【AMI変更後】 amzn2-ami-kernel-5.10-hvm-2.0.20221004.0-x86_64-gp2

(7)ルートボリュームの置き換えについても確認してみます。タスクの実行時間はボリューム容量が8GBなのもあり30秒程度で完了していました。

サポート対象のリージョン

すべてのパブリック AWS リージョンと AWS GovCloud (米国) リージョンでご利用可能です。

まとめ

Amazon EC2で更新されたAMIを使ったインスタンスのルートボリュームの置き換えがサポートされるようになりました。 停止せず作業できるのは良いですよね。今までのスナップショットからリストアやAMIからの戻しはどちらかというと障害対応というイメージがありました。今回のアップデートではセキュリティパッチ適用時などということで、よりセキュリティにフォーカスした内容だと感じました。