Amazon EC2 Windows インスタンスの開始に関する問題のトラブルシューティング - Amazon Elastic Compute Cloud

Amazon EC2 Windows インスタンスの開始に関する問題のトラブルシューティング

次は、Amazon EC2 Windows インスタンスのパスワードとアクティベーションに関する問題の解決に役立つトラブルシューティングのヒントです。

"パスワードは使用できません"

リモートデスクトップを使用して Windows インスタンスに接続するには、アカウントとパスワードを指定する必要があります。提供されるアカウントとパスワードは、インスタンスを起動するときに使用した AMI に基づいています。管理者アカウント用に自動生成されたパスワードを取得することも、AMI が作成された元のインスタンスで使われていたアカウントとパスワードを使用することもできます。

カスタム Windows AMI を使用して起動したインスタンスの管理者アカウントのパスワードを生成できます。パスワードを生成するには、AMI を作成する前にオペレーティングシステムでいくつかの設定を構成する必要があります。詳細については、「Amazon EBS-backed AMI を作成する」を参照してください。

ランダムなパスワードを生成するように Windows インスタンスが設定されていない場合、コンソールを使用して自動生成パスワードを取得しようとすると、次のエラーメッセージが表示されます。

Password is not available.
The instance was launched from a custom AMI, or the default password has changed. A
password cannot be retrieved for this instance. If you have forgotten your password, you can
reset it using the Amazon EC2 configuration service. For more information, see Passwords for a
Windows Server instance.

インスタンスのコンソール出力を確認して、インスタンスを起動するのに使用した AMI がパスワード生成を無効にして作成されたかどうかを調べます。パスワード生成が無効になっている場合、コンソール出力には次の表示が含まれます。

Ec2SetPassword: Disabled

パスワード生成が無効で、元のインスタンスのパスワードを覚えていない場合は、このインスタンスのパスワードをリセットできます。詳細については、「Amazon EC2 Windows インスタンスの Windows 管理者パスワードをリセットする」を参照してください。

"パスワードはまだ使用できません"

リモートデスクトップを使用して Windows インスタンスに接続するには、アカウントとパスワードを指定する必要があります。提供されるアカウントとパスワードは、インスタンスを起動するときに使用した AMI に基づいています。管理者アカウント用に自動生成されたパスワードを取得することも、AMI が作成された元のインスタンスで使われていたアカウントとパスワードを使用することもできます。

パスワードは数分以内に使用可能となります。パスワードが使用できない場合、コンソールを使用して自動生成パスワードを取得すると、次のエラーメッセージが表示されます。

Password not available yet.
Please wait at least 4 minutes after launching an instance before trying to retrieve the 
auto-generated password.

4 分以上経ってもまだパスワードを取得できない場合、インスタンスの起動エージェントがパスワードを生成するように設定されていない可能性があります。これは、コンソール出力が空であるかチェックすることで、確認できます。詳細については、「コンソールの出力を取得できない」を参照してください。

Management Portal へのアクセスに使用されている AWS Identity and Access Management (IAM) アカウントで、ec2:GetPasswordData アクションが許可されていることも確認します。IAM のアクセス許可の詳細については、「IAM とは」を参照してください。

"Windows パスワードを取得できません"

管理者アカウントの自動生成パスワードを取得するには、インスタンスの起動時に指定したキーペアのプライベートキーを指定する必要があります。インスタンスの起動時にキーペアを指定しなかった場合、次のメッセージが表示されます。

Cannot retrieve Windows password

このインスタンスを終了し、同じ AMI を使用して新しいインスタンスを起動して、キーペアを指定することができます。

"メタデータサービスを待っています"

Windows インスタンスは、インスタンスメタデータから情報を取得した後、起動します。デフォルトでは、WaitForMetaDataAvailable 設定により、必ず EC2Config サービスがインスタンスメタデータにアクセスできるようになってから起動プロセスが続行されます。詳細については、「インスタンスメタデータを使用して EC2 インスタンスを管理する」を参照してください。

インスタンスがインスタンスの接続性テストに合格しない場合は、この問題を解決するため、次の操作を試してください。

  • VPC の CIDR ブロックを確認します。Windows インスタンスは、IP アドレス範囲が 224.0.0.0 から 255.255.255.255 (クラス D とクラス E の IP アドレス範囲) の VPC で起動された場合、正しく起動できません。これらの IP アドレス範囲は予約済みで、ホストデバイスに割り当てることはできません。RFC 1918 に指定されているように、プライベート (パブリックにルーティングできない) IP アドレス範囲からの CIDR ブロックを持つ VPC を作成することをお勧めします。

  • システムが静的 IP アドレスで設定されている可能性があります。ネットワークインターフェイスを作成して、インスタンスにアタッチします。

  • 接続できない Windows インスタンスで DHCP を有効にするには
    1. 影響のあるインスタンスを停止し、ルートボリュームをデタッチします。

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

      警告

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

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

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

    5. ロードしたキーを選択し、ControlSet001\Services\Tcpip\Parameters\Interfaces に移動します。GUID ごとに、それぞれのネットワークインターフェイスが表示されています。適切なネットワークインターフェイスを選択します。DHCP が無効で、静的 IP アドレスが割り当てられている場合、EnableDHCP は 0 に設定されています。DHCP を有効にするには、EnableDHCP を 1 に設定し、次のキーが存在する場合は削除します: NameServerSubnetMaskIPAddressDefaultGateway。再度キーを選択し、[File] メニューの [Unload Hive] を選択します。

      注記

      複数のネットワークインターフェイスがある場合、DHCP を有効にするに正しいインターフェイスを指定する必要があります。正しいネットワークインターフェイスを特定するには、次のキー値 NameServerSubnetMaskIPAddressDefaultGateway を確認します。これらの値は、前のインスタンスの静的設定を表示します。

    6. (オプション) DHCP がすでに有効な場合、メタデータサービスへのルーティングがない可能性があります。EC2Config を更新すると、この問題を解決できます。

      1. EC2Config サービスの最新バージョンをダウンロードしてインストールします。このサービスをインストールする方法の詳細については、「EC2Config の最新バージョンのインストール」を参照してください。

      2. .zip ファイルを、アタッチしたドライブの Temp ディレクトリに展開します。

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

      4. ロードしたキーを選択し、Microsoft\Windows\CurrentVersion に移動します。RunOnce キーを選択します。(このキーが存在しない場合、[CurrentVersion] を右クリックし、[New] をポイントし、[Key] を選択して、キーに RunOnce という名前をつけてください。) 右クリックして [New] をポイントし、[tring Value] を選択します。名前に Ec2Install、データに C:\Temp\Ec2Install.exe -q と入力します。

      5. 再度キーを選択し、[File] メニューの [Unload Hive] を選択します。

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

      警告

      以下の手順では、レジストリエディタを使用して Windows レジストリを編集する方法を説明します。Windows レジストリに慣れていない場合や、レジストリエディターを使用して安全に変更する方法については、「レジストリを構成する」を参照してください。

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

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

      3. [Windows Boot Manager] を入力して、[次を検索] を選択します。

      4. 11000001 というキーを選択します。このキーは、前の手順で検索したキーの兄弟です。

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

      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 コマンドを実行して、ボリュームを選択します。(ディスク番号が 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
    8. [ディスク管理] ユーティリティを使用して、ドライブをオフラインにします。

      注記

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

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

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

    11. 影響のあるインスタンスを開始します。

インスタンスに接続されたら、インスタンスからインターネットブラウザを開いて、次のメタデータサーバーの URL を入力します。

http://169.254.169.254/latest/meta-data/

メタデータサーバーに接続できない場合は、問題解決のために以下を試してください。

  • EC2Config サービスの最新バージョンをダウンロードしてインストールします。このサービスをインストールする方法の詳細については、「EC2Config の最新バージョンのインストール」を参照してください。

  • Windows インスタンスが RedHat PV ドライバーを実行しているかどうかを確認します。実行いている場合、Citrix PV ドライバーに更新してください。詳細については、「EC2 Windows インスタンスでの PV ドライバーのアップグレード」を参照してください。

  • ファイアウォール、IPSec、およびプロキシ設定により、メタデータサービス (169.254.169.254) または AWS KMS サーバーへの送信トラフィックがブロックされていないことを確認します (アドレスは、TargetKMSServerC:\Program Files\Amazon\Ec2ConfigService\Settings\ActivationSettings.xml 要素で指定されています)。

  • 次のコマンドを使用して、メタデータサービス (169.254.169.254) にルーティングされていることを確認します。

    route print
  • インスタンスのアベイラビリティーゾーンに影響を与える可能性があるネットワークの問題を確認します。http://status.aws.amazon.com/ に移動します。

"Windows のライセンス認証ができません"

Windows インスタンスは、Windows AWS KMS のアクティブ化を使用します。インスタンスから A problem occurred when Windows tried to activate. Error Code 0xC004F074 サーバーにアクセスできない場合、AWS KMS というメッセージが表示される可能性があります。Windows は 180 日ごとにライセンス認証を行う必要があります。EC2Config では、確実に、引き続き Windows でアクティブ化されるように、アクティブ化の期限が切れる前に AWS KMS サーバーに接続します。

Windows のライセンス認証の問題が発生した場合は、この問題を解決するため、次の手順に従います。

EC2Config の場合 (Windows Server 2012 R2 AMI 以前)
  1. EC2Config サービスの最新バージョンをダウンロードしてインストールします。このサービスをインストールする方法の詳細については、「EC2Config の最新バージョンのインストール」を参照してください。

  2. インスタンスにログインして、C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml のファイルを開きます。

  3. config.xml ファイルで Ec2WindowsActivate プラグインを見つけます。状態を [Enabled] に変更し、変更を保存します。

  4. [Windows Services snap-in] で、EC2Config サービスを再開するか、インスタンスを再起動します。

これによってライセンス認証の問題が解決しない場合は、追加の手順に従います。

  1. AWS KMS ターゲットを設定: C:\> slmgr.vbs /skms 169.254.169.250:1688

  2. Windows を有効化: C:\> slmgr.vbs /ato

EC2Launch の場合 (Windows Server 2016 AMI 以降)
  1. 管理者権限を持つ PowerShell プロンプトから、EC2Launch モジュールをインポートします。

    PS C:\> Import-Module "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1"
  2. Add-Routes 関数を呼び出して、新しいルートのリストを表示します。

    PS C:\> Add-Routes
  3. Set-ActivationSettings 関数を呼び出します。

    PS C:\> Set-Activationsettings
  4. 次のスクリプトを実行して、Windows のライセンス認証を行います。

    PS C:\> cscript "${env:SYSTEMROOT}\system32\slmgr.vbs" /ato

EC2Config と EC2Launch の両方で、それでもまだライセンス認証エラーを受け取る場合は、次の情報を確認します。

  • AWS KMS サーバーにルーティングされていることを確認します。C:\Program Files\Amazon\Ec2ConfigService\Settings\ActivationSettings.xml を開き、TargetKMSServer エレメントを配置します。以下のコマンドを実行し、これらの AWS KMS サーバーのアドレスが表示されるかどうかを確認します。

    route print
  • AWS KMS クライアントのキーが設定されていることを確認します。次のコマンドを実行し、出力を確認します。

    C:\Windows\System32\slmgr.vbs /dlv

    出力に Error: product key not found が含まれる場合、AWS KMS クライアントのキーは設定されていません。AWS KMS クライアントのキーが設定されていない場合は、Microsoft の記事 (AWS KMS クライアントセットアップキー) の説明に従ってクライアントのキーを検索し、次のコマンドを実行して AWS KMS クライアントのキーを設定します。

    C:\Windows\System32\slmgr.vbs /ipk client_key
  • システムの時刻とタイムゾーンが正しいことを確認します。UTC 以外のタイムゾーンを使用している場合は、時刻が正確であることを確認するために、レジストリキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal を追加して 1 に設定します。

  • Windows ファイアウォールが有効な場合、次のコマンドを使用して一時的に無効にします。

    netsh advfirewall set allprofiles state off

"Windows が正規品ではありません (0x80070005) "

Windows インスタンスは、Windows AWS KMS のアクティブ化を使用します。インスタンスでライセンス認証のプロセスを完了できない場合、Windows が正規品でないことを示しています。

"Windows のライセンス認証ができません" をお試しください。

"ライセンスを発行できるターミナルサーバーライセンスサーバーがありません"

Windows Server ではデフォルトで、同時に 2 人のリモートデスクトップ接続のユーザーにライセンスが付与されます。2 人を超えるユーザーに、Windows インスタンスへのリモートデスクトップ接続による同時接続を提供する必要がある場合は、リモートデスクトップサービスクライアントアクセスライセンス (CAL) を購入し、リモートデスクトップセッションホストおよびリモートデスクトップライセンスサーバーの役割をインストールします。

次の点を確認します。

  • 最大同時 RDP セッション数を超えている。

  • Windows のリモートデスクトップサービスの役割をインストールした。

  • ライセンスの有効期限が切れている。ライセンスの有効期限が切れている場合、Windows インスタンスにユーザーとして接続できません。以下を試すことができます。

    • /admin パラメータを使用して、コマンドラインから、たとえば次のようにインスタンスに接続します。

      mstsc /v:instance /admin

      詳細については、Microsoft の記事の「Access Remote Desktop Via Command Line」を参照してください。

    • データを回復するには、インスタンスを停止し、Amazon EBS ボリュームをデタッチして、同じアベイラビリティーゾーンにある別のインスタンスにアタッチします。

「一部の設定は当組織によって管理されています」

最新の Windows Server AMI から起動したインスタンスには、「Some settings are managed by your organization (一部の設定は当組織によって管理されています)」で始まる Windows Update ダイアログメッセージが表示される場合があります。このメッセージは Windows Server 内の変更の結果として表示され、Windows Update の動作やお客様による更新設定管理能力には影響を及ぼしません。

警告を削除するには
  1. gpedit.msc を開き、[コンピュータの構成]、[管理用テンプレート]、[Windows コンポーネント]、[Windows Update] の順に移動します。[Configure Automatic Update (自動更新の設定)] を編集し、[enabled (有効)] に設定します。

  2. コマンドプロンプトで、gpupdate /force を使用してグループポリシーを更新します。

  3. Windows Update の設定を閉じて再度開きます。設定が組織によって管理されていることを示す上記のメッセージが表示され、その後に次のように表示されます。"計測対象の接続 (料金がかかる場合があります) を除き、アップデートは自動的にダウンロードされます。その場合、Windows が正常に動作するために必要なアップデートが自動的にダウンロードされます。"

  4. gpedit.msc に戻り、グループポリシーを [not configured (設定されていません)] に戻します。gpupdate /force をもう一度実行します。

  5. コマンドプロンプトを閉じ、数分待ちます。

  6. Windows Update の設定を再度開きます。「一部の設定は当組織によって管理されています。」というメッセージは表示されません。