EC2 Instances の Status Checks が「0/2 checks passed」になってアクセス不能に
急にブログに繋がらなくなった・・・
EC2 Dashboard からインスタンスの Status Checks を見てみると
0/2 checks passed
となっていて、なぜか停止している。
Status Checks とは・・・
Status Checkは、実行中のアプリケーションから、インスタンスの状態を知ることが可能になる。EC2は自動的に、AWSシステム全般にまつわる問題と、インスタンス個別の問題を検出し、顧客はその結果がpassしているか failしているかのステータスを知ることができる。(5分間隔)
Status Checkは、 Instance Status APIの一部であり、 リブートやリタイヤの情報を事前に通知するScheduled Eventsも含まれる。CloudWatchで提供されるメトリクスを併用し、問題の解決や回避をより可視化することが可能になる。例えば、電源喪失やN/W不通といったホストレベルの問題はsystem statusチェックで検出され、ファイルシステム異常やメモリ浪費、カーネル不整合といったインスタンスレベルの問題は instance status チェックで検出される。これらの情報を、DescribeInstatnceStatus APIか、マネジメントコンソールで確認できる。
あと、Security Groupsで、ポート全開にして起動すると、status checkが終わらなくて立ち上がりきらないらしい。
StatusCheckFailed_Instance: インスタンス内部に原因がありインスタンスに問題が出ていることを表しています。
StatusCheckFailed_System: AWS側の仮想ホストサーバーやネットワークで問題が発生していることを表しています。
ということらしい。
なので、何かが起きて全体的にダメになってたみたい。
インスタンスを起動し直す
何か謎のスクリプトを走らせたりしてた訳ではない(直前にSSHで接続してcssファイルを幾つか弄ってただけ)のでとりあえず Instance を Stop → Start すると、Status Checks が
2/2 checks passed
となったので、もう大丈夫だろうと思ってブラウザでURLを叩いてみたけど、サイトが表示されず・・。
Reboot も試したけど、変わらず。
IP アドレスの関連付けを確認
うん、アレでした。
Instance を Stop or Reboot すると、Elastic IPs の Associate が解除されてしまうのでした。EC2 のダッシュボードからIPアドレスを紐付けて元に戻りました。
ちなみに、 Instance の停止はかなり時間がかかる場合があるみたいので、その場合は根気強く待つしかありません。
log 見て原因の特定が出来るようになりたいな、、とバックアップの設定をしないと。