既存の Compute Engine Windows Server イメージからカスタマイズした Windows Server イメージを作成できます。これらのカスタム イメージを使用して、既存のインスタンスと同じブートディスクを持つインスタンスを作成します。
これらのカスタム イメージは、既存インスタンスのオペレーティング システムの構成を保存し、同じ構成を再利用して別のインスタンスを作成する場合に便利です。
次のタスクは、このセクションでは扱いません。
- 公開イメージまたはカスタム イメージからの VM の作成。代わりに、新しい Windows インスタンスの作成をご覧ください。
- 永続ディスクのバックアップのスケジュール。代わりに、永続ディスクのスナップショットをご覧ください。
- Windows Server または SQL Server システムのインポート。代わりに、VM 移行サービスを使用してください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、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 イメージを作成する準備を行う
イメージを作成する前に、そのインスタンスで GCESysprep
を実行してイメージ作成プロセスの準備を行います。
GCESysprep
は、次の手順を実施し、Compute Engine イメージになるためのインスタンスを準備します。
- スケジュール設定された
GCEStartup
タスクを無効にします。 - 一時フォルダの場所からすべてのファイルを削除します。
- すべての Windows イベントログを消去します。
- sysprep.exe /generalize /oobe /quit /unattend を実行します
- VM インスタンスの初回起動時に実行するように
instance_setup.ps1
を構成します。 - RDP 証明書を削除します。
- 保存されている永続ディスクのリストを削除します。
- RDP と WinRM のファイアウォール ルールを有効にします。
- Google OS Config サービスを無効にします。
- インスタンスをシャットダウンします。
GCESysprep
オペレーションは、Windows イベントログとシリアルポート 1 にロギングされます。
Sysprep は、複数のログファイルに書き込みます。
GCESysprep
を使用して Compute Engine イメージを作成する方法:
管理者権限で
GCESysprep
を実行します。GCESysprep
イメージのロケーションの指定
カスタム イメージを作成する場合、デュアルリージョンのロケーションを除く、イメージの Cloud Storage のロケーションを指定できます。イメージの保存ロケーションを指定すると、リージョン全体の冗長性を確保することで、データの局所性に関する規制およびコンプライアンスの要件と、高可用性のニーズを満たすことができます。
保存ロケーション機能はオプションです。ロケーションを選択しない場合、Compute Engine はイメージソースに最も近いマルチリージョンにイメージを保存します。ソースディスク、イメージ、スナップショット、または Cloud Storage に保存されているイメージから、カスタム イメージを作成できます。これらのイメージを使用して、新しい VM インスタンスを作成できます。
この機能を起動する前の既存のイメージはすべて、元のロケーションに残ります。唯一の変更点は、すべてのイメージについてイメージのロケーションを表示できることです。移動する既存のイメージがある場合、目的のロケーションに再作成する必要があります。
Windows イメージを作成する
次のソースからディスク イメージを作成できます。
- 永続ディスク。ディスクがインスタンスに接続されていても構いません
- 永続ディスクのスナップショット
- プロジェクトの別のイメージ
- 別のプロジェクトで共有されているイメージ
Cloud Storage に保存されているインポートしたイメージ
- Google Cloud Console で、[新しいイメージの作成] ページに移動します。
- イメージの名前を指定します。
- イメージを作成する元となる、Windows オペレーティング システムがインストールされているソースディスクを選択します。
- イメージを保存するロケーションを指定します。[ソースディスクのロケーションに基づく(デフォルト)] プルダウン メニューからイメージのロケーションを選択します。たとえば、イメージを
us
マルチリージョンに保存するにはus
を指定し、us-central1
リージョンに保存するにはus-central1
を指定します。選択しない場合、Compute Engine はイメージのソースのロケーションに最も近いマルチリージョンにイメージを保存します。 - イメージのプロパティを指定します。たとえば、イメージのイメージ ファミリー名を指定して、このイメージをイメージ ファミリーの一部として管理できます。
- [作成] をクリックします。
gcloud compute
と images create
を使用してイメージの作成元の永続ディスクを指定します。オプションの --force
フラグを指定すると、ソースディスクが実行中のインスタンスに接続されている場合でもイメージを作成できます。
gcloud compute images create example-image --source-disk [DISK_NAME] \
--source-disk-zone [ZONE] \
--storage-location [LOCATION] \
[--force]
[DISK_NAME]
は、イメージの作成元のソースディスクの名前です。[ZONE]
は、ディスクのゾーンです。[LOCATION]
は、イメージを保存するリージョンかマルチリージョンを指定できるオプションのフラグです。たとえば、イメージをus
マルチリージョンに保存するにはus
を指定し、us-central1
リージョンに保存するにはus-central1
を指定します。選択しない場合、Compute Engine はイメージのソースのロケーションに最も近いマルチリージョンにイメージを保存します。--force
は、ディスクが実行中のインスタンスに接続されている場合でもイメージを作成するオプションのフラグです。このオプションを指定すると、イメージの完全性が損なわれる可能性があります。可能であれば、イメージを作成する前にインスタンスを停止してください。
このコマンドを実行すると、gcloud compute
は、指定した永続ディスクに基づいて新しいイメージを作成し、コレクションに追加します。次のコマンドを実行すると、イメージが正常に作成されたことを確認できます。
gcloud compute images list
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順に沿って操作します。詳細については、Compute Engine Go API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順に沿って操作します。詳細については、Compute Engine Java API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順に沿って操作します。詳細については、Compute Engine Node.js API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順に沿って操作します。詳細については、Compute Engine Python API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
リクエスト本文に sourceDisk
URL を追記して POST
リクエストを images().insert
メソッドに発行します。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images?[FORCE_OPTION]
{
"name": "[IMAGE_NAME]",
"sourceDisk": "zones/[ZONE]/disks/[DISK_NAME]",
"storageLocations": "[LOCATION]",
}
ここで
[PROJECT_ID]
はこのリクエストのプロジェクト ID です。[FORCE_OPTION]
は、ソースディスクが実行中のインスタンスに接続されている場合でも強制的にイメージを作成するオプションです。このオプションを設定するには、POST 行の最後にforceCreate=true
を指定します。このオプションを指定すると、イメージの完全性が損なわれる可能性があります。可能であれば、イメージを作成する前にインスタンスを停止してください。[IMAGE_NAME]
は、このイメージに付ける名前です。[ZONE]
は、イメージ作成元のソースディスクのゾーンです。[DISK_NAME]
は、ソースディスクの名前です。[LOCATION]
は、イメージのマルチリージョンかリージョンの保存場所を選択できる、オプションのパラメータです。たとえば、イメージをus
マルチリージョンに保存するにはus
を指定し、us-central1
リージョンに保存するにはus-central1
を指定します。選択しない場合、Compute Engine はイメージのソースのロケーションに最も近いマルチリージョンにイメージを保存します。
イメージの追加に関する詳細については、イメージ参照をご覧ください。
Windows のエージェントとスクリプトを更新する
Compute Engine では、最新のエージェントおよびスクリプトを使用した新しい Windows イメージがリリースされることがあります。これらのアイテムは、Windows インスタンスの起動およびシャットダウン プロセス、アカウント管理、アドレス管理をアシストします。
Windows イメージ バージョン v20160112
以降、Windows エージェントはアップストリーム リリースで自動更新されます。このエージェントの自動更新は、disable-agent-updates
インスタンス メタデータキーを true
に設定することで無効にすることができます。古いイメージ リリースに基づいたインスタンスがある場合は、そのインスタンスの Windows エージェントの手動更新を実施できます。