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

Compute Engine は、Windows Server を含む公開イメージを提供します。このイメージを使用して、インスタンスを作成できます。SQL Server がプリインストールされた Windows 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 を使用することもできません。利用可能なイメージ ファミリーのリストについては、公開イメージをご覧ください。

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

このセクションでは、外部 IP アドレスが割り当てられた Windows Server インスタンスを作成する方法を説明します。kms.windows.googlecloud.com へのアクセスを許可するように VPC ネットワークが構成されている必要があります。

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 イメージのみを表示するには、[Shielded VM の機能を持つイメージを表示する] を選択します。

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

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

    1. [管理、セキュリティ、ディスク、ネットワーク] セクションの [セキュリティ] タブをクリックします。
    2. セキュアブートを無効にする場合は、[セキュアブートをオンにします] のチェックボックスをオフにします。セキュアブートは、ブートレベルとカーネルレベルの不正なソフトウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。
    3. Virtual Trusted Platform Module(vTPM)を無効にする場合は [vTPM をオンにします] をオフにします。vTPM を使用すると、メジャード ブートが有効になり、それによって VM の起動前と起動時の整合性が検証されます。詳細については、Virtual Trusted Platform Module(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: Virtual Trusted Platform Module(vTPM)を無効にします。vTPM を使用すると、メジャード ブートが有効になり、それによって VM の起動前と起動時の整合性が検証されます。詳細については、Virtual Trusted Platform Module(vTPM)をご覧ください。

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

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

 gcloud 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: 整合性のモニタリングを有効または無効にします。整合性のモニタリングにより、シールドされた VM インスタンスについて、ランタイムの起動時の整合性を Stackdriver レポートを使用してモニタリングおよび検証できます。詳細については、整合性のモニタリングをご覧ください。

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

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

内部 IP アドレスを使用して有効化する Windows Server インスタンスを作成する

内部 IP アドレスのみが割り当てられた Windows Server インスタンスを作成するには、事前に VPC ネットワークのルートとファイアウォール ルールが kms.windows.googlecloud.com へのアクセスを許可することを確認します。許可されていない場合は、許可するように構成する必要があります。さらに、内部 IP アドレスのみが割り当てられた Windows インスタンスを配置する VPC ネットワーク内のサブネットに対して、限定公開の Google アクセスを有効化する必要もあります。

gcloud コマンドラインを使用して新しいインスタンスを作成する場合、--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]

次のプレースホルダを適切な値に置き換えます。

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [SUBNET_NAME] は、インスタンスを配置する VPC ネットワーク内のサブネットの名前です。このサブネットは、インスタンスに選択したゾーンと同じリージョン内に存在する必要があります。
  • [IMAGE_FAMILY] は、Windows Server イメージの公開イメージ ファミリーのいずれかです。
  • [MACHINE_TYPE] は、使用可能なマシンタイプのいずれかです。
  • [BOOT_DISK_SIZE] は、ブートディスクのサイズ(GB 単位)です。永続ディスクのサイズが大きいほど、スループットが高くなります
  • [BOOT_DISK_TYPE] は、インスタンスのブートディスクの種類です。高速な SSD 永続ディスクを使用するには pd-ssd を指定し、標準の HDD 永続ディスクを使用するには pd-standard を指定します。

このインスタンスには外部 IP アドレスがないため、インターネットを介して直接インスタンスに接続することはできません。Cloud Interconnect または Cloud VPN を使用すると、VPC ネットワークに接続する別のネットワークからインスタンスに接続できます。あるいは、RDP を介して要塞インスタンスに接続し、そこから内部 IP アドレスしか割り当てられていないインスタンスに接続することもできます。

kms.windows.googlecloud.com へのアクセスを構成する

Windows の有効化と更新を行うには、VPC ネットワークがルーティングとファイアウォール ルールに関する次の要件を満たしている必要があります。

ルーティングの要件

Windows インスタンスは、ネクストホップがデフォルトのインターネット ゲートウェイとなっているルート経由で kms.windows.googlecloud.com35.190.247.13)に到達できる必要があります。kms.windows.googlecloud.com は Compute Engine インスタンスとして確認されていない IP アドレスからの有効化リクエストを拒否するため、インスタンス ベースの NAT ゲートウェイや Cloud NAT を使用して Windows インスタンスを有効化することはできません。

トラフィックを直接 kms.windows.googlecloud.com にルーティングするには、VPC ネットワーク内のデフォルト ルートを使用できます。このルートを削除した場合、または将来削除する予定の場合は、宛先を 35.190.247.13、ネクストホップをデフォルトのインターネット ゲートウェイに設定して、カスタム静的ルートを作成してください。

gcloud compute routes create [ROUTE_NAME] \
    --destination-range=35.190.247.13/32 \
    --network=[NETWORK] \
    --next-hop-gateway=default-internet-gateway

[ROUTE_NAME] はこのルートに付ける名前に置き換え、[NETWORK] は VPC ネットワークの名前に置き換えます。

デフォルト ルートでも、上述のカスタム静的ルートでも、外部 IP アドレスが割り当てられたインスタンスは kms.windows.googlecloud.com に到達できます。外部 IP アドレスのない Windows インスタンスの場合は、限定公開の Google アクセスを有効にする必要があります。これにより、内部 IP アドレスしか割り当てられていないインスタンスでもトラフィックを kms.windows.googlecloud.com の外部 IP アドレスに送信できるようになります。該当する IP アドレス(35.190.247.13)は、Google API とサービスの IP アドレスのリストに記載されています。

ファイアウォール ルールの要件

ファイアウォールの暗黙の下り許可ルールにより、インスタンスにはリクエストの送信と、確立されたレスポンスの受信が許可されます。下りを拒否するカスタム ファイアウォール ルールを作成していない限り、Windows インスタンスは kms.windows.googlecloud.com と通信できます。

ファイアウォール ルールをカスタマイズする場合におすすめの方法は、35.190.247.13 との通信を明示的に許可する、高優先度の下り許可ルールを作成することです。この方法でファイアウォール ルールを変更すれば、誤って WIndows 有効化を無効にすることがありません。

次の gcloud の例では、推奨される高優先度の下り許可ルールを作成します。

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

[RULE_NAME] はこのファイアウォール ルールに指定する名前に置き換え、[NETWORK] は VPC ネットワークの名前に置き換えます。

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

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 ドキュメント