Auto Recovery発動後のEC2の動作確認がしたかったので、方法を調べてみました。
StatusCheckFailed_Systemを意図的に失敗させる方法がわかればAuto Recoveryを発動させることができると考えていたのですが、うまくいかず・・・。
結論からいうと「Auto Recoveryを意図的に発生させることはできない」になるのですが、やったことをまとめます。
検証環境
- Windows Server 2016
やったこと
- ネットワークインターフェースを無効にする
- AWSのサポートセンターに問い合わせる
ネットワークインターフェースを無効にする
GUIでネットワークインターフェースを無効にしました。
結果・・・
システムステータスのチェックではなく、インスタンスステータスのチェックが失敗になりました。
AWSのサポートセンターに問い合わせる
以下のような回答をいただきました。
大変恐れ入りますが、StatusCheckFailed_System のステータスチェック失敗を意図的に発生させる方法は提供しておりません。
ご要望を満たすことができる方法ではないかもしれませんが、AWS CLIの「set-alarm-state」を使用し、設定されたアラームを意図的に発報することは可能でございます。
以下に、コマンドの例を記載させていただきます。
aws cloudwatch set-alarm-state --alarm-name <アラーム名> --state-reason <任意の理由> --state-value ALARM
このような方法でアラームを発報した場合、実際にAWS基盤の障害が発生している状況ではございませんが、CloudWatchアラームが動作するかのテストは可能であると考えられます。
StatusCheckFailed_Systemを意図的に発生させる方法はないとのことでしたが、一応上記のコマンドを実行してみました。
その結果・・・
CloudWatchでアラームの履歴を確認してみると以下のようになっており、短時間の間に状態が変わったことがわかりました。
しかしAuto Recoveryが発動した気配はありません。
そこでメールをチェックしてみると、契約アカウントに以下のメールが届いてました。
・・・手動でアラームのステータスを変えたことがばれていましたね。。
結論
Auto Recoveryを意図的に発生させることはできない。