EC2インスタンスは正常なのになぜかPowerOffされていた。

2021.04.09

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

テクニカルサポートの丸屋 正志(まるちゃん)です

1. 困っていた内容

EC2 インスタンスは正常なのにも関わらず、何故か EC2 インスタンスが停止していました。
停止後に、手動で EC2 インスタンスを【開始(Start)】をしたところ現在は正常に稼働しています。
正常なのに、なぜ当該のEC2インスタンスが停止されていたのでしょうか?

1.1. 前提条件

  • 負荷状況は問題無し
  • 十分な空きディスク容量あり
  • ユーザー側で PowerOff などは実施しておらず
  • CloudTrail を見ても EC2 インスタンスの停止履歴無し
  • /var/log/messages に【Powering Off...】 と記載されているだけ
  • 《システム/インスタンス》ステータスチェックの両方とも問題無し

また、今回挙げた例が絶対ではありません。他の要因などにより停止することもありえます。

2. 原因

EC2 インスタンスのリタイア宣告時刻前に【停止(Stop)】->【開始(Start)】を実施していないのが原因かと思われます。

3. 解決策

リタイア通知が届いたあと、事前に【停止(Stop)】->【開始(Start)】 を実施しておくことで、宣告時刻にインスタンスが停止するといった事象は発生いたしません。

具体的には...

  1. 当該インスタンスを 【停止(Stop)
  2. 当該インスタンスの状態が 【停止済み(stoppped)】 になったことを確認
  3. 当該インスタンスを 【開始(Start)

3.1. そもそも EC2 インスタンスのリタイアとは

お客様のインスタンスをホストしているインフラストラクチャにおいて、アマゾン ウェブ サービス (AWS) が回復不可能な障害を検出した場合、EC2 インスタンスのリタイアがスケジュールされます。
リタイアのスケジュールにつながる可能性のある問題は以下のとおりです。

・ 回復不可能で、ソフトウェアの置き換えが必要なソフトウェア関連の問題。
・ 電源、ハードディスク、またはその他のサーバーコンポーネントなど、動作不良のあるハードウェアも、交換が必要です。

4. リタイア通知を検知するには?

事前にリタイア通知を把握するにはいくつかの方法があります。

  • 【メール】 通知
  • 【Personal Health Dashboard(PHD) イベント】 通知
  • 【EC2 インスタンスイベント】 通知

上記内容について、サンプル内容を記載しております。

4.1. 例 : メール通知

下記は、実際に AWS から届くリタイア通知のメールサンプルです。(若干変わったりします。)

Title : Amazon EC2 Instance Retirement [AWS Account: XXXXX]

===========================================================

Hello,

EC2 has detected degradation of the underlying hardware hosting your Amazon EC2 instance (instance-ID: QQQQQQQQ) associated with your AWS account (AWS Account ID: XXXXX) in the ap-northeast-1 region. Due to this degradation your instance could already be unreachable. We will stop your instance after 20YY-MM-DD hh:mm:ss UTC. Please take appropriate action before this time.

The affected instances are listed below:

QQQQQQQQ

You can find more information about retirement events scheduled for your EC2 instances in the AWS Management Console https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Events

上記を解釈すると...

  • お客様のEC2インスタンスが利用しているハードウェアが劣化・故障したから、近いうちにハードウェアを停止させますね。
  • 対象のEC2インスタンスは 《QQQQQQQQ》 になります。
  • また、宣告時刻は 《20YY-MM-DD hh:mm:ss UTC》 に停止させますね。
  • だから、事前に 【停止(Stop)】->【開始(Start)】 しておいてね。

4.2. 例 : PHD イベント

下記は、実際に PHD イベントに表示されているリタイア通知のサンプルです。

  • タイトル : 【EC2 persistent instance retirement scheduled】

Image from Gyazo

4.3. 例 : EC2 インスタンスイベント

下記は、実際に EC2 イベントに表示されているリタイア通知のサンプルです。

Image from Gyazo

5. 参考記事

6. さいごに

冒頭でもあげましたが、今回挙げた例が絶対ではありません。そのほかの要因もあります。
また、停止をする前に事前にインスタンスのバックアップなどを取得しておくことを強く推奨しています。

サーバーも休憩が必要ですね!