Amazon Elastic Compute Cloud (Amazon EC2) により、EC2 インスタンスが予期せず破棄された原因を知りたいです。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
オンデマンドインスタンス
注: Amazon EC2 がインスタンスを削除した後も料金が発生する可能性があります。
Amazon EC2 がオンデマンドインスタンスを削除したタイミングと、その削除方法に関する情報を確認するには、AWS CloudTrail イベント履歴の TerminateInstances イベントを確認します。または、CloudTrail コンソールで [リソース名] を選択し、インスタンス ID を入力すると、インスタンスに関連するすべての API コールが表示されます。イベントの詳細を参照し、インスタンスが破棄されたタイミングおよび、インスタンスを破棄したユーザーの情報を確認してください。
注: AWS CloudTrail では、過去 90 日間のイベント履歴のみを検索できます。詳細については、「CloudTrail を使用して AWS アカウントで発生した API コールとアクションを確認する方法を教えてください」を参照してください。
Amazon EC2 は、次の要因でもオンデマンドインスタンスを破棄する場合があります。
- オペレーティングシステム (OS) のシャットダウン
- EC2 インスタンスの起動失敗
- サードパーティ製ソフトウェアによる破棄
OS レベルのシャットダウン
EC2 インスタンスのシャットダウン動作を Terminate に設定した可能性があります。このシナリオでは、インスタンスで shutdown、poweroff などの OS レベルでのシャットダウンコマンドを実行すると、Amazon EC2 はそのインスタンスを破棄します。Amazon EC2 がこの方法でインスタンスを削除した場合、CloudTrail はイベントを記録しません。
インスタンスのシャットダウン動作を確認するには、次の AWS CLI コマンド describe-instance-attribute を実行します。
aws ec2 describe-instance-attribute --instance-id example-instance-id --attribute instanceInitiatedShutdownBehavior
注: example-instance-id は、実際のインスタンス ID に置き換えます。
DeleteOnTermination 属性を False に設定し、ルートボリュームを保持した場合は、レスキューインスタンスを使用して /var/log/messages ログ、/var/log/audit/audit.log などの OS レベルのログを確認します。この方法では、シャットダウンコマンドを実行したユーザーおよび、そのタイミングを特定できます。レスキューインスタンスを起動する方法の手順については、「EC2 Linux インスタンスを起動しようとすると緊急モードになる原因を教えてください」の「レスキューインスタンスを使用してファイルを手動で編集する」を参照してください。
EC2 インスタンスの起動失敗
次の要因で、EC2 インスタンスの起動時に、起動に失敗するか、自動的に破棄される場合があります。
- Amazon Elastic Block Store (Amazon EBS) ボリュームがインスタンスに正しくアタッチされていない。
- EC2 インスタンスにアタッチされた Amazon EBS ボリュームが Error ステータスになっている。
- 暗号化された EBS ボリュームをインスタンスにアタッチしたものの、AWS Key Management Service (AWS KMS) 復号キーへのアクセス許可が欠けている。
サードパーティ製ソフトウェアによる破棄
複数の要因で、サードパーティのソフトウェアが EC2 インスタンスを破棄する場合があります。TerminateInstances イベントを発生させた Amazon リソースネーム (ARN) または AWS Identity and Access Management (IAM) ユーザーが、そのサードパーティソフトウェアに関連しているかどうかを確認してください。
たとえば、Karpenter には中断制御機能があり、EC2 インスタンスを削除する可能性があります。詳細については、Karpenter のウェブサイトで「Interruption」を参照してください。
スポットインスタンス
スポットインスタンスの価格が入札した価格を上回ると、そのスポットインスタンスの容量は失われます。または、Amazon EC2 がスポットリクエストの制約を満たせない場合、Amazon EC2 はスポットインスタンスを破棄します。
Amazon EC2 がスポットインスタンスを破棄したかどうかを判断するには、CloudTrail のイベント履歴に BidEvictedEvent イベントがないかどうかを確認します。
Amazon EC2 Auto Scaling グループのインスタンス
Amazon EC2 Auto Scaling グループでは、次の要因で Amazon EC2 Auto Scaling がインスタンスを破棄する場合があります。
- EC2 インスタンスが unhealthy とマークされている
- Amazon EC2 Auto Scaling グループのスケールダウンイベントが発生しています。
注: デフォルトでは、AWS Elastic Beanstalk 環境は Amazon EC2 Auto Scaling グループを使用して EC2 インスタンスを起動します。
関連情報
破棄された EC2 インスタンスを再作成する方法を教えてください
Amazon EC2 インスタンスが破棄される場合のトラブルシューティング