EC2 Linux インスタンスが到達不能で、そのステータスチェックの一方、または両方が失敗するのはなぜですか?

最終更新日: 2020 年 6 月 2 日

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスが到達不能で、ステータスチェックの一方、または両方が失敗します。ステータスチェックの失敗をトラブルシューティングする方法を教えてください。

簡単な説明

Amazon EC2 は 2 つのステータスチェックを使って各 EC2 インスタンスの正常性を監視します。

システムステータスチェック: システムステータスチェックは、インスタンスが実行されている基盤となるホストに関する問題を検出します。このステータスチェックは、ネットワーク、ハードウェア、またはソフトウェアの問題が原因で基盤となるホストが応答しない、または到達不能である場合に失敗します。

インスタンスステータスチェック: インスタンスステータスチェックの失敗は、次のようなオペレーティングシステムレベルのエラーが原因で、インスタンスに問題があることを示します。

  • オペレーティングシステムの起動の失敗
  • ボリュームが正しくマウントされていない
  • ファイルシステムの問題
  • 互換性のないドライバー
  • カーネルパニック

インスタンスステータスチェックは、インスタンスリソースの過剰使用に起因する重大なメモリプレッシャーが原因で失敗する場合があります。

解決方法

インスタンスのステータスチェックメトリクスを表示して、インスタンスがシステムステータスチェックまたはインスタンスステータスチェックに失敗したかどうかを判断します。

システムステータスチェックが失敗した場合、インスタンスはシステムステータスチェックに失敗しましたという項目をご参照ください。どのようにトラブルシューティングすればよいですか?

インスタンスステータスチェックが失敗した場合は、オペレーティングシステムレベルの問題によって起動エラーが発生したか、インスタンスリソースの過剰使用率が原因である可能性があります。インスタンスのシステムログでエラーがないか確認します。以下は、システムログに表示される可能性がある一般的なエラーです。

起動エラー

システムログに起動エラーが含まれている場合は、オペレーティングシステムの問題により、EC2 Linux インスタンスでインスタンスのステータスチェックが失敗しましたという項目をご参照ください。どのようにトラブルシューティングすればよいですか?

完全なメモリまたはディスクがいっぱいになったエラー

システムログに完全なメモリまたはディスクがいっぱいになったエラーが含まれている場合、ルートデバイスがいっぱいであるため、インスタンスが緊急モードに入っている可能性があります。トラブルシューティングする方法については、リソースの使用率が高すぎたため、EC2 Linux インスタンスでインスタンスのステータスチェックが失敗しましたという項目を参照してください。どのようにトラブルシューティングすればよいですか?

CPU 使用率の急上昇

システムログにディスクがいっぱいになったというエラーが含まれていない場合は、インスタンスの CPUUtilization メトリクスを表示します。CPUUtilization メトリクスが 100% または 100% に近い場合、インスタンスにはカーネルを実行するのに十分なコンピューティング容量がない可能性があります。

T2 または T3 インスタンスの場合は、CloudWatch メトリクステーブルの CPU クレジットメトリクスを調べて、CPU クレジットがゼロかほぼゼロに近いかを決めます。CPU クレジットがゼロの場合、CPUUtilization メトリクスはインスタンスのベースラインパフォーマンスが飽和停滞状態であることを示します。インスタンスタイプに応じて、ベースラインパフォーマンスは 20%、40% などになります。

CPU 使用率を 100% または 100% に近い値で示す CloudWatch メトリクス、または T2 や T3 インスタンスの飽和状態で示すメトリクスは、インスタンスリソースの過剰使用率が原因でステータスチェックが失敗したことを示します。トラブルシューティングする方法については、リソースの使用率が高すぎたため、EC2 Linux インスタンスでインスタンスのステータスチェックが失敗しましたという項目を参照してください。どのようにトラブルシューティングすればよいですか?

ブロックデバイスエラー、ソフトウェアバグ、またはその他のメモリエラー

警告: インスタンスを停止して起動する前に、必ず以下の点を頭に入れておいてください。

  • インスタンスを停止して起動すると、インスタンスストアデータが失われます。インスタンスがインスタンスストアでバックアップされているか、データを含むインスタンスストアボリュームがある場合、インスタンスが停止するとデータが失われます。詳細については、「インスタンスのルートデバイスタイプの判別」を参照してください。
  • インスタンスが Amazon EC2 Auto Scaling グループの一部である場合、インスタンスを停止するとインスタンスが終了することがあります。Amazon EMR、AWS CloudFormation、または AWS Elastic Beanstalk を使用してインスタンスを起動した場合、インスタンスは AWS Auto Scaling グループの一部である可能性があります。このシナリオでインスタンスが削除されるかどうかは、Auto Scaling グループのインスタンススケールイン保護の設定によって異なります。インスタンスが Auto Scaling グループの一部である場合は、解決手順を開始する前に、一時的に Auto Scaling グループからインスタンスを削除してください。
  • インスタンスを停止および再開すると、インスタンスのパブリック IP アドレスが変更されます。インスタンスに外部トラフィックをルーティングする際は、パブリック IP アドレスではなく Elastic IP アドレスを使用することをお勧めします。Route 53 を使用している場合は、パブリック IP が変更されたときに Route 53 DNS レコードを更新する必要がある場合があります。
  • インスタンスのシャットダウン動作が Terminate に設定されている場合、インスタンスは停止時に終了します。これは、インスタンスのシャットダウン動作を変更することで回避できます。

ブロックデバイスエラー、ソフトウェアのバグ、または異常なシステム問題により、CPU 使用率が異常に急上昇する場合があります。CPUUtilization メトリクスが 100% で、システムログにブロックデバイス、メモリの問題、またはその他の異常なシステムエラーに関連するエラーが含まれている場合は、インスタンスを再起動または停止して起動します。