【アップデート】Amazon EC2を停止することなく、OSとアプリケーションのパッチを適用できるようになりました!

AWS

2022.11.22

Topics

こんにちは、yasujunです。
今回は、EC2のアップデートが実施されました。
内容としては、インスタンスを停止させずに、パッチを更新したAMIをインスタンスのルートボリュームに置き換えることができるようになります。
https://aws.amazon.com/jp/about-aws/whats-new/2022/10/amazon-ec2-enables-patching-guest-operating-system-application-replace-root-volume/

EC2はよく利用するサービスなだけにできることが増えるのは嬉しいです。

このアップデート内容は何ができるようになるのか

インスタンスストアのデータ、ネットワーク、IAM構成を保持しながら、OSとアプリケーションを更新することができるようになります。
アプリケーションがステートフル機能を利用していて、クライアントのセッションを保ちながら通信するようなものだった場合に、インスタンスストアのデータのバックアップを取らずに、パッチなどを充てることができるようになります。
加えてこのアップデートは全リージョンで対応しています。

このアップデート内容はこんな時に便利!

冗長化していないEC2インスタンスの停止時間をあまりとりたくないが、OSやアプリケーションにパッチをあてたい。

ルートボリュームを差し替える際のイメージ

  1. 稼働中のEC2のAMIを取得する
  2. 取得したAMIからパッチ用の一時インスタンスを起動
  3. パッチ用の一時インスタンスにパッチ適用し、パッチ適用済みAMIを取得
  4. ルートボリュームをパッチ適用済みAMIに置き換える

注意点

このアップデートは起動させたままパッチが適用できるものではなく、あくまで停止させずにというというところがポイントです。
そのため、ルートボリュームを置き換える際には再起動が発生します。
また、仮想化インスタンスタイプとEC2 Macメタルインスタンス、ベアメタルインスタンスはサポート適用外です。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html

実際にやってみた

稼働中のEC2インスタンスのパッケージ群をYumアップデートし、AMIを置き換えたいと思います。
実際の流れは下記のようになります。
1. アップデート内容の確認
2. 稼働中のインスタンスのAMIを取得する
3. 取得したAMIから新しくインスタンスを立ち上げる
4. 新しく立ち上げたインスタンスにアップデートを適用する
5. アップデートを適用したインスタンスからAMIを取得する
6. 稼働中のインスタンスのルートボリュームを取得したAMIに置き換える

Let’s Try!

1. アップデート内容の確認


yum check-update にてアップデート適用対象のインスタンスにログインし、アップデート内容を確認する。

2. 稼働中のアップデート適用対象のインスタンスのAMIを取得する


アップデート対象インスタンスにチェックを入れて、「アクション」から「イメージとテンプレート」を選択し、「イメージを作成」を選択。


イメージ名を入力し、再起動しないを有効化にチェックを入れて「イメージを作成」を選択。

3. 取得したAMIから新しくインスタンスを立ち上げる


イメージが作成できたら対象AMIにチェックを入れて「AMIからインスタンスを起動」を選択。


名前を入力し、「インスタンスを起動」を選択。

4. 立ち上げたインスタンスにログインし、Yumアップデートを実施する


yum check-update にてアップデート対象のパッケージを確認する。


rootに切り替えて、yum update -y にてパッケージのアップデートを実施する。

5. アップデートを適用したインスタンスからAMIを取得する

  1. 稼働中のアップデート適用対象のインスタンスのAMIを取得する と同様の手順でAMIを取得する。


※AMIを作成後、AMI IDを控えておく

6. 稼働中のインスタンスのルートボリュームを取得したAMIに置き換える


アップデート対象インスタンスのチェックボックスをチェックし、「アクション」を選択し、モニタリングと「トラブルシューティング」を選択し、「ルートボリュームを置き換える」を選択します。

「Restore」の「image」のラジオボタンを選択し、「image」に先ほど控えたAMI IDを入力し、「置き換えタスクを作成」を選択。

1,2分ほど再起動時間を待った後に、最初のマシンにログインし、 yum check-update にて、パッケージがアップデート済みなのを確認できました。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

yasujun

インフラの勉強と趣味の武道をバランス良く両立していきたいエンジニアです。 よろしくお願いいたします!

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら