AWSのEC2を起動させようとしたら、EC2のステータスチェックで1/2で止まってしまい
OSにリモートデスクトップ接続できなかったり、SSH接続出来なくなってしまったことがありました。
この場合、強制的にEC2を停止させ再度再起動するしか手が無いのですが、
ステータスチェックの1/2とは一体何を意味し何なんでしょうか?
EC2のステータスチェックは2つある。だから1/2
言われてみると、「なるほどな」と思うのですが、AWSサポートに教えてもらって初めて知りました。
実は、EC2のステータスチェックは二つあるんです。
- StatusCheckFailed_System
- StatusCheckFailed_Instance
二つ合わせて「StatusCheckFailed」であり、どちらか一つがNGですとステータスチェックで1/2という意味になるのです。
これは、CloudWatchのメトリクス画面です。
StatusCheckFailed_Systemとは?
StatusCheckFailed_Systemとは、AWSのホストインフラ面で何かエラーがあった場合、Failedとなります。
AWS利用者が意図的にFaileを発生させることは出来ません。
StatusCheckFailed_Instanceとは?
StatusCheckFailed_Instanceとは、AWSのインスタンス面で何かしらエラーがあった場合に、Failedとなります。
こちらは、インスタンスのネットワーク監視も含んでいますが、arpの監視になるのでNICを無効化したくらいではStatusCheckFailed_InstanceをFailedにさせることはできません。
これは、例えば、LinuxのEC2で、一時的に(再起動すれば復旧)
service network stop
なんかを実施しても、StatusCheckFailed_InstanceはFailedにならないことで確認ができます。
「StatusCheckFailed」でCloudWatchステータス監視をした場合は、ネットワーク通信が取れなくなるようなpingがダウンしても
arpが反応すればステータス監視としてはダウンにならないことがわかりますね。
AWSの死活監視・・・悩ましいです。