batchiです。
EC2作成時に「まぁデフォルトで」とさらりと流されがちな、
Termination protectionとShutdown behavior。
分かっていたようで分かっていなかったので、
少しだけ掘ってみました。
Termination protectionとは
削除保護(あるいは終了保護とも)のことです。
デフォルトでは無効になっています。
果たしてTeminateとは「削除」なのか「終了」なのか、
マネジメントコンソールやドキュメントで表現が統一されていないので、
少しだけ混乱します。
「終了」を「停止」のことだと勘違いする人もいたりいなかったり。
ともかく削除保護を有効にすると、
意図せぬ削除から保護してくれるようになります。
マネジメントコンソールの場合。
CLIの場合。
>aws ec2 terminate-instances --instance-ids i-xxxxxxxx A client error (OperationNotPermitted) occurred when calling the TerminateInstan ces operation: The instance 'i-xxxxxxxx' may not be terminated. Modify its 'disa bleApiTermination' instance attribute and try again.
削除保護について詳しくはこちらをどうぞ。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination
Shutdown behaviorとは
シャットダウン時の挙動について、
「停止」か「削除」かを選択できます。
デフォルトでは「停止」になっています。
「インスタンスによって起動されたシャットダウン動作の変更」という、
かなりまわりくどい表現がされています。
ここを勘違いしていたのですが、
「シャットダウン時の挙動」に関して、
マネジメントコンソール上で実施する「インスタンスの停止」や、
CLIで叩く「stop-instances」の動作には関係ないのです。
あくまで、インスタンス側(OS側)から実施する、
「シャットダウン動作」の挙動について変更できるだけです。
Shutdown behaviorを[terminate]にして、マネジメントコンソール上の操作で停止する。
OSにログオンしてシャットダウンする。
「shutting-down」というステータスに。
普段よく目にする「stopping」とは違うということですね。
「削除保護」と「シャットダウン時の挙動」は関連しない
そもそもこの記事を書こうと思ったのは、
- 削除保護…有効
- シャットダウン時の挙動…削除
↑の組み合わせでインスタンスを停止させたらどうなるんだろう、
という思いつきからでした。
結果的には、
- 削除保護…APIによる「削除」が対象
- シャットダウン時の挙動…インスタンス側からの「シャットダウン」が対象
ということで、対象がかすっていないのでした。
勉強になりました。
こちらからは以上です。
おまけ:CLIで打ってみた時のメモ
Termination protectionの場合。
#有効にする >aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --disable-ap i-termination #無効にする >aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --no-disable -api-termination
Shutdown behaviorの場合。
#削除にする >aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --instance- initiated-shutdown-behavior terminate #停止にする >aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --instance- initiated-shutdown-behavior stop