ディスクは、VM(仮想マシン)のオペレーティング システムの起動と実行に使用するブートディスクか、データ ストレージにのみ使用する非ブートディスクのどちらかです。
スナップショットを使用してディスクデータのバックアップと復元を行う方法は次のとおりです。
ブートディスクまたは非ブートディスクのスナップショットを作成した後、そのスナップショットに基づいて新しいディスクを作成する。
ブートディスクのスナップショットを作成した後、ブートディスクのスナップショットに基づいて新しい VM を作成する。
非ブートディスクのスナップショットを作成した後、そのスナップショットに基づいて、新しい非ブートディスクを含む新しい VM を作成する。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
Go
このページの Go サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
Java
このページの Java サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
Node.js
このページの Node.js サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
Python
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
必要なロール
スナップショットからの復元に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1
)IAM ロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。
この事前定義ロールには、スナップショットからの復元に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
スナップショットから復元するには、次の権限が必要です。
-
スナップショットからディスクを作成するには:
-
プロジェクトに対する
compute.disks.create
-
VM に対する
compute.instances.attachDisk
-
アタッチするディスクに対する
compute.disks.use
-
プロジェクトに対する
compute.snapshots.useReadOnly
、compute.snapshots.create
、またはcompute.disks.createSnapshot
-
プロジェクトに対する
-
ブートディスクと非ブートディスクのスナップショットから VM を作成するには:
- プロジェクトに対する
compute.instances.create
- カスタム イメージを使用して VM を作成する: イメージに対する
compute.images.useReadOnly
- スナップショットを使用して VM を作成する: スナップショットに対する
compute.snapshots.useReadOnly
- インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する
compute.instanceTemplates.useReadOnly
- レガシー ネットワークを VM に割り当てる: プロジェクトに対する
compute.networks.use
- VM の静的 IP アドレスを指定する: プロジェクトに対する
compute.addresses.use
- レガシー ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトに対する
compute.networks.useExternalIp
- VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.use
- VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.useExternalIp
- VM の VM インスタンス メタデータを設定する: プロジェクトに対する
compute.instances.setMetadata
- VM にタグを設定する: VM に対する
compute.instances.setTags
- VM にラベルを設定する: VM に対する
compute.instances.setLabels
- VM が使用するサービス アカウントを設定する: VM に対する
compute.instances.setServiceAccount
- VM に新しいディスクを作成する: プロジェクトに対する
compute.disks.create
- 既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する
compute.disks.use
- 既存のディスクを読み取り専用モードでアタッチする: ディスクに対する
compute.disks.useReadOnly
- プロジェクトに対する
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
スナップショットからディスクを作成し、必要に応じて VM にアタッチする
スナップショットを使用してブートディスクや非ブートディスクをバックアップした場合は、スナップショットに基づいて新しいディスクを作成できます。
制限事項
新しいディスクは、少なくともスナップショットの元のソースディスクと同じサイズか、それ以上である必要があります。スナップショットの元のソースディスクよりも大きいディスクを作成する場合は、その永続ディスクでファイル システムのサイズを変更して、追加のディスク スペースを含める必要があります。オペレーティング システムおよびファイルシステムの種類によっては、異なるファイルシステム サイズ変更ツールの使用が必要になることがあります。詳細については、オペレーティング システムのドキュメントをご覧ください。
最大で 10 分に 1 回、特定のスナップショットから新しいゾーンまたはリージョン ディスクを作成できます。ディスクのスナップショット リクエストを大量に発行する場合、60 分で最大 6 件のリクエストを発行できます。この上限は、スナップショットからリージョン ディスクを作成する場合には適用されません。詳細については、スナップショットの頻度の制限をご覧ください。
コンソール
Google Cloud コンソールで、[スナップショット] ページに移動します。
復元するスナップショットの名前を探します。
[ディスク] ページに移動します。
[新しいディスクの作成] をクリックします。
次の構成パラメータを指定します。
- ディスクの名前。
- ディスクの種類。
- 必要に応じて、デフォルトのリージョンとゾーンの選択をオーバーライドできます。ソース スナップショットのストレージ ロケーションに関係なく、任意のリージョンとゾーンを選択できます。
[ソースタイプ] で、[スナップショット] をクリックします。
復元するスナップショットの名前を選択します。
新しいディスクのサイズ(ギガバイト単位)を選択します。この数は、スナップショットの元のソースディスク以上である必要があります。
[作成] をクリックしてディスクを作成します。
必要に応じて、新しいディスクを既存のインスタンスにアタッチできます。
- [VM インスタンス] ページに移動します。
- ブートディスク以外のディスクを復元する先となるインスタンスの名前をクリックします。
- インスタンス詳細ページの一番上で [編集] をクリックします。
- [追加ディスク] で [既存のディスクを接続] をクリックします。
- スナップショットから作成された新しいディスクの名前を選択します。
- [完了] をクリックしてディスクをアタッチします。
- インスタンスの詳細ページの一番下にある [保存] をクリックして、変更内容をインスタンスに適用します。
gcloud
gcloud compute snapshots list
コマンドを使用して、復元するスナップショットの名前を確認します。gcloud compute snapshots list
gcloud compute snapshots describe
コマンドを使用して、復元するスナップショットのサイズを確認します。gcloud compute snapshots describe SNAPSHOT_NAME
SNAPSHOT_NAME は、復元するスナップショットの名前に置き換えます。
gcloud compute disks create
コマンドを使用して、スナップショットから新しいリージョン ディスクまたはゾーンディスクを作成します。スループットや IOPS を上げるために SSD 永続ディスクが必要な場合は、--type
フラグでpd-ssd
を指定します。gcloud compute disks create DISK_NAME \ --size=DISK_SIZE \ --source-snapshot=SNAPSHOT_NAME \ --type=DISK_TYPE
次のように置き換えます。
- DISK_NAME: 新しいディスクの名前。
- DISK_SIZE: 新しいディスクのサイズ(ギガバイト単位)。この数は、スナップショットの元のソースディスク以上である必要があります。
- SNAPSHOT_NAME: 復元するスナップショットの名前。
- DISK_TYPE: ディスクのタイプの完全な URL または部分的な URL。例:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE/diskTypes/pd-ssd
省略可:
gcloud compute instances attach-disk
コマンドを使用して、新しいディスクを既存のインスタンスにアタッチします。gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME
次のように置き換えます。
- INSTANCE_NAME はインスタンス名です。
- DISK_NAME は、スナップショットから作成されたディスクの名前です。
Go
Go
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順に沿って操作します。詳細については、Compute Engine Go API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順に沿って操作します。詳細については、Compute Engine Java API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順に沿って操作します。詳細については、Compute Engine Node.js API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順に沿って操作します。詳細については、Compute Engine Python API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST
snapshots.list
へのGET
リクエストを作成して、プロジェクト内のスナップショットを一覧表示します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots
PROJECT_ID は、実際のプロジェクト ID に置き換えます。
それぞれの
disks.insert
メソッドを使用して、リージョン ディスクまたはゾーンディスクを作成するPOST
リクエストを作成します。- ゾーンディスクの場合:
disks.insert
- リージョン ディスクの場合:
regionDisks.insert
(リージョン ディスクの場合)
name
、sizeGb
、type
プロパティを含めます。スナップショットを使用してディスクを復元するには、sourceSnapshot
プロパティを含める必要があります。たとえば、次のリクエストではゾーンディスクが作成されます。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "DISK_NAME", "sizeGb": "DISK_SIZE", "type": "zones/ZONE/diskTypes/DISK_TYPE" "sourceSnapshot": "SNAPSHOT_NAME" }
次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- ZONE: インスタンスと新しいディスクが配置されるゾーン。
- DISK_NAME: 新しいディスクの名前。
- DISK_SIZE: 新しいディスクのサイズ(ギガバイト単位)。この数は、スナップショットの元のソースディスク以上である必要があります。
- DISK_TYPE: ディスクのタイプの完全な URL または部分的な URL。例:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ ZONE/diskTypes/pd-ssd
。 - SNAPSHOT_NAME は、復元するディスクのソース スナップショットです。
- ゾーンディスクの場合:
必要に応じて、
instances.attachDisk
メソッドに対するPOST
リクエストを作成し、スナップショットから作成したディスクへの URL を含めることで、新しいディスクを既存のインスタンスにアタッチできます。リージョン ディスクの場合は、
zones/ZONE
をregions/REGION
に置き換えます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk { "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME" }
次のように置き換えます。
- PROJECT_ID はプロジェクト ID です。
- ZONE は、インスタンスと新しいディスクが配置されるゾーンです。
- INSTANCE_NAME は、新しいディスクを追加するインスタンスの名前です。
- DISK_NAME は、新しいディスクの名前です。
新しいディスクを作成してインスタンスにアタッチしたら、ディスクをマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。
既存のディスクから VM を作成する
スナップショットからブートディスクとデータディスクを作成し、これらのディスクを新しい VM にアタッチできます。
Go
Go
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順に沿って操作します。詳細については、Compute Engine Go API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順に沿って操作します。詳細については、Compute Engine Java API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順に沿って操作します。詳細については、Compute Engine Node.js API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順に沿って操作します。詳細については、Compute Engine Python API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ブートディスク スナップショットから VM を作成する
スナップショットで VM のブートディスクをバックアップした場合は、そのスナップショットを使用して新しい VM を作成できます。
スナップショットからリージョン Persistent Disk ブートディスクを使用する VM を作成するには、Google Cloud CLI または Compute Engine API を使用します。
コンソール
Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[インスタンスを作成] をクリックします。
VM の名前を指定します。詳しくは、リソースの命名規則をご覧ください。
(省略可)この VM のゾーンを変更します。[任意] を選択すると、マシンタイプと可用性に基づいてゾーンが自動的に選択されます。
VM のマシン構成を選択します。
[ブートディスク] セクションで [変更] をクリックし、次の操作を行います。
- [スナップショット] タブをクリックします。
- [スナップショット] リストで、スナップショットをクリックします。
- ブートディスクのタイプとサイズを指定します。
- (省略可)詳細な構成オプションについては、[詳細設定を表示] をクリックします。
- ブートディスクのオプションを確認するには、[選択] をクリックします。
[ファイアウォール] セクションで、VM への HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] を選択します。
Google Cloud コンソールによってネットワーク タグが VM に追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、
tcp:80
(HTTP)またはtcp:443
(HTTPS)で受信するすべてのトラフィックが許可されます。このネットワーク タグによってファイアウォール ルールが VM に関連付けられます。詳細については、Virtual Private Cloud のドキュメントでファイアウォール ルールの概要をご覧ください。VM を作成して起動するには、[作成] をクリックします。
gcloud
Persistent Disk ブートディスク
gcloud compute instances create
コマンドを使用して、--source-snapshot
フラグを含めます。
gcloud compute instances create VM_NAME \ --source-snapshot=BOOT_SNAPSHOT_NAME \ --boot-disk-size=BOOT_DISK_SIZE \ --boot-disk-type=BOOT_DISK_TYPE \ --boot-disk-device-name=BOOT_DISK_NAME
次のように置き換えます。
リージョン Persistent Disk ブートディスク
gcloud compute instances create
コマンドを使用し、source-snapshot
、replica-zones
、boot
の各プロパティを指定して --create-disk
フラグを含めます。
gcloud compute instances create VM_NAME \ --zone=ZONE \ --create-disk=^:^name=DISK_NAME:source-snapshot=BOOT_SNAPSHOT_NAME:boot=true:replica-zones=ZONE,REMOTE_ZONE
文字 ^:^
は、各ディスク プロパティの区切りとしてコロン :
を使用することを指定します。これは、replica-zones
のゾーンを指定するときにカンマ ,
を使用できるようにするために必要です。
次のように置き換えます。
VM_NAME
: 新しい VM の名前ZONE
: VM を作成するゾーンDISK_NAME
: 省略可。ディスクの名前BOOT_SNAPSHOT_NAME
: 新しい VM のブートディスクに復元するブートディスク スナップショットの名前。REMOTE_ZONE
: リージョン Persistent Disk が複製されるリージョン。replica-zones
プロパティには、カンマで区切られた 2 つのゾーンが必要で、そのうち 1 つのゾーンが VM と同じゾーンである必要があります。
Go
Go
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順に沿って操作します。詳細については、Compute Engine Go API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順に沿って操作します。詳細については、Compute Engine Java API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順に沿って操作します。詳細については、Compute Engine Node.js API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順に沿って操作します。詳細については、Compute Engine Python API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST
API を使用してスナップショットから VM を作成する際には、次の制限が適用されます。
- ブートディスクとして使用できる永続ディスクは 1 つのみです。
- ブートディスクを、その VM の最初のディスクとしてアタッチする必要があります。
source
プロパティを指定する場合、initializeParams
プロパティを同時に指定することはできません。source
はブート永続ディスクがすでに存在することを示すのに対し、initializeParams
プロパティは Compute Engine によって新しいブート永続ディスクを作成する必要があることを示します。
Persistent Disk ブートディスク
ブートディスク スナップショットから VM を作成するには、instances.insert
メソッドを使用し、disks
プロパティで sourceSnapshot
フィールドを指定します。省略可: 新しいブートディスクの diskSizeGb
プロパティと diskType
プロパティを指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "machineTypes/MACHINE_TYPE" "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }], "network": "global/networks/default" }], "disks": [{ "boot": true, "initializeParams": { "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME", "diskSizeGb": "BOOT_DISK_SIZE", "diskType": "BOOT_DISK_TYPE" } }], }
リージョン Persistent Disk ブートディスク
ブートディスク スナップショットからリージョン Persistent Disk を使用する VM を作成するには、instances.insert
メソッドを使用し、disks
プロパティの sourceSnapshot
および replicaZones
フィールドを指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "disks": [{ "boot": true, "initializeParams": { "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME", "replicaZones": [ "projects/PROJECT_ID/zones/ZONE", "projects/PROJECT_ID/zones/REMOTE_ZONE"] } }], }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: VM を作成するゾーンの名前VM_NAME
: VM の名前BOOT_SNAPSHOT_NAME
: ブートディスク スナップショットの名前REMOTE_ZONE
: リージョン Persistent Disk のリモートゾーン
非ブートディスクのスナップショットから VM を作成する
スナップショットを使用して非ブートディスクをバックアップした場合は、そのスナップショットに基づいて新しい非ブートディスクを含む VM を作成できます。
コンソール
コンソールで、新しい VM に非ブート スナップショットを復元する場合は、まず各スナップショットからディスクを作成します。次に、VM を作成する際に新しいディスクをアタッチします。
新しいディスクに各非ブート スナップショットを復元します。
Google Cloud コンソールで、[ディスク] ページに移動します。
[ディスクを作成] をクリックします。
[名前] でディスクの名前を指定します。詳しくは、リソースの命名規則をご覧ください。
このディスクの [リージョン] と [ゾーン] を選択します。ディスクと VM は、ゾーンディスクの場合は同じゾーンに、リージョン ディスクの場合は同じリージョンに存在する必要があります。
ディスクの [タイプ] を選択します。
[ソースの種類] で、[スナップショット] を選択します。
新しい [ソース スナップショット] フィールドで、新しいディスクに復元する非ブート スナップショットを選択します。
ディスクを作成するには、[作成] をクリックします。
この手順を繰り返して、復元する各スナップショットからディスクを作成します。VM を作成する際は、非ブートディスクを最大 15 個まで追加できます。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[インスタンスを作成] をクリックします。
- VM の名前を指定します。詳しくは、リソースの命名規則をご覧ください。
- この VM の [リージョン] と [ゾーン] を選択します。ディスクと VM は、ゾーンディスクの場合は同じゾーンに、リージョン ディスクの場合は同じリージョンに存在する必要があります。
- VM の [マシンタイプ] を選択します。
- 外部からの受信トラフィックを許可する場合は、VM のファイアウォール ルールを変更します。
ディスクを VM にアタッチするには、[詳細オプション] セクションを開いて次の操作を行います。
- [ディスク] セクションを開きます。
- [既存のディスクを接続] をクリックします。
- [ディスク] リストで、この VM にアタッチするディスクを選択します。
- [アタッチメントの設定] セクションで、ディスクのアタッチメントの [モード] と [削除ルール] を選択します。新しいディスクの追加の詳細については、永続ディスクを VM に追加するをご覧ください。
- [保存] をクリックします。
アタッチするディスクごとに、この手順を繰り返します。VM を作成する際は、非ブートディスクを最大 15 個追加できます。
VM を作成して起動するには、[作成] をクリックします。
gcloud
gcloud compute instances create
コマンドを使用して VM を作成します。復元する非ブート スナップショットごとに、--create-disk
フラグを含め source-snapshot
を指定します。VM を作成する際は、非ブートディスクを最大 15 個追加できます。
たとえば、2 つの非ブート スナップショットを新しい VM に復元するには、次のコマンドを使用します。
gcloud compute instances create VM_NAME \ --create-disk source-snapshot=SNAPSHOT_1_NAME,name=DISK_1_NAME,size=DISK_1_SIZE,type=DISK_1_TYPE \ --create-disk source-snapshot=SNAPSHOT_2_NAME,name=DISK_2_NAME,size=DISK_2_SIZE,type=DISK_2_TYPE
次のように置き換えます。
VM_NAME
: 新しい VM の名前SNAPSHOT_1_NAME
、SNAPSHOT_2_NAME
: 復元する非ブート スナップショットの名前DISK_1_NAME
、DISK_2_NAME
: この VM の新しい非ブートディスクの名前DISK_1_SIZE
、DISK_2_SIZE
: 省略可。新しいブートディスクのサイズ(ギガバイト単位)サイズは、スナップショットが作成されたソースディスクのサイズ以上にする必要があります。
DISK_1_TYPE
、DISK_2_TYPE
: 省略可。永続ディスクのタイプ例:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
REST
API を使用して非ブート スナップショットを新しい VM に復元する場合は、次の制限が適用されます。
- ブート永続ディスクとして使用できる永続ディスクは 1 つだけです。
- ブート永続ディスクを、その VM の最初のディスクとしてアタッチする必要があります。
source
プロパティを指定する場合は、initializeParams
プロパティを同時に指定することはできません。source
はブート永続ディスクがすでに存在することを示すのに対し、initializeParams
プロパティは Compute Engine によって新しいブート永続ディスクを作成する必要があることを示します。
ベータ版 API を使用して、initializeParams
プロパティの下で sourceSnapshot
フィールドを指定します。作成する非ブートディスクごとに initializeParams
プロパティを繰り返して、最大 15 個の非ブートディスクを追加できます。必要に応じて、作成するディスクの diskSizeGb
プロパティと diskType
プロパティを指定できます。
たとえば、2 つの非ブート スナップショットを新しい VM に復元するには、次のリクエストを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "machineTypes/MACHINE_TYPE" "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }], "network": "global/networks/default" }], "disks": [{ "autoDelete": "true", "boot": "true", "type": "PERSISTENT", "diskSizeGb": "DISK_SIZE", "diskType": "DISK_TYPE" }, { "initializeParams": { "sourceSnapshot": "global/snapshots/SNAPSHOT_1_NAME", "diskSizeGb": "DISK_SIZE", "diskType": "DISK_TYPE" } }, { "initializeParams": { "sourceSnapshot": "global/snapshots/SNAPSHOT_2_NAME", "diskSizeGb": "DISK_SIZE", "diskType": "DISK_TYPE" } }] }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: VM を作成するゾーンVM_NAME
: スナップショットを復元する VM の名前MACHINE_TYPE
: VM のマシンタイプDISK_SIZE
: 省略可。対応するディスクのサイズ(ギガバイト単位)指定する場合、このプロパティは、スナップショットが作成されたソースディスクのサイズ以上にする必要があります。
DISK_TYPE
: 省略可。対応する永続ディスクのタイプの完全な URL または部分的な URL例:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
SNAPSHOT_1_NAME
、SNAPSHOT_2_NAME
: 新しい VM の新しい非ブートディスクに復元する非ブート スナップショットの名前