EC2 インスタンスの再起動メンテナンスがスケジュールされたら確認すべきポイント

記事タイトルとURLをコピーする

CI部 佐竹です。
運用していたら通る道、EC2 インスタンスのメンテナンススケジュール。今日はこれについて少し記載してみます。

はじめに

AWS_EC2_INSTANCE_REBOOT_FLEXIBLE_MAINTENANCE_SCHEDULED という通知を受け取った方、多いと思います。これは、EC2 インスタンスにメンテナンスがスケジュールされたことを知らせるものです。何が起きるのかというと、スケジュールされたメンテナンス期間まで放置していた場合、その期間内のどこかで EC2 インスタンスが AWS によって再起動されます。よって、そのメンテナンス期間までに事前対応を行うことで、意図しない時間での再起動を避けるという運用が必要になります

このスケジュールされたメンテナンスは2つの方法で確認できます。

EC2 の Events から確認する

f:id:swx-satake:20210702164702p:plain
https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Events:

EC2 に特化したイベント管理画面です。こちらが見やすいのでおすすめです。

ステータスが「Scheduled」のものが完了していないイベント、「Completed」のものが完了しているイベントとなります。

f:id:swx-satake:20210702170402p:plain
完了・未完了はステータスで判断が可能

PHD から確認する

f:id:swx-satake:20210702165009p:plain
https://phd.aws.amazon.com/phd/home?region=ap-northeast-1#/dashboard/scheduled-changes

マネジメントコンソールの右上にある「呼び鈴」のマークを押下して移動することができるのが、PHD こと Personal Health Dashboard です。なお最上部の検索窓でも表示されます。

「Scheduled changes」タブから対象のインスタンスが確認可能です。

メンテナンス通知を Slack へ連携する

なお、この通知は以下でもご紹介した通り、[CloudWatch Events]→[SNS topic]→[AWS Chatbot]→[Slack] という経路で Slack に連携が可能です。

blog.serverworks.co.jp

イベントの種類と対応方法

まず確認すべきは、EC2 の Events にある「Event type」です。

f:id:swx-satake:20210702165414p:plain
system-reboot の場合

reboot event において、この値は以下の2つになります。

  1. instance-reboot
  2. system-reboot

instance-reboot

このタイプは、「再起動(reboot)」によって解決されるメンテナンスです。マネジメントコンソールから Reboot を押下することで対応が完了するものとなります。

Reboot であればインスタンスストアボリューム上のデータも消えることはないため安心です。

system-reboot

このタイプは、「再起動(reboot)」によって解決されないメンテナンスです。マネジメントコンソールから Reboot を押下しても対応は完了となりません。

この場合は、停止を伴う必要があります。よって対応は「Stop(停止)」後に「Start(再開)」する必要があります。停止を伴うため、インスタンスストアボリュームは揮発します。

Stop → Start を常に行うのが運用上ベター

どちらのイベントタイプでも、「Stop(停止)」後に「Start(再開)」することでクリアされます。よって常に「Stop(停止)」後に「Start(再開)」で対応するのが運用上ベターです。ただし、先に記載したインスタンスストアボリュームのデータ揮発が問題になる場合は、「再起動(reboot)」も考慮に入れてください。

夜間停止との関係性

夜間停止して朝起動しているような EC2 インスタンス であれば、これらのイベントは自動的にクリアされることになりますので、このような場合は特に対応を行う必要がない場合が大半です。

再スケジュール

スケジュールは再スケジュールが可能となっていますので、メンテナンス時間を移動させたい場合はこちらの機能も合わせてご検討ください。

f:id:swx-satake:20210702171128p:plain
予定を再スケジュールできます

公式ドキュメント

以下、公式ドキュメントにも詳細に記載があるため、合わせて参考ください。

docs.aws.amazon.com

まとめ

本日は AWS_EC2_INSTANCE_REBOOT_FLEXIBLE_MAINTENANCE_SCHEDULED が通知された場合にどう対応するのか、その基本的な内容を記載させて頂きました。

私が管理する EC2 インスタンスは、インスタンスストアボリュームを使うことは稀なため全て「Stop(停止)」後に「Start(再開)」するよう Cloud Automator で設定することが多い状況です。ワークフロージョブを使えば簡単に設定できます。

夜間停止によるコスト削減にも有効な Cloud Automator を是非ご活用ください。

cloudautomator.com

ではまたお会いしましょう。

2021年11月15日 追記

blog.serverworks.co.jp

EC2 のメンテナンスでも RDS のように特定の期間(Event Window)に実行することが可能になりました。上記ブログも合わせてご覧ください。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023 Japan AWS Top Engineers/2020-2023 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。