- 1. 概要
- 2. EC2インスタンスの起動障害
— 2.1. EC2インスタンス起動時のStatus Checks失敗
— 2.2. インスタンスのSystem Logを調査する - 3. EC2ステータスチェックに失敗した原因
概要
- 今回の記事は、EC2インスタンスをAMIから起動できない事例の紹介です。
- 原因が分かれば納得ですが、別環境で取得したAMIを再利用するなど、AMIの元となっているEC2 インスタンスの情報が不明な場合はハマります。
EC2インスタンスの起動障害
EC2インスタンス起動時のStatus Checks失敗
- 別環境(別のAWSアカウント)から共有されているAMI を元にEC2インスタンス(type: c5.large)を起動しましたが、インスタンスのステータスチェック(1/2 checks)に失敗し、EC2インスタンスが起動できませんでした。
- 現象は固定であり、再起動しても起動できません。
インスタンスのSystem Logを調査する
- ステータスチェックに失敗したインスタンスを選択し、[Actions] → [Instance Settings] → [Get System Log]を選択します。
- 通常、OSのログファイルはOS起動後でなければ確認できませんが、上記方法を使用することで、OSの起動が完了する前のコンソールログを調べることが可能です。
- 今回は、以下のログが出力されており、ステータスチェックに失敗したエラーが確認できました。
- 以下、エラーメッセージの抜粋です。「/dev/mapper/vg_root-lv_root does not exist」と出力されており、ブートディスクが見つからなかったことが分かります。
[ 174.798610] dracut-initqueue[250]: Warning: dracut-initqueue timeout - starting timeout scripts [ 175.307222] dracut-initqueue[250]: Warning: dracut-initqueue timeout - starting timeout scripts [ 175.813909] dracut-initqueue[250]: Warning: dracut-iWarning: /dev/mapper/vg_root-lv_root does not exist Warning: /dev/vg_root/lv_root does not exist Generating "/run/initramfs/rdsosreport.txt" Entering emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report.
EC2ステータスチェックに失敗した原因
- 今回、ステータスチェックに失敗した原因は、旧世代(C4インスタンス)で取得したAMI であったため、現行世代(C5インスタンス)で起動した場合に、ブートディスクのドライバが異なっており、ブートディスクのデバイスが認識できなかったため、OSの起動に失敗しました。
- 現行世代(C5インスタンス)は、NVMeを標準搭載するNitroベースのインスタンスのため、旧世代(C4インスタンス)でインストールされたOSイメージには、ドライバが組み込まれておりません。
- 無事、EC2インスタンス(type: c4.large)を起動し直すことで、ステータスチェックに成功して、OSが起動できました。以下、コンソールより、EC2ステータスチェックが確認可能です。
元記事はこちら
「EC2 をAMIから起動できない(/dev/mapper/vg_root-lv_root does not exist)」