💆

[AWS] EC2の状態とOS:遷移、停止保護、終了保護を理解する

2023/06/26に公開

前回の続きでEC2のプレイスメントグループの記事を書こうとしたんですが既に完璧な記事(検証までしている)があったので割愛して

AWS EC2インスタンスの状態やその遷移、OSからのシャットダウン動作がむずい。わかりづらい。

  • AWS EC2の各状態とその遷移
  • OSからのシャットダウン動作でどのようにインスタンスの状態が変化するか
  • EC2の状態遷移メッセージの読み解き方
  • EC2の停止保護と終了保護の設定方法

☝️を具体例とともに詳しく(一部簡素)解説します。

AWS EC2状態とその遷移

まずはAWS EC2の状態とその遷移、さらにOSとの関連性について解説します。
これを理解することで、EC2の動作をより深く理解し効率的な運用ができます。

EC2の状態とは

EC2の状態とは、EC2インスタンスが現在どのような状態にあるのかを表すものです。
以下の状態があります。

状態(英語) 状態(日本語) 説明
pending 開始 インスタンスが起動中で、準備が整っていない状態
running 実行中 インスタンスが起動完了し、正常に動作している状態
stopping 停止中 インスタンスが停止中である状態
stopped 停止 インスタンスが完全に停止している状態
shutting-down シャットダウン中 インスタンスが終了中である状態
terminated 終了 インスタンスが終了し、使用できない状態

EC2状態遷移の流れ

instance_lifecycle
AWSのEC2インスタンスは、特定のライフサイクルに従って状態が変化します。
このライフサイクルは、インスタンスが起動(作成)から完全に終了するまでの一連のステップを含みます。
具体的には以下の通りです:

  1. pending(開始中): 新しいインスタンスを作成すると、最初にこの状態になります。インスタンスは起動中であり、まだ使用するための準備が整っていない状態を表します。

  2. running(実行中): インスタンスの起動準備が整うと、この状態に遷移します。この状態では、インスタンスは正常に動作しており、ユーザーによる操作が可能です。

  3. stopping(停止中)およびstopped(停止): インスタンスを一時停止すると、「stopping」状態を経て「stopped」状態になります。停止状態のインスタンスは、必要なときに再起動できます。

  4. shutting-down(シャットダウン中)およびterminated(終了): インスタンスを完全に終了(削除)すると、「shutting-down」状態を経て「terminated」状態となります。「terminated」状態になったインスタンスは再起動できず、その生涯を終えます。

EC2状態とOSの関連性

EC2インスタンスの状態は、OSの操作と関連しています。
ここが結構イメージ掴みづらいところだと思います。

shutdown_setting
AWS EC2では、このシャットダウン動作をインスタンス作成時や後から変更することができます。


具体的には以下の2つのオプションがあります:

  1. 停止: インスタンスがOSからシャットダウンしたとき、インスタンスは「stopping」を経て「stopped」状態に遷移します。この設定を選ぶと、シャットダウン後もインスタンスは保持され、再起動することが可能です。
    またストップ状態では課金も停止するため、コスト管理の観点からも有効です。
  2. 終了: インスタンスがOSからシャットダウンしたとき、インスタンスは「shutting-down」を経て「terminated」状態に遷移します。この設定を選ぶと、シャットダウン後はインスタンスが完全に削除され、再利用できません。

この設定により、ユーザーは自身の運用要件に応じてインスタンスのシャットダウン動作をコントロールできます。
このため、インスタンスの運用計画を立てる際には、このシャットダウン動作の設定も考慮に入れることが重要です。
※デフォルトでは「停止」です。インスタンス終了してしまうと元に戻せないので基本的にデフォルトのままになると思います

EC2の状態遷移メッセージを理解する

EC2インスタンスの状態遷移は、遷移メッセージを通じて確認することができます。
適切に読み解くことで、インスタンスの動作をより細かく理解し、必要に応じて対応することが可能となります。

遷移メッセージの取得方法

AWS CLIを使用してEC2インスタンスの状態遷移メッセージを取得することができます。
取得するためには、describe-instancesコマンドを使用し、対象となるインスタンスIDを指定します。

aws ec2 describe-instances --instance-ids i-1234567890abcdef0

インスタンスの現在の状態だけでなく、遷移メッセージも含めた詳細な情報を取得することができます。

遷移メッセージの読み解き方

遷移メッセージは、インスタンスの状態が何から何へと遷移したか、なぜその状態遷移が起こったのかという情報を提供します。
メッセージの中には、状態遷移の理由が記載されており、これを読み解くことで、インスタンスの動作をより深く理解することが可能です(細かいので割愛)

EC2の停止保護と終了保護

このセクションでは、EC2の停止保護終了保護について解説します。
これらの保護機能を活用することで、誤ってインスタンスを停止や終了することから保護することができます。

停止保護とは?

停止保護は、EC2インスタンスが誤って停止することを防ぐための機能です。
この機能を有効にすると、インスタンスの停止操作は無効化され、インスタンスを誤って停止するリスクを軽減することができます。

この設定が入っている時に停止しようとするとエラーになり、停止できません。

終了保護とは?

終了保護は、EC2インスタンスが誤って終了することを防ぐための機能です。
この機能を有効にすると、インスタンスの終了操作は無効化され、インスタンスを誤って終了するリスクを軽減することができます。

この設定が入っている時に終了しようとするとエラーになり、終了できません。

保護機能の設定方法

停止保護と終了保護は、AWSマネジメントコンソールから設定することができます。
具体的には、対象となるインスタンスを選択し、インスタンス設定メニューから保護設定を変更します。
このように、保護機能を活用することで、インスタンスの誤操作から保護することが可能となります。

まとめ

この記事では、AWS EC2の状態とその遷移、OSからのシャットダウン動作とその影響、そしてEC2の停止保護と終了保護について解説しました。
具体的に以下を習得したはずです!

  • AWS EC2の各状態とその遷移、それぞれの状態が何を意味するのか
  • OSからのシャットダウン動作でどのようにインスタンスの状態が変化するか
  • EC2の状態遷移メッセージの参照の仕方
  • EC2の停止保護と終了保護を使って重要なインスタンスを誤操作から保護する方法

多分今後何度も言いますがw
公式ドキュメントはわからないことがわかった後に見るのがお勧めです。

以上!

GitHubで編集を提案
株式会社エーピーコミュニケーションズ

Discussion