Compute Engine は、Windows Server を含む公開イメージを提供します。このイメージを使用して、インスタンスを作成できます。SQL Server がプリインストールされた Windows Server インスタンスの作成方法については、SQL Server インスタンスの作成をご覧ください。
Compute Engine 上で実行できる Windows Server インスタンスと Windows アプリケーションの詳細については、Compute Engine での Windows をご覧ください。
料金
始める前に
- プロジェクトに対する課金を有効にします。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Go
ローカル開発環境でこのページの Go サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
Java
ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
Node.js
ローカル開発環境でこのページの Node.js サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
Python
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
-
Windows Server インスタンスを作成します。
Windows Server インスタンスを作成するには、必要とする特定の Windows バージョンに対応するイメージ ファミリーを指定します。Compute Engine には複数のバージョンの Windows Server が用意されており、そのほとんどが Shielded VM イメージとして提供されています。Shielded VM イメージは、UEFI 準拠のファームウェア、セキュアブート、vTPM で保護されたメジャード ブートなどのセキュリティ機能を備えています。利用可能なイメージ ファミリーの一覧については、公開イメージをご覧ください。
3 つ以上のリモート デスクトップ セッションを同時に実行する必要がある場合は、リモート デスクトップ セッション(RDS)クライアント アクセス ライセンス(CAL)を購入する必要があります。詳細については、クライアント アクセス ライセンス(CAL)を使用して RDS 展開をライセンスするをご覧ください。
Microsoft Active Directory を操作する
新しいインスタンスで Microsoft Active Directory(AD)を使用する場合は、システムの指定された最大の名前の長さの制限を満たすために、インスタンス名が 15 文字以下であることを確認します。
AD はマシンの NetBIOS 名を使用します。これは、15 文字に切り捨てられたインスタンス名として生成されます。そのため、ドメイン ユーザーとしてログインしようとすると、The Security Database on the Server does not have a Computer Account for this Workstation Trust Relationship
というエラーが発生することがあります。
外部 IP を使用して有効化する Windows Server インスタンスを作成する
このセクションでは、外部 IP アドレスが割り当てられた Windows Server インスタンスの作成方法を説明します。kms.windows.googlecloud.com
へのアクセスを許可するように VPC ネットワークが構成されている必要があります。
基本的な Windows VM を作成するには:
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
[ブートディスク] で [変更] を選択し、次の操作を行います。
- [公開イメージ] タブで、Windows Server オペレーティング システムを選択します。
- [選択] をクリックします。
VM を作成するには、[作成] をクリックします。
Shielded VM Windows インスタンスを作成するには、次の操作を行います。
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
[ブートディスク] で [変更] を選択し、次の操作を行います。
- [公開イメージ] タブで、Windows Server オペレーティング システムを選択します。
- ブートディスクの構成を保存するには、[選択] をクリックします。
必要に応じて、VM の Shielded VM の設定を変更するには、[詳細オプション] セクションを展開します。次に、以下の操作を行います。
- [セキュリティ] セクションを開きます。
- セキュアブートをオフにするには、[セキュアブートをオンにする] チェックボックスをオフにします。セキュアブートは、ブートレベルとカーネルレベルのマルウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。
Virtual Trusted Platform Module(vTPM)をオフにするには、[vTPM をオンにする] チェックボックスをオフにします。vTPM を使用すると、メジャード ブートが有効になり、それによって VM の起動前と起動時の整合性が検証されます。詳細については、仮想トラステッド プラットフォーム モジュール(vTPM)をご覧ください。
整合性モニタリングをオフにするには、[整合性のモニタリングを有効にする] チェックボックスをオフにします。整合性モニタリングを使用すると、Shielded VM 起動時の整合性を Cloud Monitoring でモニタリングできます。詳細については、整合性モニタリングをご覧ください。
VM を作成するには、[作成] をクリックします。
compute images list
コマンドを使用して、使用可能な Windows Server イメージのリストを表示します。
gcloud compute images list --project windows-cloud --no-standard-images
イメージが Shielded VM の機能をサポートしているかどうかを確認するには、次のコマンドを実行し、出力の UEFI_COMPATIBLE
を確認します。
gcloud compute images describe [IMAGE_NAME] --project windows-cloud
ここで、[IMAGE_NAME]
は Shielded VM の機能のサポートを確認するイメージの名前です。
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]
は、インスタンスのブートディスクの種類です。例:pd-ssd
。
Shielded VM をサポートするイメージを選択した場合は、必要に応じて次のいずれかのフラグを使用して、インスタンスの Shielded VM の設定を変更できます。
--no-shielded-secure-boot
: セキュアブートを無効にします。セキュアブートは、ブートレベルとカーネルレベルの不正なソフトウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。--no-shielded-vtpm
: 仮想トラステッド プラットフォーム モジュール(vTPM)を無効にします。vTPM を使用すると、メジャード ブートが有効になります。これにより VM の起動前と起動時の整合性が検証されます。詳細については、仮想トラステッド プラットフォーム モジュール(vTPM)をご覧ください。--no-shielded-integrity-monitoring
: 整合性モニタリングを無効にします。整合性モニタリングを使用すると、Shielded VM インスタンスの起動時の整合性を Cloud Monitoring でモニタリングできます。詳細については、整合性モニタリングをご覧ください。
次の例では、セキュアブートが無効に設定された Windows 2022 の Shielded VM インスタンスを作成します。
gcloud compute instances create my-instance \ --image-family windows-2022 --image-project windows-cloud \ --no-shielded-secure-boot
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]
は、インスタンスのブートディスクの種類です。例:pd-ssd
。
Shielded VM をサポートするイメージを選択した場合は、必要に応じて次のブール値の項目をリクエスト本文で使用して、インスタンスの Shielded VM の設定を変更できます。
enableSecureBoot
: セキュアブートを有効または無効にします。セキュアブートは、ブートレベルやカーネルレベルのマルウェアとルートキットから VM インスタンスを保護します。詳細については、セキュアブートをご覧ください。enableVtpm
: 仮想トラステッド プラットフォーム モジュール(vTPM)を有効または無効にします。vTPM を有効にすると、メジャード ブートが有効になります。これにより VM の起動前と起動時の整合性が検証されます。詳細については、仮想トラステッド プラットフォーム モジュール(vTPM)をご覧ください。enableIntegrityMonitoring
: 整合性モニタリングを有効または無効にします。整合性モニタリングを有効にすると、Shielded VM インスタンスの起動時の整合性を Cloud Monitoring レポートを使用してモニタリングし、検証できます。詳細については、整合性モニタリングをご覧ください。
インスタンスの作成についての詳細は、instances.insert()
のドキュメントをご覧ください。
Windows または SQL Server インスタンスを作成した後で、インスタンスの初期パスワードを設定し、RDP を介してインスタンスに接続できるようにします。
また、VM の作成時または作成後に、VM を Managed Microsoft AD ドメインに参加させることもできます。詳細については、Windows VM をドメインに自動的に参加させるをご覧ください。
内部 IP アドレスを使用して有効化する Windows Server インスタンスを作成する
内部 IP アドレスのみが割り当てられた Windows Server インスタンスを作成するには、事前に VPC ネットワークのルートとファイアウォール ルールが kms.windows.googlecloud.com
へのアクセスを許可することを確認します。許可されていない場合は、許可するように構成する必要があります。さらに、内部 IP アドレスのみが割り当てられた Windows インスタンスを配置する VPC ネットワーク内のサブネットに対して、限定公開の Google アクセスを有効化する必要もあります。
gcloud CLI で新しいインスタンスを作成する場合に、--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]
は、インスタンスのブートディスクの種類です。例:pd-ssd
。
このインスタンスには外部 IP アドレスがないため、インターネットを介して直接インスタンスに接続することはできません。Cloud Interconnect または Cloud VPN を使用すると、VPC ネットワークに接続する別のネットワークからインスタンスに接続できます。あるいは、RDP を介して要塞インスタンスに接続し、そこから内部 IP アドレスしか割り当てられていないインスタンスに接続することもできます。
また、VM の作成時または作成後に、VM を Managed Microsoft AD ドメインに参加させることもできます。詳細については、Windows VM をドメインに自動的に参加させるをご覧ください。
kms.windows.googlecloud.com へのアクセスを構成する
Windows の有効化と更新を行うには、VPC ネットワークがルーティングとファイアウォール ルールに関する次の要件を満たしている必要があります。
ルーティングの要件
Windows インスタンスから kms.windows.googlecloud.com
(35.190.247.13
または 2001:4860:4802:32::86
)に到達するためのルートは、そのネクストホップがデフォルトのインターネット ゲートウェイであることが必要です。Windows インスタンスのアクティブ化にインスタンス ベースの NAT ゲートウェイや Cloud NAT を使用することはできません。kms.windows.googlecloud.com
では、Compute Engine インスタンスであることが確認された IP アドレス以外からのアクティベーション リクエストは拒否されるからです。
VPC ネットワーク内のデフォルト ルートを使用すると、トラフィックを直接 kms.windows.googlecloud.com
にルーティングできます。このルートを削除する場合、あるいは削除する予定がある場合は、以下のようにカスタム静的ルートを作成して宛先を 35.190.247.13
または 2001:4860:4802:32::86
、ネクストホップをデフォルトのインターネット ゲートウェイに設定してください。
gcloud compute routes create mskms-ipv4-route-ipv4-network \ --destination-range=35.190.247.13/32 \ --network=ipv4-network \ --next-hop-gateway=default-internet-gateway
gcloud compute routes create mskms-ipv4-route-ipv4-network \ --destination-range=35.190.247.13/32 \ --network=ipv4-network \ --next-hop-gateway=default-internet-gateway
gcloud compute routes create mskms-ipv6-route-ipv6-network \ --destination-range=2001:4860:4802:32::86/128 \ --network=ipv6-network \ --next-hop-gateway=default-internet-gateway
gcloud compute routes create mskms-ipv6-route-ipv6-network \ --destination-range=2001:4860:4802:32::86/128 \ --network=ipv6-network \ --next-hop-gateway=default-internet-gateway
ipv4-network
または ipv6-network
を VPC ネットワークの名前に置き換えてください。
デフォルト ルートと前述のカスタム静的ルートのどちらでも、外部 IP アドレスを持つインスタンスは kms.windows.googlecloud.com
に到達できます。Windows インスタンスが外部 IP アドレスを持たない場合や、Cloud NAT を使用する場合は、限定公開の Google アクセスを有効にすることも必要になります。これで、内部 IP アドレスしか持たないインスタンスも、kms.windows.googlecloud.com
(35.190.247.13
または 2001:4860:4802:32::86
)の外部 IP アドレスにトラフィックを送信できるようになります。
ファイアウォール ルールの要件
ファイアウォールの暗黙の下り(外向き)許可ルールにより、インスタンスにはリクエストの送信と、確立されたレスポンスの受信が許可されます。下り(外向き)を拒否するカスタム ファイアウォール ルールが作成されている場合を除いて、Windows インスタンスは kms.windows.googlecloud.com
と通信できます。
ファイアウォール ルールをカスタマイズする場合におすすめの方法は、35.190.247.13
または 2001:4860:4802:32::86
との通信を明示的に許可する、高優先度の下り(外向き)許可ルールを作成することです。このようにすれば、ファイアウォール ルールに変更を加えるときに Windows アクティベーションが誤って無効化されることはありません。
次の gcloud
の例では、推奨される下り(外向き)許可ルールを最高優先度で作成します。
gcloud compute firewall-rules create mskms-ipv4-firewall-rule-ipv4-network \ --direction=EGRESS \ --network=ipv4-network \ --action=ALLOW \ --rules=tcp:1688 \ --destination-ranges=35.190.247.13/32 \ --priority=0
gcloud compute firewall-rules create mskms-ipv4-firewall-rule-ipv4-network \ --direction=EGRESS \ --network=ipv4-network \ --action=ALLOW \ --rules=tcp:1688 \ --destination-ranges=35.190.247.13/32 \ --priority=0
gcloud compute firewall-rules create mskms-ipv6-firewall-rule-ipv6-network \ --direction=EGRESS \ --network=ipv6-network \ --action=ALLOW \ --rules=tcp:1688 \ --destination-ranges=2001:4860:4802:32::86/128 \ --priority=0
gcloud compute firewall-rules create mskms-ipv6-firewall-rule-ipv6-network \ --direction=EGRESS \ --network=ipv6-network \ --action=ALLOW \ --rules=tcp:1688 \ --destination-ranges=2001:4860:4802:32::86/128 \ --priority=0
ipv4-network
または ipv6-network
を VPC ネットワークの名前に置き換えてください。
インスタンスが正常に起動したことの確認
sysprep システムにより、Windows インスタンスの起動に時間がかかります。sysprep プロセスが完了していない場合でも、Google Cloud コンソールでインスタンスが実行中と表示されることがあります。インスタンスが正常に起動し、使用できる状態であるか確認するには、次のコマンドでシリアルポート出力を確認します。
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. -------------------------------------------------------------
Windows インスタンス機能の有効化と無効化
Windows インスタンスでバージョン v20170509
以降のイメージ、またはバージョン 4.1.0
以降のエージェントを使用している場合、構成ファイルあるいはプロジェクトまたはインスタンスのカスタム メタデータでインスタンス構成を設定できます。構成ファイルは INI 形式であり、次のパスにあります。
C:\Program Files\Google\Compute Engine\instance_configs.cfg
システムは、優先度の高い設定から順に、以下の優先順位で構成設定を上書きします。
- 構成ファイルで設定した構成パラメータ
- インスタンスレベルのカスタム メタデータで設定された構成パラメータ
- プロジェクトレベルのカスタム メタデータで設定された構成パラメータ
たとえば、構成ファイルで accountManager
機能を有効にできる場合、インスタンスはカスタム メタデータで設定した、その機能を無効にするパラメータを無視します。
Windows Server インスタンス用にカスタム イメージを作成する際、これらの設定が維持されます。これが、構成ファイルでパラメータを設定する利点の 1 つです。インスタンスレベルのカスタム メタデータは、インスタンスの存続期間によって制限されます。
以下の例を使用して、異なる Windows インスタンス機能を無効にできます。
アカウント マネージャを無効にする
アカウント マネージャーを無効にすると、Google Cloud CLI または Google Cloud コンソールでのパスワードのリセットも無効になります。
構成ファイル:
[accountManager] disable=true
カスタム メタデータで、メタデータの中の
disable-account-manager
をtrue
に設定します。
アドレス マネージャーを無効にする
構成ファイルのエントリ:
[addressManager] disable=true
カスタム メタデータで、メタデータの中の
disable-address-manager
をtrue
に設定します。
Windows Server フェイルオーバー クラスタリング
Windows Server フェイルオーバー クラスタリング エージェントを有効にします。
構成ファイルのエントリ:
[wsfc] enable=true
カスタム メタデータで、メタデータの中の
enable-wsfc
をtrue
に設定します。
複数の内部ロードバランサの使用
フェイルオーバー クラスタリング用の内部負荷分散インスタンスの IP アドレスを指定します。これは、専用のフェイルオーバー クラスタには構成する必要のない高度な構成です。
通常は、内部ロード バランシングのインスタンスを使用して、一度に 1 つの VM インスタンスにネットワーク トラフィックを誘導します。ロードバランスされたウェブサイトのバックエンドの一部としてフェイルオーバー クラスタリング VM インスタンスを使用する内部ロード バランシングの 2 番目のインスタンスを追加する場合、2 つの内部ロード バランシング IP アドレスが必要になります。フェイルオーバー クラスタリングが 10.0.0.10
を使用し、ウェブサイトのロードバランサが 10.0.0.11
を使用する場合、フェイルオーバー クラスタリングに使用するロードバランサの IP アドレスを指定する必要があります。これにより、どのアドレスがクラスタで使用されているかが明確になります。
構成ファイルのエントリ:
[wsfc] addresses=10.0.0.10
カスタム メタデータで、
wsfc-addrs
を10.0.0.10
に設定します。
クラスタリング エージェントのポートの変更
フェイルオーバー クラスタリング エージェントのポートを設定します。デフォルト ポートは 59998
です。別のポートを使用する場合にのみ、ポートを指定する必要があります。
構成ファイルのエントリ:
[wsfc] port=12345
カスタム メタデータで、
wsfc-agent-port
をポート番号に設定します。
イメージ バージョンの注意事項
古いイメージは構成ファイルを使用しません。機能のサブセットを持つのみです。バージョンが v20160112
から v20170509
の間のイメージ、またはバージョンが 3.2.1.0
から 4.0.0
の間の Windows エージェントでは、次のカスタム メタデータの値を使用する必要があります。
- インスタンスのメタデータで
disable-account-manager
をtrue
に設定して、アカウント マネージャーを無効にします。 - インスタンスのメタデータで
disable-address-manager
をtrue
に設定して、アドレス マネージャーを無効にします。
次のステップ
- Windows VM の認証情報を生成する
- 永続ディスクを追加する
- RDP を使用して Windows VM に接続する
- SSH を使用して Windows VM に接続する
- PowerShell を使用して Windows VM に接続する