スキップしてコンテンツを表示

Amazon EC2 Linux インスタンスが自動的にリブートまたは再起動した原因を教えてください。

所要時間2分
0

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスが予期せずリブートまたは再起動した理由を把握したいです。

簡単な説明

次の理由により、インスタンスが予期せずリブートまたは再起動することがあります。

  • インスタンスがステータスチェックに合格しなかった。
  • インスタンスをホストしている基盤ハードウェアに問題があり、Amazon EC2 によりインスタンスが再起動し、正常なハードウェアに移動した。
  • インスタンスの定期メンテナンスにより、再起動が開始された。
  • ユーザーまたはサーバー内のアプリケーションがインスタンスをリブートした。
  • カーネルにバグがある。
  • Amazon マシンイメージ (AMI) の作成中にインスタンスの再起動を有効にした。
  • AWS Systems Manager がマネージドインスタンスを再起動した。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Health Dashboard を確認する

簡易自動復旧定期メンテナンス、廃止などのインスタンス再起動イベントが発生していないかを AWS Health Dashboard で確認します。正常性通知に対応するには、スケジュールされたイベントを再スケジュールするか、インスタンスを手動で停止して起動します。

ステータスチェックを確認する

Amazon EC2 コンソールまたは AWS CLI を使用してインスタンスのステータスチェックを確認します。インスタンスがステータスチェックに合格できない場合は、「EC2 Linux インスタンスがステータスチェックに合格できない場合のトラブルシューティング方法を教えてください」を参照してください。

システムログを確認する

インスタンスがステータスチェックで不合格にならなかった場合は、オペレーティングシステム (OS) の問題によりインスタンスが再起動した可能性があります。OS レベルの問題をトラブルシューティングするには、/var/log/messages/var/log/syslog システムログを確認します。インスタンスがステータスチェックに合格できなかった場合は、インスタンスを再起動してシステムログを取得します。

次に、システムログに記載されているエラーをトラブルシューティングします。

再起動履歴を確認する

再起動を開始したのがユーザーであるかサーバー内のアプリケーションであるかを確認するには、次のコマンドを実行します。

grep reboot /home/*/.bash_history
grep reboot /root/.bash_history
history | grep -i reboot
history | grep -i init
last reboot

CloudTrail イベント履歴を確認する

ユーザーが Amazon EC2 コンソールまたは AWS CLI で開始したインスタンスの再起動は、AWS CloudTrail イベント履歴に表示されます。CloudTrail イベント履歴RebootInstances イベントが発生していないかを確認します。

注: AMI の作成時に、Amazon EC2 はデフォルトで [インスタンスの再起動] を有効化し、AMI の作成前にインスタンスを再起動します。この再起動は、RebootInstances イベントではなく、CreateImage イベントに表示されます。

AMI ライフサイクルポリシーを作成した場合は、[インスタンスの再起動] の項目で、[ポリシーの実行時にインスタンスを再起動する][Yes] に設定されているかどうかを確認します。その場合、インスタンスは AMI の作成中に再起動されます。

ハードウェアの問題により再起動したインスタンスを自動的に復旧するには、Amazon CloudWatch アクションベースの復旧を構成します。

カーネルを更新する

注: インスタンス上のパッケージを更新する前に、インスタンスの AMI バックアップを作成することをおすすめします。この設定では、必要に応じて変更を元に戻すことができます。

カーネルを更新するには、次の手順を実行します。

  1. インスタンスが使用するカーネルのバージョンを確認するには、次のコマンドを実行します。

    sudo uname -r
  2. カーネルを更新するには、使用する Linux OS に応じて次のいずれかのコマンドを実行します。
    Red Hat Enterprise Linux (RHEL) または Amazon Linux:

    sudo yum update kernel

    SUSE Linux Enterprise Server (SLES):

    sudo zypper up kernel-default

    Ubuntu:

    sudo apt upgrade linux-image-aws
  3. インスタンスを再起動して新しいカーネルを使用するには、次のコマンドを実行します。

    sudo reboot

[実行コマンド履歴] を表示して、Systems Manager がインスタンスを再起動したかどうかを確認する

RebootOption[RebootIfNeeded] に設定してインスタンスでパッチ操作を設定すると、Systems Manager はパッチ適用中にインスタンスを再起動します。

Systems Manager が [コマンドの実行] を実行したかどうかを確認するには、次の手順を実行します。

  1. Systems Manager コンソールを開く。
  2. ナビゲーションペインで [コマンドの実行] を選択する。
  3. [コマンド履歴] タブを選択する。
  4. 検索ボックスにインスタンス ID を入力し、Systems Manager がインスタンスに対して実行したすべてのコマンドを表示する。

関連情報

ステータスチェックに失敗した Amazon EC2 Linux インスタンスのトラブルシューティング

ステータスチェックのタイプ

AWS User Notifications の AWS Health 通知に対処する

更新が原因で EC2 インスタンスの再起動がブロックされた後に、既知の安定したカーネルに戻す方法を教えてください

AWS公式更新しました 6ヶ月前