📈
AWS EC2のOSを更新する2つの方法(AL 2→AL 2023 へアップデート)
こんにちは、とがりです。
普段はセキュリティ系の企業でセキュリティアーキテクトをしています。
本記事では、AWS EC2のOSをAmazon Linux 2からAmazon Linux 2023に変更する2つの方法と、それぞれの方法のユースケースをまとめます。
想定ユースケース
現在、EC2(Amazon Linux 2)を利用している。
脆弱性の頻発していたり、サポート終了が近づいてきたので、Amazon Linux 2023への移行したい。
(ほぼ)ゼロダウンタイムでアップデートする必要がある。
ストレージとしては、EBSを利用している。
2つの方法
1 新規インスタンス(AL2023)にデータや通信を移行する
既存のインスタンスをEC2(AL2)、新規のインスタンスをEC2(AL2023)とします。
手順
- EC2(AL2023)を作成する
- EC2(AL2023)でアプリケーションが正常に動作するするように設定する
- EC2(AL2)のデータをEC2(AL2023)にコピーする
- 通信をEC2(AL2)からEC2(AL2023)に変更する
- EIPを付け替える
- LBのターゲットを変更する
手順がまとめられた参考記事
2 実行中のインスタンスのルートEBSボリュームを置き換える
実行中のインスタンスをEC2(AL2)、新規のインスタンスをEC2(NEW)とします。
手順
- EC2(AL2023)のAMI(AL2)を作成する
- AMI(AL2)からEC2(NEW)【AL2】を起動する
- EC2(NEW)【AL2】のOSをAL2023に更新する
- EC2(NEW)【AL2023】のAMI(AL2023)を作成する
- 実行中のインスタンスEC2(AL2)のルートEBSボリュームを置き換える
手順がまとめられた参考記事
他の方法
今回あげた2つの方法以外にも、他の方法があります。
例えば、
- 複数のEC2を作成し、1台ずつローリングアップデートする。
- メンテナンスウィンドウなどを設けて、ダウンタイムを許容する。
2つの方法のユースケース
2つの方法を評価して、それぞれの方法で適したユースケースをまとめます。
1 新規インスタンス(AL2023)にデータや通信を移行する | 2 実行中のインスタンスのルートEBSボリュームを置き換える | |
---|---|---|
ダウンタイム | なし | あり |
AWSデフォルトの更新機能 | No | Yes |
AWS推奨 | AWSのTAM(テクニカルアカウントマネージャー)より、推奨とのこと | No |
制約 | 少ない | 多い |
ルートEBSボリュームを置き換える方法は、CPU アーキテクチャやEBSボリュームタイプが異なると移行できないことや、OSの変更により廃止される機能など考慮事項も増てしまい、動作の保証ができないという点から新規インスタンス(AL2023)を起動して移行いただく方法がおすすめです。
参考:
一方で、なるべくAWS公式で用意されている機能を使いたい場合や、EC2のインスタンスIDを変えたくない場合は既存インスタンスのルートEBSボリュームを置き換える方法が適していると思われます。
最後までお読みいただき、ありがとうございました。
Discussion