Windows Server インスタンスの作成と管理

このガイドでは、Google Compute Engine 上に Windows Server インスタンスを作成する方法について説明します。SQL Server が事前にインストールされたインスタンスの作成手順については、SQL Server インスタンスの作成をご覧ください。

Compute Engine 上で実行できる Windows Server インスタンスと Windows アプリケーションの詳細については、Compute Engine での Windows をご覧ください。

始める前に

Windows Server インスタンスの作成

Windows Server インスタンスを作成するには、必要とする特定の Windows バージョンに対応するイメージ ファミリーを指定します。Compute Engine には複数のバージョンの Windows Server が用意されています。そのほとんどは、通常のイメージとしても、Shielded VMベータ版イメージとしても入手できます。Shielded VM イメージは、UEFI 準拠のファームウェア、セキュアブート、vTPM で保護されたメジャード ブートなどのセキュリティ機能を備えています。インスタンス用に SSD ストレージを選択した場合、Shielded VM の整合性のモニタリング機能は利用できません。データのシールドに vTPM を使用することもできません。利用可能なイメージ ファミリーのリストについては、公開イメージをご覧ください。

Windows Server インスタンスを作成して kms.windows.googlecloud.com サーバーへの必要な接続を設定するには、次のいずれかのオプションを使用します。

有効化に外部 IP を使用する Windows Server インスタンスを作成する

Windows Server インスタンスにはデフォルトで、Windows Server が kms.windows.googlecloud.com に接続してそのライセンスを有効化するために使用できる外部 IP が含まれています。内部 IP アドレスのみを使用する Windows Server インスタンスを作成する必要がある場合は、有効化にプライベート Google アクセスを使用する Windows Server インスタンスを作成するをご覧ください。

ネットワークでインスタンス ベースの NAT ゲートウェイを使用している場合、NAT ゲートウェイをバイパスして default-internet-gateway 経由で Windows 有効化リクエストをルーティングするようにネットワークを構成する必要があります。それには、ライセンス有効化リクエストを default-internet-gateway に転送するルートをネットワーク上に作成します。

gcloud compute routes create windows-kms-route --network [NETWORK_NAME] \
    --destination-range=35.190.247.13/32 --next-hop-gateway=default-internet-gateway

Windows Server インスタンスの作成

Console


基本的な Windows インスタンスを作成するには:

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. [ブートディスク] の [変更] をクリックし、ブートディスクの構成を開始します。
  4. OS イメージタブでa Windows imageを選択します。

  5. [選択] をクリックします。
  6. [作成] をクリックしてインスタンスを作成します。

Shielded VM Windows インスタンスを作成するには:

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. [ブートディスク] セクションの [変更] をクリックし、ブートディスクの構成を開始します。
  4. [OS イメージ] タブで、Windows イメージを選択します。
    Shielded VM イメージのみを表示するには、[シールドされた VM の機能を持つイメージを表示する] を選択します。

  5. [選択] をクリックします。

  6. 必要に応じて、インスタンスの Shielded VM の設定を変更します。

    1. [管理、セキュリティ、ディスク、ネットワーク] セクションの [セキュリティ] タブをクリックします。
    2. セキュアブートを無効にする場合は、[セキュアブートをオンにします] をオフにします。セキュアブートは、ブートレベルやカーネルレベルの不正ソフトウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。
    3. 仮想トラステッド プラットフォーム モジュール(vTPM)を無効にする場合は [vTPM をオンにします] をオフにします。vTPM を有効にすると、メジャード ブートが有効になり、これによって VM の起動前と起動時の整合性が検証されます。詳細については、仮想トラステッド プラットフォーム モジュール(vTPM)をご覧ください。

    4. 整合性のモニタリングを無効にする場合は、[整合性のモニタリングを有効にする] をオフにします。整合性のモニタリングを有効にすると、Shielded VM インスタンスの起動時の整合性を Stackdriver を使用してモニタリングできます。詳細については、整合性のモニタリングをご覧ください。

  7. [作成] をクリックしてインスタンスを作成します。

gcloud


compute images list コマンドを使用して、使用可能な Windows Server イメージのリストを表示します。

Shielded VM を使用しない、使用可能な Windows Server イメージを表示するには、次のコマンドを使用します。

gcloud compute images list --project windows-cloud --no-standard-images

Windows イメージを含め、使用可能な Shielded VM イメージのリストを表示するには、次のコマンドを使用します。

gcloud compute images list --project gce-uefi-images --no-standard-images

compute instances create コマンドを使用して新しいインスタンスを作成し、いずれかの Windows Server 公開イメージのイメージ ファミリーを指定します。

gcloud compute instances create [INSTANCE_NAME] \
    --image-project windows-cloud \
    --image-family [IMAGE_FAMILY] \
    --machine-type [MACHINE_TYPE] \
    --boot-disk-size [BOOT_DISK_SIZE] \
    --boot-disk-type [BOOT_DISK_TYPE]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE_FAMILY] は、Windows Server イメージの公開イメージ ファミリーのいずれかです。
  • [MACHINE_TYPE] は、使用可能なマシンタイプのいずれかです。
  • [BOOT_DISK_SIZE] は、ブートディスクのサイズ(GB 単位)です。永続ディスクのサイズが大きいほど、スループットが高くなります
  • [BOOT_DISK_TYPE] は、インスタンスのブートディスクのタイプです。高速な SSD 永続ディスクを使用するには pd-ssd を指定し、標準の HDD 永続ディスクを使用するには pd-standard を指定します。

Shielded VM をサポートするイメージを選択した場合は、必要に応じて次のいずれかのフラグを使用して、インスタンスの Shielded VM の設定を変更できます。

  • --no-shielded-vm-secure-boot: セキュアブートを無効にします。セキュアブートは、ブートレベルやカーネルレベルの不正ソフトウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。
  • --no-shielded-vm-vtpm: 仮想トラステッド プラットフォーム モジュール(vTPM)を無効にします。vTPM を有効にすると、メジャード ブートが有効になり、これによって VM の起動前と起動時の整合性が検証されます。詳細については、仮想トラステッド プラットフォーム モジュール(vTPM)をご覧ください。

  • --no-shielded-vm-integrity-monitoring: 整合性のモニタリングを無効にします。整合性のモニタリングを有効にすると、Shielded VM インスタンスの起動時の整合性を Stackdriver を使用してモニタリングできます。詳細については、整合性のモニタリングをご覧ください。

次の例では、セキュアブートが無効に設定された Windows 2012 の Shielded VM インスタンスを作成します。

 gcloud beta compute instances create my-instance \
 --image-family windows-2012-r2 --image-project gce-uefi-images \
 --no-shielded-vm-secure-boot

API


API でインスタンスを作成するには、インスタンス作成リクエストに initializeParams プロパティを含めて、Windows イメージを指定します。たとえば、リクエストの本文は次のようになります。

 instance = {
   "name": "[INSTANCE_NAME]",
   "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
   "disks": [{
       "boot": "true",
       "type": "PERSISTENT",
       "initializeParams": {
          "diskName": "[DISK_NAME]",
          "sourceImage": "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/images/family/[IMAGE_FAMILY]",
          "diskSizeGb": "[BOOT_DISK_SIZE]",
          "diskType": "[BOOT_DISK_TYPE]",
        }
     }],
   "networkInterfaces": [{
     "accessConfigs": [{
       "type": "ONE_TO_ONE_NAT",
       "name": "External NAT"
      }],
     "network": "global/networks/default"
   }],
   "serviceAccounts": [{
        "email": DEFAULT_SERVICE_EMAIL,
        "scopes": DEFAULT_SCOPES
   }]
 }

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE_FAMILY] は、Windows Server または SQL Server イメージの公開イメージ ファミリーのいずれかです。
  • [ZONE] は、このインスタンスのゾーンです。
  • [MACHINE_TYPE] は、使用可能なマシンタイプのいずれかです。
  • [BOOT_DISK_SIZE] は、ブートディスクのサイズ(GB 単位)です。永続ディスクのサイズが大きいほど、スループットが高くなります
  • [BOOT_DISK_TYPE] は、インスタンスのブートディスクのタイプです。高速な SSD 永続ディスクを使用するには pd-ssd を指定し、標準の HDD 永続ディスクを使用するには pd-standard を指定します。

Shielded VM をサポートするイメージを選択した場合は、必要に応じて次のブール値の項目をリクエスト本文で使用して、インスタンスの Shielded VM の設定を変更できます。

  • enableSecureBoot: セキュアブートを有効または無効にします。セキュアブートは、ブートレベルやカーネルレベルの不正ソフトウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。
  • enableVtpm: 仮想トラステッド プラットフォーム モジュール(vTPM)を有効または無効にします。vTPM を有効にすると、メジャード ブートが有効になり、これによって VM の起動前と起動時の整合性が検証されます。詳細については、仮想トラステッド プラットフォーム モジュール(vTPM)をご覧ください。

  • enableIntegrityMonitoring: 整合性のモニタリングを有効または無効にします。整合性のモニタリングにより、Shielded VM インスタンスについて、ランタイムの起動時の整合性を Stackdriver レポートを使用してモニタリングおよび検証できます。詳細については、整合性のモニタリングをご覧ください。

インスタンス作成の詳細については、instances.insert() のドキュメントをご覧ください。

Windows または SQL Server インスタンスを作成した後で、インスタンスの初期パスワードを設定し、RDP によってインスタンスに接続できるようにします。

有効化にプライベート Google アクセスを使用する Windows Server インスタンスを作成する

内部 IP アドレスだけが割り当てられた Windows Server インスタンスを作成することもできます。ただしその場合は、プライベート Google アクセスを使用して kms.windows.googlecloud.com にアクセスするようにインスタンスを構成する必要があります。

外部 IP アドレスが割り当てられたインスタンスが必要な場合は、有効化に外部 IP を使用する Windows Server インスタンスを作成するをご覧ください。

  1. このインスタンスで使用する既存のネットワークとサブネットワークがある場合は、サブネットワークを更新してプライベート Google アクセスを有効にします。

    gcloud compute networks subnets update [SUBNET_NAME] \
        --enable-private-ip-google-access --region [REGION]
    

    ここで

    • [SUBNET_NAME] は、新しいサブネットワークの名前です。
    • [REGION] は、このサブネットワークが配置されるリージョンです。

    あるいは、プライベート Google アクセスが有効にされているサブネットワークを使用して新しいネットワークを作成することもできます。

    gcloud compute networks create [NETWORK_NAME] \
        --subnet-mode custom
    

    gcloud compute networks subnets create [SUBNET_NAME] \
        --network [NETWORK_NAME] --region [REGION] \
        --range [IP_RANGE] --enable-private-ip-google-access
    

    ここで

    • [SUBNET_NAME] は、新しいサブネットワークの名前です。
    • [NETWORK_NAME] は、新しいサブネットワークを作成するネットワークです。
    • [REGION] は、このサブネットワークが配置されるリージョンです。
    • [IP_RANGE] は、このサブネットワーク内に指定する IP アドレスの範囲です。たとえば、192.168.1.0/24 を指定できます。
  2. このサブネットワークを使用する新しいインスタンスを作成し、--no-address フラグを含めます。このフラグにより、作成されるインスタンスには外部 IP アドレスが割り当てられません。

    gcloud compute instances create [INSTANCE_NAME] --network [NETWORK_NAME] \ --subnet [SUBNET_NAME] --no-address --zone [ZONE] \ --image-project windows-cloud --image-family [IMAGE_FAMILY] \ --machine-type [MACHINE_TYPE] --boot-disk-size [BOOT_DISK_SIZE] \ --boot-disk-type [BOOT_DISK_TYPE] --no-address

    ここで

    • [INSTANCE_NAME] は、新しいインスタンスの名前です。
    • [NETWORK_NAME] は、新しいサブネットワークを作成するネットワークです。
    • [SUBNET_NAME] は、新しいサブネットワークの名前です。
    • [IMAGE_FAMILY] は、Windows Server イメージの公開イメージ ファミリーのいずれかです。
    • [MACHINE_TYPE] は、使用可能なマシンタイプのいずれかです。
    • [BOOT_DISK_SIZE] は、ブートディスクのサイズ(GB 単位)です。永続ディスクのサイズが大きいほど、スループットが高くなります
    • [BOOT_DISK_TYPE] は、インスタンスのブートディスクのタイプです。高速な SSD 永続ディスクを使用するには pd-ssd を指定し、標準の HDD 永続ディスクを使用するには pd-standard を指定します。

    別の方法として、既存のインスタンスを新しいサブネットワークに移動することもできます。それには、インスタンスを停止し、そのネットワーク設定を変更して、外部 IP アドレスをインスタンスから削除してから、インスタンスを再起動します。

  3. 必要に応じて、インスタンスのプライベート Google アクセスを制約し、インスタンスが kms.windows.googlecloud.com サーバーだけに接続して、プライベート Google アクセスをサポートする他のサービスにはアクセスしないようにします。現在、KMS サーバーは 35.190.247.13 にあるため、新しいファイアウォール ルールにこの IP アドレスを唯一の宛先アドレスとして指定します。

    gcloud compute firewall-rules create [RULE_NAME] --direction=EGRESS \
        --network= [SUBNET_NAME] --action=ALLOW --rules=tcp:1688 \
        --destination-ranges=35.190.247.13/32
    

    ここで

    • [RULE_NAME] は、新しいファイアウォール ルールの名前です。
    • [SUBNET_NAME] は、インスタンスが VPC ネットワークで内部ネットワーク接続に使用するサブネットワークの名前です。
  4. ネットワークがインスタンス ベースの NAT ゲートウェイを使用している場合、NAT ゲートウェイ経由ではなく default-internet-gateway 経由でトラフィックをルーティングするようにネットワークを構成する必要があります。NAT ゲートウェイでパブリック IP アドレスにアクセスできるとしても、NAT ゲートウェイ経由でインスタンスを有効にすることはできません。kms.windows.googlecloud.com サーバーは、Compute Engine インスタンスとして確認されていない IP アドレスからの有効化リクエストを拒否します。ライセンス有効化リクエストを default-internet-gateway に転送するルートを作成します。

    gcloud compute routes create windows-kms-route --network [NETWORK_NAME] \
        --destination-range=35.190.247.13/32 --next-hop-gateway=default-internet-gateway
    

    ここで、[NETWORK_NAME] はインスタンスが内部 VPC トラフィックに使用するネットワークです。

このインスタンスには外部 IP アドレスが割り当てられていないため、インスタンスに接続するには VPN 接続を使用するか、RPD を使用して要塞ホスト インスタンスに接続してから、さらに新しいインスタンスへの接続を確立する必要があります。

インスタンスの正常起動の確認

sysprep プロセスが原因で、Windows インスタンスは起動に時間がかかります。sysprep プロセスがまだ完了していなくても、GCP Console にはインスタンスが実行中と表示される場合があります。インスタンスが正常に起動し、使用できる状態であるか確認するには、次のコマンドでシリアルポート出力を確認します。

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

ここでは、[INSTANCE_NAME] は確認したいインスタンスの名前です。

...[snip]...
Running schtasks with arguments /run /tn GCEStartup
-->  SUCCESS: Attempted to run the scheduled task "GCEStartup".
-------------------------------------------------------------
Instance setup finished. [INSTANCE_NAME] is ready to use.
-------------------------------------------------------------

自動コンポーネント更新の無効化

イメージ バージョン v20170509 以降またはエージェント バージョン 4.1.0 以降の Windows インスタンスをご使用の場合は、エージェント、メタデータ、sysprep スクリプトなどの Google 提供のコンポーネントは、スケジュールされたタスクを使用して自動的に更新されます。スケジュールされたタスクは、google-compute-engine-auto-updater パッケージによって設定されます。

手動でアップデートを管理したり、代替システムを使用してアップデートを管理したりする場合は、google-compute-engine-auto-updater パッケージを削除することで、前述のようなコンポーネントの更新を無効にすることができます。

  1. Windows Server インスタンスで、管理者として PowerShell ターミナルを開きます。
  2. googet remove コマンドを実行してパッケージを削除します。

    PS C:\> googet remove google-compute-engine-auto-updater
    

オプションで、パッケージを再インストールし、コンポーネントの自動更新を有効にできます。

  1. Windows Server インスタンスで、管理者として PowerShell ターミナルを開きます。
  2. googet install コマンドを実行してパッケージをインストールします。

    PS C:\> googet install google-compute-engine-auto-updater
    

別の方法として、プロジェクトまたはインスタンスのカスタム メタデータdisable-agent-updates の値を true に設定して更新を無効にすることもできます。メタデータの値は、パッケージまたはタスクを削除せずに更新を無効にします。

Windows インスタンス機能の有効化と無効化

Windows インスタンスでバージョン v20170509 以降のイメージ、またはバージョン 4.1.0 以降のエージェントを使用している場合、構成ファイルあるいはプロジェクトまたはインスタンスのカスタム メタデータでインスタンス構成を設定できます。構成ファイルは INI 形式であり、次のパスにあります。

C:\Program Files\Google\Compute Engine\instance_configs.cfg

システムは、優先度の高い設定から優先度の低い設定順に、優先度順で構成設定を上書きします。

  1. 構成ファイルで設定した構成パラメータ
  2. インスタンスレベルのカスタム メタデータで設定された構成パラメータ
  3. プロジェクトレベルのカスタム メタデータで設定された構成パラメータ

たとえば、構成ファイルで accountManager 機能を有効にできる場合、インスタンスはカスタム メタデータで設定した、その機能を無効にするパラメータを無視します。

構成ファイルでこれらのパラメータを設定する利点の 1 つは、Windows Server インスタンス用にカスタム イメージを作成する際に、これらの設定が維持されることです。インスタンスレベルのカスタム メタデータは、インスタンスの存続期間によって制限されます。

以下の例を使用して、異なる Windows インスタンス機能を無効にできます。

アカウント マネージャを無効にします。

  • 構成ファイル:

    [accountManager]
    disable=true
    
  • カスタム メタデータで、メタデータの中の disable-account-managertrue に設定します。

アドレス マネージャを無効にします。

  • 構成ファイルのエントリ:

    [addressManager]
    disable=true
    
  • カスタム メタデータで、メタデータの中の disable-address-managertrue に設定します。

Windows Server フェイルオーバー クラスタリング

Windows Server フェイルオーバー クラスタリング エージェントを有効にします。

  • 構成ファイルのエントリ:

    [wsfc]
    enable=true
    
  • カスタム メタデータで、メタデータの中の enable-wsfctrue に設定します。

複数の内部ロードバランサの使用

フェイルオーバー クラスタリング用の内部負荷分散インスタンスの IP アドレスを指定します。これは、専用のフェイルオーバー クラスタには設定する必要のない高度な構成です。

通常は、内部負荷分散のインスタンスを使用して、一度に 1 つの VM インスタンスにネットワーク トラフィックを誘導します。負荷分散されたウェブサイトのバックエンドの一部としてフェイルオーバー クラスタリング VM インスタンスを使用する内部負荷分散の 2 番目のインスタンスを追加する場合、2 つの内部負荷分散 IP アドレスが必要になります。フェイルオーバー クラスタリングが 10.0.0.10 を使用し、ウェブサイトのロードバランサが 10.0.0.11 を使用する場合、フェイルオーバー クラスタリングに使用するロードバランサの IP アドレスを指定する必要があります。これにより、どのアドレスがクラスタで使用されているかが明確になります。

  • 構成ファイルのエントリ:

    [wsfc]
    addresses=10.0.0.10
    
  • カスタム メタデータで、wsfc-addrs10.0.0.10 に設定します。

クラスタリング エージェントのポートの変更

フェイルオーバー クラスタリング エージェントのポートを設定します。デフォルト ポートは 59998 です。別のポートを使用する場合にのみ、ポートを指定する必要があります。

  • 構成ファイルのエントリ:

    [wsfc]
    port=12345
    
  • カスタム メタデータで、wsfc-agent-port をポート番号に設定します。

イメージ バージョンの注意事項

古いイメージは構成ファイルを使用せず、機能のサブセットを持つのみです。バージョンが v20160112 から v20170509 の間のイメージ バージョン、またはバージョンが 3.2.1.0 から 4.0.0 の間の Windows エージェントでは、次のカスタム メタデータの値を使用する必要があります。

  • インスタンスのメタデータで disable-account-managertrue に設定すると、アカウント マネージャを無効化できます。
  • インスタンスのメタデータで disable-address-managertrue に設定すると、アドレス マネージャを無効化できます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント