停止保護が設定されているEC2でAMIを取得時に再起動は発生しますか?発生します。

AMI取得時の再起動は、停止保護では防ぐことはできません。 実際にやってみました。
2022.06.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

「停止保護が設定されているEC2で、AMI取得時に再起動は発生しますか?」

今回、お客様より上記のご質問をいただきました。

ドキュメントを確認したところ、私の読解力では記載している箇所を見つけることができなかったため検証してみました。

結論: 停止保護が設定されていても、AMI取得時の再起動は発生する。

EC2 停止保護とは

削除保護と同様に誤操作防止の機能です。 EC2インスタンスの停止を防ぐことができます。

Stop and start your instance - Amazon Elastic Compute Cloud

EC2 AMI取得時の再起動について

デフォルトでは、EC2はAMI取得時にインスタンス再起動が発生します。 (再起動しないオプションもあります)

By default, when Amazon EC2 creates the new AMI, it reboots the instance so that it can take snapshots of the attached volumes while data is at rest, in order to ensure a consistent state. You can set the NoReboot parameter to true in the API request, or use the --no-reboot option in the AWS CLI to prevent Amazon EC2 from shutting down and rebooting the instance.

デフォルトでは、Amazon EC2が新しいAMIを作成すると、インスタンスをリブートして、データが保存されている間に接続されたボリュームのスナップショットを取得できるようにして、一貫した状態を確保します。 APIリクエストでNoRebootパラメータをtrueに設定するか、AWS CLIで--no-rebootオプションを使用して、AmazonEC2がインスタンスをシャットダウンしてリブートしないようにすることができます。

CreateImage - Amazon Elastic Compute Cloud

ec2 ami reboot

やってみた

EC2停止保護を設定する

こちらの手順に従って、停止保護を設定します。

停止しようとすると、停止保護によって失敗します。

ちなみに、再起動は可能です。

停止保護では、OSコマンドによる停止は保護できません。 マネジメントコンソールから選択できるインスタンスの「再起動」は、オペレーティングシステムの再起動と同等のため防ぐことができません。

インスタンスのライフサイクル - Amazon Elastic Compute Cloud

AMIを取得する

AMIを取得して、再起動されるか確認します。

ami stop

正常にAMIが作成できました。

AMIの作成日2022/06/06 18:29です。 この時間帯付近にOS再起動が行われた確認します。

EC2のログから再起動が発生したか確認

Jun 6 18:30のログがありました。 OS再起動が発生したことを確認できました。

$ sudo cat /var/log/messages | grep shutdown
Jun  6 07:02:48 ip-172-31-12-19 systemd-shutdown[1]: Syncing filesystems and block devices.
Jun  6 09:09:56 ip-172-31-12-19 systemd-shutdown[1]: Syncing filesystems and block devices.
Jun  6 09:09:57 ip-172-31-12-19 systemd-shutdown[1]: Sending SIGTERM to remaining processes...
Jun  6 09:11:29 ip-172-31-12-19 systemd-shutdown[1]: Syncing filesystems and block devices.
Jun  6 09:13:52 ip-172-31-12-19 systemd-shutdown[1]: Syncing filesystems and block devices.
Jun  6 09:13:52 ip-172-31-12-19 systemd-shutdown[1]: Sending SIGTERM to remaining processes...
Jun  6 18:30:21 ip-172-31-12-19 systemd-shutdown[1]: Syncing filesystems and block devices.

関連記事