見出し画像

EC2でStatusCheckFailedを発生させる | #AWSメモ


背景

  • 監視系のテストでEC2のStatusCheckFailed系のアラートを意図的に発生させる機会があったので、やり方を備忘録として残します

  • なお、本記事に記載しているテストは、AMIからテスト用インスタンスを作成して実施することを推奨します

結論

StatusCheckFailed_Instance

  • EC2内でネットワークインターフェース(NIC)をダウンさせる

    1. ip link show : ネットワークインターフェースを確認する

      • Amazon Linux2,RHELなど: eth0

      • Amazon Linux2023: enX0

    2. ip link set eth0 down

      • eth0の箇所は確認したネットワークインターフェースのものに置き換える

StatusCheckFailed_AttachedEBS

  • EBSのコンソールから、「アクション」>「フォールト挿入」>「ボリュームI/Oを一時停止」を選択する

    • 実際にはFIS(Fault Injection Service)によって実行される

      • 有料:「ボリュームI/Oを一時停止」の場合、1分間で0.1USD

ボリュームI/Oの一時停止(AWSコンソール)
FISによるEBSボリューム一時停止設定画面(AWSコンソール)

詳細

StatusCheckFailed

  • 下記のどれか一つでも失敗した場合に発生する

    • StatusCheckFailed_System

    • StatusCheckFailed_Instance

    • StatusCheckFailed_AttachedEBS

StatusCheckFailed_System

  • AWS側のハードウェアや基盤の障害

    • 意図的な発生は不可能そうである

システムステータスチェックの説明(AWS公式ドキュメントより)
  • デフォルトで有効になっているインスタンスの自動復旧(Auto Recovery)により、発生時は別のハードウェア上で同一ID,IPメタデータが保持されて、新たなインスタンスが起動する

StatusCheckFailed_Instance

  • メモリ枯渇やネットワーク設定などの主にOS関連の問題で発生する

  • EC2にアタッチしているNICに対してARPリクエストを送付して評価しているため、NICのダウンで意図的に発生させることができる

インスタンスステータスチェックの説明(AWS公式ドキュメントより)

StatusCheckFailed_AttachedEBS

  • EC2にアタッチしているEBSボリュームに問題があった場合に発生する

    • EBSのディスクI/Oを停止することで発生させることが可能

      • FISにて電源喪失(AZ規模の停電など)で想定される症状としてシナリオが用意されている

アタッチ済みEBSステータスチェックの説明(AWS公式ドキュメントより)
  • Nitroベースのインスタンスタイプでのみ利用可能

    • T2やM4などの古いインスタンスタイプはXenベースであるため非対応(=このステータスチェックが存在しない)

NitroベースとZenベースのインスタンスタイプ(AWS公式ドキュメントより)

参考資料


いいなと思ったら応援しよう!