Amazon Elastic Compute Cloud
Windows インスタンス用ユーザーガイド

Windows インスタンスのトラブルシューティング

次の手順とヒントは、Amazon EC2 Windows インスタンスの問題のトラブルシューティングに役立ちます。

さらにサポートが必要な場合は、Amazon EC2 forum に質問を投稿することができます。インスタンス ID と、コンソール出力により表示されるものも含めたエラーメッセージを必ず投稿してください。

インスタンスの問題のトラブルシューティングの詳細については、「EC2Rescue for Windows Server の使用」を参照してください。PV ドライバーに関する問題のトラブルシューティングの詳細については、「PV ドライバーのトラブルシューティング」を参照してください。

Windows の起動後すぐに高い CPU 使用率を実現します

Windows Update が、[更新プログラムを確認するが、ダウンロードとインストールを行うかどうかは選択する] (デフォルトのインスタンス設定) に設定されている場合は、この確認によってインスタンスの CPU の 50 ~ 99% が消費される可能性があります。この CPU の消費によってアプリケーションの問題が発生する場合は、[コントロールパネル] で Windows Update の設定を手動で変更するか、または Amazon EC2 ユーザーデータフィールドで以下のスクリプトを使用できます。

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 3 /f net stop wuauserv net start wuauserv

このスクリプトを実行するときに /d の値を指定します。デフォルト値は 3 です。以下に示しているのは、可能な値です。

  • 更新プログラムを確認しない

  • 更新プログラムを確認するが、ダウンロードとインストールを行うかどうかは選択する

  • 更新プログラムをダウンロードするが、インストールを行うかどうかは選択する

  • 更新プログラムを自動的にインストールする

Amazon EBS-backed インスタンスのユーザーデータを変更するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

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

  3. [Actions] を選択して [Instance State] を選択し、[Stop] を選択します。

  4. 確認ダイアログボックスで [Yes, Stop] を選択します。インスタンスが停止するまで、数分かかる場合があります。

  5. インスタンスが選択された状態のまま、[Actions] を選択し、[Instance Settings] を選択して、[View/Change User Data] を選択します。インスタンスの実行中はユーザーデータを変更できないことに注意してください。表示することはできます。

  6. [View/Change User Data] ダイアログボックスで、ユーザーデータを更新し、[Save] を選択します。

インスタンスのユーザーデータを変更したら、そのインスタンスを実行できます。詳細については、「ユーザーデータの実行」を参照してください。

コンソール出力がない

Windows インスタンスの場合は、インスタンスコンソールにインスタンスで実行されている EC2Config サービスからの出力が表示されます。出力には、Windows 起動プロセス中に実行されたタスクのステータスが記録されます。Windows が正常に起動した場合、記録される最後のメッセージは Windows is Ready to use です。コンソールにはイベントログメッセージも表示できますが、この機能はデフォルトでは有効になっていない点に注意してください。詳細については、「EC2 サービスプロパティ」を参照してください。

Amazon EC2 コンソールを使用してインスタンスのコンソール出力を取得するには、インスタンスを選択して [Actions (アクション)] を選択し、[Instance Settings (インスタンス設定)] を選択して [Get System Log (システムログの取得)] を選択します。コマンドラインを使用してコンソール出力を取得するには、get-console-output (AWS CLI) コマンド、または Get-EC2ConsoleOutput (AWS Tools for Windows PowerShell) コマンドを使用します。

コンソール出力が空の場合、設定ファイルが正しく設定されていない、Windows が正しく起動しなかったなど、EC2Config サービスに問題があることを示している可能性があります。問題を修正するには、EC2Config の最新バージョンをダウンロードしてインストールします。詳細については、「EC2Config の最新バージョンのインストール」を参照してください。

リモートデスクトップからリモートコンピュータに接続できません

インスタンスへの接続関連の問題を解決するには、以下を実行します。

  • 正しいパブリック DNS ホスト名を使用していることを確認します(Amazon EC2 コンソールでは、インスタンスを選択し、詳細ペインの [Public DNS (IPv4) (パブリック DNS (IPv4))] を確認します)。 インスタンスが VPC 内にあり、パブリック DNS 名が表示されない場合は、DNS ホスト名を有効にする必要があります。詳細については、「Amazon VPC ユーザーガイド」の「VPC での DNS の使用」を参照してください。

  • インスタンスにパブリック IPv4 アドレスがあることを確認します。そうでない場合は、Elastic IP アドレスをインスタンスに関連付けることができます。詳細については、「Elastic IP アドレス」を参照してください。

  • IPv6 アドレスを使用してインスタンスに接続するには、ローカルコンピュータに IPv6 があり、IPv6 アドレスを使用するように設定されていることを確認します。Windows Server 2008 SP2 AMI 以前からインスタンスを起動した場合は、インスタンスに割り当てられている IPv6 アドレスを自動的に認識するようにインスタンスは設定されていません。詳細については、「インスタンスでの IPv6 の設定」 (Amazon VPC ユーザーガイド) を参照してください。

  • セキュリティグループに、RDP アクセスを許可するルールがあることを確認します。詳細については、「セキュリティグループの作成」を参照してください。

  • パスワードをコピーしたがエラー Your credentials did not work が発生した場合、プロンプトが表示されたら手動で入力してください。パスワードをコピーしたときに、1 文字欠けていたり、余分な空白文字が含まれている可能性があります。

  • インスタンスのステータスチェックが成功していることを確認します。詳細については、「インスタンスのステータスチェック」および「ステータスチェックに失敗したインスタンスのトラブルシューティング」(Linux インスタンス用 Amazon EC2 ユーザーガイド) を参照してください。

  • サブネットのルートテーブルに、VPC 外へのすべてのトラフィックを VPC のインターネットゲートウェイに送信するルートがあることを確認します。詳細については、『Amazon VPC ユーザーガイド』の「カスタムルートテーブルを作成する」 (インターネットゲートウェイ) を参照してください。

  • Windows ファイアウォール、または他のファイアウォールのソフトウェアによって、インスタンスへの RDP トラフィックがブロックされていないことを確認します。Windows ファイアウォールを無効にし、セキュリティグループのルールを使用してインスタンスへのアクセスを制御することをお勧めします。AWSSupport-TroubleshootRDP を使用して SSM エージェントを使用して Windows ファイアウォールプロファイルを無効にする を行うことができます。SSM 用に設定されていない Windows インスタンスで Windows ファイアウォールを無効にするには、AWSSupport-ExecuteEC2Rescue を使用するか、以下の手動ステップを使用します。

手動ステップ
  1. 影響のあるインスタンスを停止し、ルートボリュームをデタッチします。

  2. 影響のあるインスタンスと同じアベイラビリティーゾーンで一時インスタンスを起動します。

    警告

    一時インスタンスが元のインスタンスと同じ AMI に基づいている場合、追加の手順を完了する必要があります。この手順を実行しない場合、ディスク署名の競合によって、ルートボリュームを復元した後、元のインスタンスを起動できなくなります。または、一時インスタンスとして別の AMI を選択します。たとえば、元のインスタンスが Windows Server 2008 R2 用 AWS Windows AMI を使用している場合は、Windows Server 2012 用の AWS Windows AMI を使用して一時インスタンスを起動します。

  3. 影響のあるインスタンスから一時インスタンスにルートボリュームをアタッチします。一時インスタンスに接続し、[Disk Management] ユーティリティを開いて、ドライブをオンラインにします。

  4. [Regedit] を開き、[HKEY_LOCAL_MACHINE] を選択します。[File] メニューの [Load Hive] を選択します。ドライブを選択して、ファイル [Windows\System32\config\SYSTEM] を開き、プロンプトが表示されたらキー名を指定します (任意の名前を使用できます)。

  5. ロードしたキーを選択し、ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy に移動します。xxxxProfile というフォームの名前のキーをそれぞれ選択し、EnableFirewall の値を 1 から 0 に変更します。再度キーを選択し、[File] メニューの [Unload Hive] を選択します。

  6. (オプション) 一時インスタンスが元のインスタンスと同じ AMI に基づいている場合、以下のステップを完了する必要があります。このステップを実行しない場合、ディスク署名の競合によって、ルートボリュームを復元した後、元のインスタンスを起動できなくなります。

    警告

    次の手順は、レジストリエディタを使用して Windows レジストリを編集する方法を示しています。Windows レジストリについてよく知らない場合や、レジストリエディタを使用して安全に変更を適用する方法がよくわからない場合は、「レジストリの設定」を参照してください。

    1. コマンドプロンプトを開き、「regedit.exe」と入力して、Enter キーを押します。

    2. レジストリエディタでコンテキストメニュー (右クリック) から [HKEY_LOCAL_MACHINE] を選択し、[Find] を選択します。

    3. Windows Boot Manager」と入力し、[Find Next] を選択します。

    4. [11000001] というキーを選択します。このキーは、前のステップで検出したキーの兄弟です。

    5. 右のペインで [Element] を選択し、コンテキストメニュー (右クリック) から [Modify] を選択します。

    6. データ内のオフセット 0x38 で 4 バイトのディスク署名を見つけます。バイトの順序を逆にしてディスク署名を作成し、書き留めます。たとえば、次のデータで表されるディスク署名は E9EB3AA5 です。

      ... 0030 00 00 00 00 01 00 00 00 0038 A5 3A EB E9 00 00 00 00 0040 00 00 00 00 00 00 00 00 ...
    7. コマンドプロンプトウィンドウで、次のコマンドを実行して Microsoft DiskPart を起動します。

      diskpart
    8. 次の DiskPart のコマンドを実行してボリュームを選択します (Disk Management ユーティリティを使用して、ディスク番号が 1 であることを確認できます)。

      DISKPART> select disk 1 Disk 1 is now the selected disk.
    9. 次の DiskPart のコマンドを実行してディスク署名を取得します

      DISKPART> uniqueid disk Disk ID: 0C764FA8
    10. 前の手順で表示されたディスク署名が、メモしておいた BCD のディスク署名と一致しない場合、次の DiskPart のコマンドを使用してディスク署名が一致するように変更します。

      DISKPART> uniqueid disk id=E9EB3AA5
  7. [Disk Management] ユーティリティを使用して、ドライブをオフラインにします。

    注記

    一時インスタンスが影響を受けたインスタンスと同じオペレーティングシステムを実行している場合、ドライブは自動的にオフラインになるため、手動でドライブをオフラインにする必要はありません。

  8. ボリュームを一時インスタンスからデタッチします。一時インスタンスをそれ以上使用しない場合は、終了しても構いません。

  9. /dev/sda1 としてアタッチして、影響のあるインスタンスのルートボリュームを復元します。

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

  • Active Directory ドメインの一部ではないインスタンスでネットワークレベル認証が無効になっていることを確認します (AWSSupport-TroubleshootRDP を使用して NLA を無効にする を行います)。

  • 許可されている最大の同時 RDP セッション数より多くのセッションを使用しようとすると、セッションは終了され、「Your Remote Desktop Services session has ended. Another user connected to the remote computer, so your connection was lost.」というメッセージが表示されます。デフォルトでは、インスタンスに許可される同時 RDP セッション数は 2 です。

macOS RDP クライアント使用時のエラー

Microsoft ウェブサイトのリモートデスクトップ接続クライアントを使用して Windows Server 2012 R2 インスタンスに接続する場合は、次のエラーが発生する可能性があります。

Remote Desktop Connection cannot verify the identity of the computer that you want to connect to.

Mac App Store から Microsoft リモートデスクトップアプリをダウンロードし、そのアプリを使用して、インスタンスに接続します。

RDP にデスクトップではなく黒い画面が表示される

この問題を解決するには、以下の手順を実行します。

  • コンソール出力に追加情報がないか、確認します。Amazon EC2 コンソールを使用してインスタンスのコンソール出力を取得するには、インスタンスを選択して [アクション] を選択し、[インスタンス設定] を選択して [Get System Log (システムログの取得)] を選択します。

  • 最新バージョンの RDP クライアントを実行していることを確認します。

  • RDP クライアントのデフォルト設定を使用してください。詳細については、「Remote Session Environment」を参照してください。

  • リモートデスクトップ接続を使用している場合、次のように /admin オプションを使用して開始してみてください。

    mstsc /v:instance /admin
  • サーバーで全画面アプリケーションが実行されている場合、応答を停止する可能性があります。Ctrl+Shift+Esc キーを使用して Windows タスクマネージャーを起動し、アプリケーションを閉じます。

  • サーバーの使用率が高すぎる場合、応答を停止する可能性があります。Amazon EC2 コンソールを使用してインスタンスを監視するには、インスタンスを選択し、[Monitoring] をクリックします。サイズの大きいインスタンスタイプに変更する必要がある場合は、「インスタンスタイプを変更する」を参照してください。

インスタンスのネットワーク接続が失われる、または、スケジュールされたタスクが予定通りに実行されない

インスタンスを再起動するとネットワーク接続が失われる場合は、インスタンスの時刻設定が間違っている可能性があります。

デフォルトで、Windows インスタンスは協定世界時 (UTC) を使用します。別のタイムゾーンにインスタンスの時刻を設定して再起動すると、時刻がずれて、インスタンスの IP アドレスが一時的に失われます。最終的にインスタンスのネットワーク接続は復旧されますが、これには数時間かかることがあります。インスタンスがネットワーク接続を復旧するのにかかる時間は、UTC と他のタイムゾーンとの時差に左右されます。

時刻に関するこの同じ問題によって、スケジュールされたタスクが予定通りに実行されないことがあります。この場合、インスタンスの時刻が正しくないため、スケジュールされたタスクは予定通りに実行されません。

UTC 以外のタイムゾーンを永続的に使用するには、RealTimeIsUniversal レジストリキーを設定する必要があります。このキーがない場合、インスタンスは再起動後、UTC を使用します。

ネットワーク接続を失う原因となる時刻の問題を解決するには

  1. 推奨 PV ドライバーを実行していることを確認します。詳細については、「Windows インスタンスで PV ドライバーをアップグレードする」を参照してください。

  2. 次のレジストリキーが存在し、1 に設定されていることを確認します: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Windows Server 2012 R2 をネットワークで使用できない

ネットワークで使用できない Windows Server 2012 R2 インスタンスをトラブルシューティングする方法の詳細については、「Windows Server 2012 R2 でインスタンスの再起動後にネットワークおよびストレージとの接続が失われる」を参照してください。

AWS Systems Manager を使用したリモートデスクトップ接続問題のトラブルシューティング

AWSSupport-TroubleshootRDP

AWSSupport-TroubleshootRDP 自動化ドキュメントでは、リモートデスクトッププロトコル (RDP) の接続に影響する可能性があるターゲットインスタンスの一般設定 (RDP ポートネットワークレイヤー認証 (NLA)Windows ファイアウォールプロファイルなど) を確認または修正できます。デフォルトでは、このドキュメントは以上の設定の値を読み取って出力します。

AWSSupport-TroubleshootRDP 自動化ドキュメントは、AWS Systems Manager 用に有効化されているインスタンス (マネージドインスタンスとも呼ばれます) でのみ使用できます。インスタンスには、SSM エージェントがインストールされており、Systems Manager へのアクセス許可を持つ IAM ロールがアタッチされている必要があります。ターゲットインスタンスの RDP の一般設定を変更するには、デフォルトのパラメータ値を変更する必要があります。

  1. Systems Manager コンソールにログインします。

  2. 障害が発生したインスタンスと同じリージョンで操作をしていることを確認します。

  3. AWSSupport-TroubleshootRDP ドキュメントを開きます。

  4. [Execution Mode (実行モード)] で、[Execute the entire automation at once (自動化全体を一度で実行)] を選択します。

  5. [入力パラメーター] の [InstanceId] フィールドで、[Show interactive instance picker (インタラクティブなインスタンスピッカーを表示)] を有効にします。

  6. Amazon EC2 インスタンスを選択します。注意:リストにインスタンスが表示されない場合は、Systems Manager では使用できません。SSM エージェントの AWS Identity and Access Management (IAM) を設定する方法については、「システムマネージャーのインスタンスプロファイルを作成する」を参照してください。

  7. を確認し、[Execute automation (自動化を実行)] を選択します。

  8. 実行の進行状況をモニタリングするには、[Execution status (実行ステータス)] で、ステータスが [保留中] から [成功] に変わるのを待ちます。[出力] を展開して結果を表示します。個別のステップの出力を表示するには、[Executed Steps (実行済みのステップ)] で [Step ID (ステップ ID)] を選択します。

以下の例では、AWSSupport-TroubleshootRDP を使用して一般的なトラブルシューティングタスクを実行する方法を示します。INSTANCEIDREGION は実際の値に置き換えてください。

現在の RDP ステータスを確認する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=INSTANCEID" --region REGION

AWS Systems Manager コンソールへのディープリンク:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=REGION#documentVersion=$LATEST

Windows ファイアウォールを無効にする

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=INSTANCEID,Firewall=Disable" --region REGION

AWS Systems Manager コンソールへのディープリンク:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=REGION#documentVersion=$LATEST&Firewall=Disable

ネットワークレベル認証を無効にする

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=INSTANCEID,NLASettingAction

AWS Systems Manager コンソールへのディープリンク:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=REGION#documentVersion

RDP サービスのスタートアップタイプを自動に設定して RDP サービスを開始する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=INSTANCEID,RDPServiceStartupType=Auto, RDPServiceAction=Start" --region REGION

AWS Systems Manager コンソールへのディープリンク:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=REGION#documentVersion=$LATEST&RDPServiceStartupType=Auto&RDPServiceAction=Start

デフォルトの RDP ポート (3389) を復元する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=INSTANCEID,RDPPortAction=Modify" --region REGION

AWS Systems Manager コンソールへのディープリンク:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=REGION#documentVersion=$LATEST&RDPPortAction=Modify

リモート接続を許可する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=INSTANCEID,RemoteConnections=Enable" --region REGION

AWS Systems Manager コンソールへのディープリンク:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=REGION#documentVersion=$LATEST&RemoteConnections=Enable

AWSSupport-ExecuteEC2Rescue

AWSSupport-ExecuteEC2Rescue 自動化ドキュメントでは、EC2Rescue for Windows Server の使用 を使用して EC2 インスタンスの接続と RDP 問題の自動的なトラブルシューティングと復元を行います。詳細については、「到達不可能なインスタンスでの EC2Rescue ツールの実行」を参照してください。

注記

AWSSupport-ExecuteEC2Rescue 自動化ドキュメントは、任意の Amazon EC2 インスタンスで使用できますが、インスタンスの停止と再起動が必要です。Systems Manager Automation は、インスタンスを停止して Amazon マシンイメージ (AMI) を作成します。インスタンスストアボリュームに保存されているデータは失われます。Elastic IP を使用していない場合、パブリック IP アドレスが変わります。詳細については、「到達不可能なインスタンスでの EC2Rescue ツールの実行」を参照してください。

  1. Systems Manager コンソールを開きます。

  2. 障害が発生した Amazon EC2 インスタンスと同じリージョンで操作をしていることを確認します。

  3. AWSSupport-ExecuteEC2Rescue ドキュメントを開きます。

  4. [Execution Mode (実行モード)] で、[Execute the entire automation at once (自動化全体を一度で実行)] を選択します。

  5. [入力パラメーター] セクションの [UnreachableInstanceId] に、到達不可能なインスタンスの Amazon EC2 インスタンス ID を入力します。

  6. (オプション) Amazon EC2 インスタンスのトラブルシューティング用にオペレーティングシステムレベルのログを収集する場合は、[LogDestination] に Amazon Simple Storage Service (Amazon S3) バケット名を入力します。ログは、指定したバケットに自動的にアップロードされます。

  7. [Execute automation] を選択します。

  8. 実行の進行状況をモニタリングするには、[Execution status (実行ステータス)] で、ステータスが [保留中] から [成功] に変わるのを待ちます。[出力] を展開して結果を表示します。個別のステップの出力を表示するには、[Executed Steps (実行済みのステップ)] で [Step ID (ステップ ID)] を選択します。