EC2の起動が完了せず、停止もできない事象を回避するには

EC2が何らかの原因で起動しない場合、停止しない場合は、強制停止をお試しください。
2021.04.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

EC2 が起動しない

EC2 の起動を行いましたが、ステータスが保留中(pending)のまま起動が完了しません。

停止もできません。

EC2 が起動しないと業務が開始できないため、急いでいます。

どのようにすれば解決できますか?

EC2 が停止しない

EC2 の停止を行いましたがステータスが停止中(stopping)のまま停止が完了しません。

EC2 が停止しないと業務が終了できません。

どのようにすれば解決できますか?

どう対応すればいいの?

まれに EC2 のステータスが保留中(pending)または、停止中(stopping)のまま、長時間経過し、次のステータスに移行しない場合があります。

この場合、強制停止を行うことで事象が解消できる可能性があります。

AWS CLI コマンドで強制停止を行う

AWS CLI にて以下のコマンドを実行ください。

aws ec2 stop-instances --instance-ids <インスタンスID> --force

AWS CLI がありません

マネジメントコンソールから、CloudShell を用いて AWS CLI の利用が可能です。

AWS CloudShell – AWS リソースへのコマンドラインアクセス | Amazon Web Services ブログ

または、AWS CLI を任意の EC2 または、ローカル PC にインストールしてください。

AWS CLI バージョン 2 のインストール、更新、アンインストール - AWS Command Line Interface

マネジメントコンソールから強制停止を行う

マネジメントコンソールからインスタンスを強制停止できる場合があります。

インスタンスの状態からインスタンスの強制停止を選択します。

その後、停止するインスタンスを確認し、停止ボタンを押します。

その他にできる復旧方法はないの?

最も確実な復旧方法は AMI からの復元となります。

日頃より AWS Backup や Amazon Data Lifecycle Manager を用いて、AMI やスナップショットを取得することを推奨します。

インスタンスが保留中(pending)や停止中(stopping)となっている時間は課金対象となりますか?

課金対象にはなりません。

インスタンスが起動中(running)状態のときのみ、インスタンスの使用量に対して課金されます。

本当に強制停止していいの?

ドキュメントには以下の記述があります。

--force | --no-force (boolean)

Forces the instances to stop. 
The instances do not have an opportunity to flush file system caches or file system metadata. 
If you use this option, you must perform file system check and repair procedures. 
This option is not recommended for Windows instances.

ファイルシステムのチェックと修復の手順を実行する必要が生じる可能性があることが示唆されています。

予めご認識の上、実行をご検討ください。

参考資料

インスタンスのライフサイクル - Amazon Elastic Compute Cloud

EC2 の「強制的に停止 (Forcefully Stop)」操作を紹介します | DevelopersIO

stop-instances — AWS CLI 1.19.39 Command Reference

待望の新サービス AWS CloudShell がリリースされました! #reinvent | DevelopersIO