接続できないインスタンスのトラブルシューティング - Amazon Elastic Compute Cloud

接続できないインスタンスのトラブルシューティング

到達不能な Amazon EC2 インスタンスのトラブルシューティングには、次の方法を使用できます。

インスタンスの再起動

トラブルシューティングにも一般的なインスタンス管理にも、到達できないインスタンスを再起動する方法が重要です。

リセットボタンを押してコンピュータをリセットするように、Amazon EC2 コンソール、CLI、または API を使用して EC2 インスタンスをリセットできます。詳細については、「インスタンスの再起動」を参照してください。

インスタンスコンソール出力

コンソール出力は問題を診断する際に役立つツールで、特に、カーネルの問題やサービス設定の問題のトラブルシューティングを行うときに便利です。これらの問題が発生すると、SSH デーモンの開始前にインスタンスが停止したり、インスタンスに到達不能になったりする可能性があります。

  • Linux インスタンス – コンピュータに接続されている物理的なモニタに通常表示されるものとまったく同じコンソール出力がインスタンスコンソール出力に表示されます。コンソール出力は、インスタンス遷移状態 (開始、停止、再起動、終了) の直後に投稿されたバッファされた情報を返します。表示される出力は、継続的には更新されず、更新する価値があると思われる場合にのみ更新されます。

  • Windows インスタンス – インスタンスコンソール出力には、直近のシステムイベントログエラーが 3 件含まれます。

オプションで、インスタンスのライフサイクル中に最新のシリアルコンソールの出力をいつでも取得できます。このオプションは、AWS Nitro System 上に構築されたインスタンスのみでサポートされています。Amazon EC2 コンソールではサポートされていません。

注記

表示される出力のうち、保存されるのは最新の64 KB のみです。この出力は、出力の送信から少なくとも1時間使用可能です。

インスタンスの所有者のみがコンソール出力にアクセスできます。

コンソール出力を取得するには、以下のいずれかの方法を使用します。

Console
コンソール出力を取得するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. 左のナビゲーションペインで、[Instances] (インスタンス) をクリックします。

  3. インスタンスを選択してから、[アクション][モニタリングとトラブルシューティング][システムログを取得] を選択します。

Command line
コンソール出力を取得するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。

接続できないインスタンスのスクリーンショットの取得

インスタンスに接続できない場合は、インスタンスのスクリーンショットをキャプチャして、それをイメージとして表示することができます。このイメージにより、インスタンスのステータスについて可視化されるため、迅速にトラブルシューティングすることができます。

インスタンスの実行中またはクラッシュ後にスクリーンショットを生成できます。イメージは JPG 形式で生成され、100 KB 未満です。スクリーンショットにはデータ転送コストがかかりません。

制約事項

この機能は、以下の場合はサポートされません。

サポートされるリージョン

この機能は以下の リージョンで利用できます。

  • US East (N. Virginia) Region

  • US East (Ohio) Region

  • 米国西部 (北カリフォルニア) リージョン

  • 米国西部 (オレゴン) リージョン

  • アフリカ(ケープタウン)リージョン

  • アジアパシフィック (香港) リージョン

  • アジアパシフィック (ハイデラバード) リージョン

  • アジアパシフィック (ジャカルタ) リージョン

  • アジアパシフィック (メルボルン) リージョン

  • アジアパシフィック (ムンバイ) リージョン

  • アジアパシフィック(大阪)リージョン

  • Asia Pacific (Seoul) Region

  • アジアパシフィック (シンガポール) リージョン

  • アジアパシフィック (シドニー) リージョン

  • アジアパシフィック (東京) リージョン

  • カナダ (中部) リージョン

  • カナダ西部 (カルガリー) リージョン

  • 中国 (北京) リージョン

  • 中国 (寧夏) リージョン

  • 欧州 (フランクフルト) リージョン

  • 欧州 (アイルランド) リージョン

  • 欧州 (ロンドン) リージョン

  • 欧州 (ミラノ) リージョン

  • 欧州 (パリ) リージョン

  • 欧州 (スペイン) リージョン

  • 欧州 (ストックホルム) リージョン

  • 欧州 (チューリッヒ) リージョン

  • イスラエル (テルアビブ) リージョン

  • 南米 (サンパウロ) リージョン

  • 中東 (バーレーン) リージョン

  • 中東 (アラブ首長国連邦) リージョン

Console
インスタンスのスクリーンショットを取得するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. 左のナビゲーションペインの [インスタンス] を選択します。

  3. キャプチャするインスタンスを選択します。

  4. [アクション]、[モニタリングとトラブルシューティン]、[インスタンスのスクリーンショットの取得] の順に選択します。

  5. [ダウンロード] を選択するか、イメージを右クリックしてダウンロードして保存します。

Command line
インスタンスのスクリーンショットをキャプチャするには

次のいずれかのコマンドを使用できます。返されるコンテンツは base64 でエンコードされます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。

Windows インスタンスの一般的なスクリーンショット

以下の情報を使用して、サービスによって返されたスクリーンショットに基づいて、到達不能な Windows インスタンスをトラブルシューティングすることができます。

ログイン画面 (Ctrl+Alt+Delete)

コンソールスクリーンショットサービスにより以下の内容が返されました。

ログイン画面

インスタンスがログイン時に到達不可能になった場合は、ネットワーク設定または Windows リモートデスクトップサービスに問題がある可能性があります。プロセスが大量の CPU を使用している場合、インスタンスも応答しない可能性があります。

ネットワーク構成

次の情報を使用して、AWS、Microsoft Windows、およびローカル (またはオンプレミス) ネットワーク設定がインスタンスへのアクセスをブロックしていないことを確認します。

AWS ネットワーク設定
設定 検証
セキュリティグループの構成 ポート 3389 がセキュリティグループに対して開かれていることを確認します。適切なパブリック IP アドレスに接続していることを確認します。インスタンスが Elastic IP に関連付けられていない場合、パブリック IP アドレスはインスタンスが停止/起動した後に変更されます。詳細については、「リモートデスクトップからリモートコンピュータに接続できません」を参照してください。
VPC 設定 (ネットワーク ACL) Amazon VPC のアクセスコントロールリスト (ACL) がアクセスをブロックしていないことを確認します。詳細については、Amazon VPC ユーザーガイドの「ネットワーク ACL」を参照してください。
VPN の設定 仮想プライベートネットワーク (VPN) を使用して VPC に接続している場合、VPN トンネル接続を確認します。詳細については、「Amazon VPC への VPN トンネル接続のトラブルシューティング方法」を参照してください。
Windows ネットワーク設定
設定 検証
Windows ファイアウォール Windows ファイアウォールがインスタンスへの接続をブロックしていないことを確認します。リモートデスクトップのトラブルシューティングセクション「リモートデスクトップからリモートコンピュータに接続できません」にある 7 番目の項目で説明されている手順に従って、Windows ファイアウォールを無効にします。
高度な TCP/IP の設定 (静的 IP を使用) 静的 IP アドレスを設定したため、インスタンスが応答しない可能性があります。VPC の場合、ネットワークインターフェイスを作成して、インスタンスにアタッチします。

ローカルまたはオンプレミスのネットワーク設定

ローカルネットワーク設定がアクセスをブロックしていないことを確認します。インスタンスが到達不可能なため、同じ VPC 内の別のインスタンスに接続を試みます。別のインスタンスにアクセスできない場合、ローカルポリシーでアクセスが制限されていないかどうかをローカルネットワーク管理者に確認してください。

リモートデスクトップサービスの問題

ログイン時にインスタンスに接続できない場合は、インスタンスのリモートデスクトップサービス (RDS) に問題が存在する可能性があります。

ヒント

AWSSupport-TroubleshootRDP Runbook を使用して、リモートデスクトッププロトコル (RDP) での接続に影響を与える可能性のある各種設定をチェックし、変更します。詳細については、「AWS Systems Manager Automation ランブックリファレンス」の「AWSSupport-TroubleshootRDP」を参照してください。

リモートデスクトップサービスの設定
設定 検証
RDS が実行されている インスタンスで RDS が実行中であることを確認します。Microsoft 管理コンソール (MMC) サービススナップイン (services.msc) を使用してインスタンスに接続します。サービスのリストで、[リモートデスクトップサービス] が [実行中] であることを確認します。そうでない場合は、サービスを開始し、スタートアップの種類を [自動] に設定します。サービススナップインを使用してインスタンスに接続できない場合は、ルートボリュームをインスタンスからデタッチして、ボリュームのスナップショットを取得するか AMI を作成し、元のボリュームを同じアベイラビリティーゾーンの別のインスタンスにセカンダリボリュームとしてアタッチして、Start レジストリキーを変更します。完了したら、元のインスタンスにルートボリュームを再アタッチします。
RDS が有効である

サービスが開始された場合でも、無効になることがあります。ルートボリュームをインスタンスからデタッチして、ボリュームからスナップショットを取得するか AMI を作成し、元のボリュームを同じアベイラビリティーゾーンの別のインスタンスにセカンダリボリュームとしてアタッチして、「リモートレジストリを使用して EC2 インスタンスでリモートデスクトップを有効にする」で説明されているように [Terminal Server (ターミナルサーバー)] レジストリキーを変更してサービスを有効にします。

完了したら、元のインスタンスにルートボリュームを再アタッチします。

高い CPU 使用率

Amazon CloudWatch を使用して [CPUUtilization (Maximum)] メトリクスを確認します。[CPUUtilization (Maximum)] の数値が大きい場合、CPU 使用率が低下するまで待ってから再度接続してみてください。CPU 使用率が高い理由として考えられるものを以下に示します。

  • Windows Update

  • セキュリティソフトウェアによるスキャン

  • カスタム起動スクリプト

  • タスクスケジューラ

詳細については、Amazon CloudWatch ユーザーガイドの「特定のリソースの統計を取得する」を参照してください。トラブルシューティングのヒントについては、「Windows の起動直後に CPU 使用率が高い (Windows インスタンスのみ)」を参照してください。

リカバリコンソール画面

コンソールスクリーンショットサービスにより以下の内容が返されました。

リカバリコンソールのスクリーンショット

bootstatuspolicyignoreallfailures に設定されていない場合、オペレーティングシステムがリカバリコンソールで起動し、この状態でスタックする可能性があります。bootstatuspolicy 設定を ignoreallfailures に変更するには、次の手順を使用します。

デフォルトでは、AWS が提供するパブリック Windows AMI のポリシー設定は ignoreallfailures に設定されています。

  1. 接続できないインスタンスを停止します。

  2. ルートボリュームのスナップショットを作成します。ルートボリュームが /dev/sda1 としてインスタンスにアタッチされます。

    接続できないインスタンスからルートボリュームをデタッチして、ボリュームのスナップショットを取得するか AMI を作成し、同じアベイラビリティーゾーン内の別のインスタンスにセカンダリボリュームとしてアタッチします。

    警告

    一時インスタンスと元のインスタンスが同じ AMI を使用して起動された場合、追加の手順を完了する必要があります。この手順を実行しないと、ディスク署名の競合によって、ルートボリュームを復元した後、元のインスタンスを起動できなくなります。同じ AMI を使用して一時インスタンスを作成する必要がある場合は、ディスク署名の競合を回避するため、ディスク署名の衝突 の手順を完了します。

    または、一時インスタンスとして別の AMI を選択します。例えば、元のインスタンスで Windows Server 2016 用の AMI を使用している場合、Windows Server 2019 用の AMI を使用して一時インスタンスを起動します。

  3. インスタンスにログインし、コマンドプロンプトから次のコマンドを実行して bootstatuspolicy 設定を ignoreallfailures に変更します。

    bcdedit /store Drive Letter:\boot\bcd /set {default} bootstatuspolicy ignoreallfailures
  4. ボリュームを接続できないインスタンスに再アタッチし、インスタンスを再起動します。

Windows Boot Manager 画面

コンソールスクリーンショットサービスにより以下の内容が返されました。

Windows Boot Manager 画面

オペレーティングシステムのファイルシステムやレジストリで致命的な破損が発生しました。インスタンスがこの状態でスタックした場合、最新のバックアップ AMI からインスタンスを復旧するか、代わりのインスタンスを起動する必要があります。インスタンスのデータにアクセスする必要がある場合、接続できないインスタンスからルートボリュームをデタッチして、それらのボリュームからスナップショットを取得するか AMI を作成し、同じアベイラビリティーゾーン内の別のインスタンスにセカンダリボリュームとしてアタッチします。

Sysprep 画面

コンソールスクリーンショットサービスにより以下の内容が返されました。

Sysprep 画面

この画面は、Sysprep の呼び出しに EC2Config サービスを使用していない場合、または Sysprep の実行中にオペレーティングシステムでエラーが発生した場合に表示されることがあります。パスワードは、EC2Rescue を使用してリセットすることが可能です。・ それ以外の場合は、「Windows Sysprep で AMI を作成する」を参照してください。

Getting Ready 画面

コンソールスクリーンショットサービスにより以下の内容が返されました。

Getting Ready 画面

インスタンスコンソールスクリーンショットサービスを繰り返し更新し、進捗状況のリングが回っていることを確認します。リングが回っている場合、オペレーティングシステムが起動するまで待ちます。Amazon CloudWatch を使用してオペレーティングシステムがアクティブであるかどうかを確認することにより、インスタンスの [CPUUtilization (Maximum)] メトリクスも確認します。進行状況のリングが回っていない場合、インスタンスは起動プロセス中にスタックしている可能性があります。インスタンスを再起動します。再起動で問題を解決できない場合は、インスタンスを最新のバックアップ AMI から復旧するか、代わりのインスタンスを起動します。インスタンス上のデータにアクセスする必要がある場合、ルートボリュームを接続できないインスタンスからデタッチし、ボリュームのスナップショットを取得するか、AMI を作成します。その後、同じアベイラビリティーゾーン内の別のインスタンスにセカンダリボリュームとしてアタッチします。

Windows Update 画面

コンソールスクリーンショットサービスにより以下の内容が返されました。

Windows Update 画面

Windows Update プロセスがレジストリを更新中です。更新が終了するまで待機してください。更新時にデータが破損する可能性があるため、インスタンスを再起動したり停止したりしないでください。

注記

Windows Update プロセスは、更新中のサーバーのリソースを消費することがあります。この問題が頻繁に発生する場合、高速なインスタンスタイプと高速な EBS ボリュームを使用することを検討します。

Chkdsk

コンソールスクリーンショットサービスにより以下の内容が返されました。

Chkdsk 画面。

Windows がドライブで chkdsk ツールを実行し、ファイルシステムの完全性を確認し、論理的なファイルシステムのエラーを修正しています。プロセスが完了するまで待ちます。

ホストコンピュータに障害が発生した場合のインスタンスの復旧

基になるホストコンピュータのハードウェアで復旧不可能な問題が発生した場合、AWS はインスタンスの停止イベントをスケジュールすることがあります。このようなイベントは事前に E メールで通知されます。

障害が発生したホストコンピュータで実行されている Amazon EBS-backed インスタンスを復旧するには
  1. インスタンスストアボリュームの重要なデータを Amazon EBS または Amazon S3 にバックアップします。

  2. インスタンスを停止します。

  3. インスタンスを起動します。

  4. 重要なデータを復元します。

詳細については、「Amazon EC2 インスタンスの停止と起動」を参照してください。

障害が発生したホストコンピュータで実行されている Instance-store Backed インスタンスを復旧するには
  1. インスタンスから AMI を作成します。

  2. イメージを Amazon S3 にアップロードします。

  3. 重要なデータを Amazon EBS または Amazon S3 にバックアップします。

  4. インスタンスを終了します。

  5. AMI から新しいインスタンスを起動します。

  6. 重要なデータを新しいインスタンスに復元します。