Posted at

【AWS】 AWS障害をきっかけに学んだ、EC2インスタンスのステータスチェックとは?


はじめに

2019/08/23 13時頃 AWSの東京リージョンで大規模な障害が発生しました。

※参照:https://news.yahoo.co.jp/pickup/6334251

そこで、EC2インスタンスのステータスチェックが失敗していたので、停止して起動しなおすなどの対応していたのですが、そもそもステータスチェックって何してるのってなって詳しく知らなかったので、調べました。

この障害で、調べようと思いました。


内容


概要

ステータスチェックの「1/2」とか「0/2」とかなんですかってなりました。純情な感情・・・でしか見たことありません自分。はい。

話を戻すと、EC2を通常稼働できるかを検査してくれています。

例えば、ハードウェア的な問題があるよとかソフトウェアやネットワーク的な問題があるよって、自動化されたチェックを実行して問題を識別してくれています。

そこで、このステータスチェックには2つチェックするものがあります。それが、

- StatusCheckFailed_System

- StatusCheckFailed_Instance

「1/2」とか「2/2」とかは、このステータスの数を表していて、どちらかが失敗すると、エクスクラメーション・マークを出して教えてくれます。

以下ステータスチェックの仕組みを軽く引用しています。



ステータスチェックは 1 分ごとに実行され、それぞれ成功または失敗のステータスが返ります。すべてのチェックが成功すると、インスタンス全体のステータスが OK になります。


※参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html


CloudWatchの見方としては、

・「EC2インスタンス内部に問題がある」ときは、「StatusCheckFailed_Instance」の値が1となっている。

・「AWS側のEC2ホスティングのシステム的な問題がある」ときは、「StatusCheckFailed_System」の値が1となっている。


※参考:https://dev.classmethod.jp/cloud/aws/cloudwatch-metrix-memo-1/


じゃあ具体的に、これらは何をしているか見てみます。

※下の参考記事を参考にしました。とても分かりやすかったです。


内容


■ StatusCheckFailed_System

・StatusCheckFailed_Instance : 個々のインスタンスのソフトウェアとネットワークの設定を監視します。

※参考:https://dev.classmethod.jp/cloud/aws/cloudwatch-metrix-memo-1/


<具体的内容>

物理ホストでの問題が発生した場合のステータス。

AWS側の問題が原因で、利用者側の問題ではない可能性があります。

※ただし、EC2インスタンスを利用者がシャットダウンした場合には発生するようです。

つまり


  • AWS側でネットワーク障害とか電源回りでの障害が発生したことによる問題だよ。

  • インスタンスが停止していることが問題だよ。

ってこと見たいです。


■ StatusCheckFailed_Instance

・StatusCheckFailed_System : インスタンスを使用するために必要な AWS システムを監視して、AWS システムが正常に実行されていることを確認します。

※参考:https://dev.classmethod.jp/cloud/aws/cloudwatch-metrix-memo-1/


<具体的内容>

EC2インスタンスのシステム的な問題。

→ ネットワークの設定誤りやソフトウェアの設定誤り、メモリ不足だったり、ファイルシステムの欠損、カーネル問題等々です。

これは、利用者側の問題であり、AWS側の問題ではない可能性があります。

つまり


  • Windowsだと、ipconfigとかでIPアドレスを開放するとこのアラート発生するみたいです。
    ※OSの再起動で、IPがDHCPサーバによって再度アサインされて復旧します。


(この手の実験するときは十分に注意してください。スナップショットを取得してから実験するのが確実です。疑似障害はAWS 管理コンソールから再起動して復帰できる範囲が必要です。ネットワークの設定を変更して再起動でももとに戻らない場合はリモートデスクトップやcliからも修正できなくなり元に戻らない可能性があります。)


※参考:https://awsjp.com/AWS/hikaku/StatusCheckFailed_System-StatusCheckFailed_Instance-hikaku.html


結論

EC2インスタンスのステータスチェックは、通常動作するために、問題がないかをチェックしているよ。

種類が2つ(StatusCheckFailed_System・StatusCheckFailed_Instance)あって、それぞれ物理的問題で発生した問題かチェックしたり、ネットワークの設定ミスの問題化をチェックしてくれるものです。


参考