VM インスタンスの作成と起動

このドキュメントでは、ブートディスク イメージ、ブートディスク スナップショット、またはコンテナ イメージを使用して仮想マシン(VM)インスタンスを作成する方法について説明します。ブートディスク イメージから VM インスタンスを作成する際は、通常のイメージまたは Shielded VM イメージのいずれかを使用できます。Shielded VM イメージは、UEFI 準拠のファームウェア、セキュアブート、vTPM で保護されたメジャード ブートなどのセキュリティ機能を備えています。VM インスタンスを作成すると、Compute Engine によってそのインスタンスが自動的に起動されます。

作成プロセス時は、VM インスタンス用に複数のディスクを作成できます。作成後も、インスタンスにさらにディスクを追加できます。

このドキュメントでは、インスタンスを作成する基本的な方法について説明します。より具体的または複雑なインスタンスの構成については、次のリソースをご覧ください。

既存のライセンスを使用する場合は、単一テナントノードでお客様が所有するライセンスを使用するをご覧ください。

始める前に

イメージからのインスタンスの作成

このセクションでは、特定のオペレーティング システムのイメージからインスタンスを作成する方法について説明します。ブートディスク イメージには、ブートローダー、ブート ファイルシステム、インスタンス上で実行されるオペレーティング システムが含まれます。

上級ユーザーの場合、カスタム イメージを作成し、Compute Engine によって提供される公開イメージの代わりに使用できます。

Google Cloud Console、gcloud コマンドライン ツール、または API でイメージを使用してインスタンスを作成できます。

公開イメージからのインスタンスの作成

公開イメージは、Google、オープンソース コミュニティ、サードパーティ ベンダーによって提供され、保守されます。デフォルトで、すべてのプロジェクトがこれらのイメージにアクセスでき、これらのイメージを使用して、共通のオペレーティング システム イメージでインスタンスを作成できます。

インスタンスを作成するには、必要なオペレーティング システムのイメージ ファミリーを指定します。Compute Engine には複数の Linux ディストリビューションがあり、一部は通常のイメージと Shielded VM イメージの両方で提供されます。インスタンス用にローカル SSD ストレージを選択した場合、Shielded VM の整合性のモニタリング機能は利用できません。データのシールドに vTPM を使用することもできません。利用可能なイメージ ファミリーの一覧については、公開イメージをご覧ください。

Console

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

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

  2. プロジェクトを選択し、[続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [名前] でインスタンスの名前を指定します。
  5. 必要に応じて、[ゾーン] でこのインスタンスのゾーンを変更します。

    注: ゾーンのリストは、複数のゾーンで各リージョンが均等に使用されるよう、各リージョン内でランダム化されています。

  6. [マシンの構成] で、このインスタンスのマシンタイプを選択します。

  7. [ブートディスク] セクションの [変更] をクリックして、ブートディスクを構成します。
    MBR パーティションの制限を考慮して、2 TB 未満のブートディスクを作成します。

  8. [OS イメージ] タブで、イメージを選択します。
    Shielded VM イメージのみを表示するには、[Shielded VM の機能を持つイメージを表示する] を選択します。

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

  10. VM インスタンスへの HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] をオンにします。

    Cloud Console によってネットワーク タグがインスタンスに追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、tcp:80(HTTP)または tcp:443(HTTPS)で着信するすべてのトラフィックが許可されます。このネットワーク タグでファイアウォール ルールがインスタンスに関連付けられます。詳細については、Virtual Private Cloud のドキュメントでファイアウォール ルールの概要をご覧ください。

  11. VM インスタンスにブートディスク以外のセカンダリ ディスクを追加する手順は、次のとおりです。

    1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] セクションをクリックします。
    2. [ディスク] タブをクリックします。
    3. [追加ディスク] で [新しいディスクを追加] をクリックします。
    4. ディスクの情報を [名前]、[タイプ]、[ソースの種類]、[モード]、[削除ルール] にそれぞれ指定します。
    5. [完了] をクリックします。
    6. 必要に応じて、さらにディスクを追加します。
  12. Shielded VM をサポートするイメージを選択した場合は、そのインスタンスの Shielded VM の設定を必要に応じて変更します。

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

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

  13. [作成] ボタンをクリックしてインスタンスを作成し、開始します。

gcloud

インスタンスを作成する前に、インスタンスのブートディスクに使用するオペレーティング システム イメージを選択します。イメージ ID、イメージ ファミリー、イメージ プロジェクトを含む、Shielded VM ではない公開イメージのリストを表示するには、フラグを何も指定せずに gcloud compute images list コマンドを実行します。

gcloud compute images list

Shielded VM の公開イメージのリストを表示するには、次のフラグを指定して gcloud compute images list コマンドを実行します。

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

イメージを選択したら、gcloud compute instances create コマンドを使用してインスタンスを作成します。

オペレーティング システム イメージの最新バージョンを使用するには、--image-family フラグと --image-project フラグを指定します。たとえば、debian-9 はサポートが終了していない最新バージョンの Debian 9 イメージを返すイメージ ファミリーであり、debian-cloud はイメージ プロジェクトです。

イメージ ファミリーの最新のイメージを使用してインスタンスを作成します。

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT]

ここで

レスポンスの例:

Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/[ZONE]/instances/[INSTANCE_NAME]].
NAME            ZONE   MACHINE_TYPE  INTERNAL_IP   EXTERNAL_IP    STATUS
[INSTANCE_NAME] [ZONE] n1-standard-1 10.105.155.92 173.255.114.53 RUNNING

最新のバージョンではなく特定のイメージ バージョンを使用する必要がある場合は、--image フラグと --image-project フラグを指定します。たとえば、debian-9-stretch-v20170619 Debian イメージを使用するインスタンスを作成するには、--image debian-9-stretch-v20170619--image-project debian-cloud を指定します。

特定のバージョンのイメージを使用するインスタンスを作成します。

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE_ID] \
    --image-project [IMAGE_PROJECT]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE_ID] は、特定のイメージです。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトです。

インスタンスを作成する際は、セカンダリ非ブートディスクを最大 128 個まで追加できます。作成するセカンダリ ディスクごとに --create-disk フラグを指定します。公開イメージまたはストック イメージからセカンダリ ディスクを作成するには、--create-disk フラグに image および image-project プロパティを指定します。空のディスクを作成するには、これらのプロパティを指定しないでください。ディスクの sizetype のプロパティは必要に応じて指定してください。

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE_FAMILY] は、使用可能なイメージ ファミリーのいずれかです。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトです。
  • [DISK_IMAGE] は、セカンダリ ディスクのソースイメージです。使用可能なイメージのリストを表示するには、gcloud compute images list を実行します。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [DISK_IMAGE_PROJECT] は、ディスク イメージが属するイメージ プロジェクトです。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [SIZE_GB] は、セカンダリ ディスクのサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

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

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

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

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

gcloud beta compute instances create my-instance \
  --image-family ubuntu-1804-lts --image-project gce-uefi-images \
  --no-shielded-secure-boot

API

API でインスタンスを起動するには、次のプロパティを指定してリクエストを送信します。

  • ソースイメージ
  • ネットワーク インターフェース
  • マシンタイプ
  • VPC ネットワークがカスタムモードの VPC ネットワークである場合、インスタンスの作成先サブネットを指定する必要もあります。
  • Shielded VM をサポートするイメージを選択した場合は、必要に応じて次のブール値の項目をリクエスト本文で使用して、インスタンスの Shielded VM の設定を変更できます。

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

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

リソースのプロパティを決定したら、リクエストの本文を作成して API リクエストを作成します。API リクエストの作成と API レスポンスの処理の詳細については、API リクエストの作成とレスポンスの処理をご覧ください。

API リクエストの作成

API クライアント ライブラリを使用する場合、REST API を直接呼び出すか、instances().insert メソッドを使用して新しいインスタンスを起動します。それぞれの方法の例を次に示します。

REST

API で、インスタンス URI に対し、同じリクエスト本文を使用した POST リクエストを作成します。追加のディスクごとに initializeParams プロパティを使用すると、VM インスタンスの作成時にセカンダリ非ブートディスクを最大 128 個追加できます。公開イメージまたは非公開イメージで追加のディスクを作成します。空のディスクを追加するには、イメージソースを指定しないでください。必要に応じて、diskSizeGbdiskTypelabels の各プロパティを指定できます。

def addInstance(http, listOfHeaders):
  url = "https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances"

  body = {
    "name": "[INSTANCE_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",
       "initializeParams": {
         "sourceImage": "projects/[IMAGE_PROJECT]/global/images/family/[IMAGE]",
         "labels": {
           "key": "[LABEL_KEY]",
           "value": "[LABEL_VALUE]",
         }
       }
     },
     {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage":"[IMAGE]"
       },
       {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]"
       }
     }]

  bodyContentURLEncoded = urllib.urlencode(bodyContent)
  resp, content = http.request(uri=url, method="POST", body=dumps(bodyContent), headers=listOfHeaders)

  print resp
  print content

ここで

  • [INSTANCE_NAME] は、インスタンスの名前です。
  • [PROJECT_ID] はプロジェクト ID です。
  • [ZONE] は、このインスタンスのゾーンです。
  • [MACHINE_TYPE] は、インスタンスのマシンタイプです。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトdebian-cloudubuntu-os-cloud など)です。
  • [IMAGE] は、使用可能な公開イメージ ファミリーのいずれかです。たとえば、family/debian-9 を指定すると、最新バージョンの Debian 9 イメージが使用されます。または、family/ パスなしの debian-9-stretch-v20170619 など、特定のイメージ バージョンを使用することもできます。空のディスクを作成する場合は、イメージソースを指定しないでください。
  • [LABEL_KEY][LABEL_VALUE] は、ディスクに適用するラベルです。labels フィールドは省略可能です。
  • [SIZE_GB] は、ディスクサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

空のセカンダリ ディスクを使用してインスタンスを作成する場合は、それらのディスクをフォーマットしてマウントし、ゲスト オペレーティング システムで使用できるようにします。

Python 用 Cloud クライアント ライブラリ

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

カスタム イメージからのインスタンスの作成

カスタム イメージは、自分のプロジェクトにのみ属します。カスタム イメージでインスタンスを作成するには、事前にカスタム イメージを作成しておく必要があります。カスタム イメージの作成方法の詳細については、カスタム イメージの作成をご覧ください。

Console

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

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

  2. プロジェクトを選択し、[続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [名前] でインスタンスの名前を指定します。
  5. 必要に応じて、[ゾーン] でこのインスタンスのゾーンを変更します。

    注: ゾーンのリストは、複数のゾーンで各リージョンが均等に使用されるよう、各リージョン内でランダム化されています。

  6. [マシンの構成] で、このインスタンスのマシンタイプを選択します。

  7. [ブートディスク] セクションの [変更] をクリックして、ブートディスクを構成します。
    MBR パーティションの制限を考慮して、2 TB 未満のブートディスクを作成します。

  8. [カスタム イメージ] タブを選択します。

  9. プルダウン リストでプロジェクトが選択されていることを確認します。

  10. 必要なイメージを選択し、[選択] ボタンをクリックします。

  11. VM インスタンスへの HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] をオンにします。

    Cloud Console によってネットワーク タグがインスタンスに追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、tcp:80(HTTP)または tcp:443(HTTPS)で着信するすべてのトラフィックが許可されます。このネットワーク タグでファイアウォール ルールがインスタンスに関連付けられます。詳細については、Virtual Private Cloud のドキュメントでファイアウォール ルールの概要をご覧ください。

  12. VM インスタンスにブートディスク以外のセカンダリ ディスクを追加する手順は、次のとおりです。

    1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
    2. [ディスク] タブを選択します。
    3. [追加ディスク] で、[新しいディスクを追加] をクリックします。
    4. ディスクの情報を [名前]、[タイプ]、[ソースの種類]、[モード]、[削除ルール] にそれぞれ指定します。
    5. [完了] をクリックします。
    6. 必要に応じて、さらにディスクを追加します。
  13. [作成] ボタンをクリックしてインスタンスを作成し、開始します。

gcloud

gcloud compute instances create コマンドを実行して、カスタム イメージを使用するインスタンスを作成します。

gcloud compute instances create [INSTANCE_NAME] \
--image [IMAGE_NAME] \
--image-family [IMAGE_FAMILY]

ここで

  • [INSTANCE_NAME] はインスタンス名です。
  • [IMAGE_NAME] は、イメージ名です。
  • [IMAGE] は、オプション フィールドです。非公開または公開イメージを使用します。イメージを指定しないと、ディスクは空になります。

カスタム イメージをイメージ ファミリーの一部として作成した場合は、イメージ名の代わりにイメージ ファミリーを指定してください。そうすると、インスタンスは、イメージ ファミリー内の非推奨でない最新のイメージを自動的に使用します。

インスタンスを作成する際は、セカンダリ非ブートディスクを最大 128 個まで追加できます。作成するセカンダリ ディスクごとに --create-disk フラグを指定します。公開イメージまたはストック イメージからセカンダリ ディスクを作成するには、--create-disk フラグに image および image-project プロパティを指定します。空のディスクを作成するには、これらのプロパティを指定しないでください。ディスクの sizetype のプロパティは必要に応じて指定してください。

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE_FAMILY] は、使用可能なイメージ ファミリーのいずれかです。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトです。
  • [DISK_IMAGE] は、セカンダリ ディスクのソースイメージです。使用可能なイメージのリストを表示するには、gcloud compute images list を実行します。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [DISK_IMAGE_PROJECT] は、ディスク イメージが属するイメージ プロジェクトです。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [SIZE_GB] は、セカンダリ ディスクのサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

API

API でカスタム イメージを使用してインスタンスを作成するプロセスは、一般公開イメージを使用してインスタンスを作成する場合と同じです。sourceImage URI に、独自のプロジェクト ID とイメージ名を指定します。

追加のディスクごとに initializeParams プロパティを使用すると、VM インスタンスの作成時にセカンダリ非ブートディスクを最大 128 個作成できます。公開イメージまたは非公開イメージを使用した追加のディスクを作成します。空のディスクを追加するには、sourceImage 値のない initializeParams エントリを定義します。

...
"initializeParams" :{
   "sourceImage": "global/images/[IMAGE_NAME]"
},
{
"initializeParams": {
   "diskSizeGb": "[SIZE_GB]",
   "sourceImage": "[IMAGE]",
   "diskType": "[DISK_TYPE]"
 },
 {
 "initializeParams": {
 "diskSizeGb": "[SIZE_GB]",
 "diskType": "[DISK_TYPE]"
 }
}...]

ここで

  • [PROJECT_ID] はプロジェクト ID です。
  • [IMAGE_NAME]debian-9-stretch-v20170619 のような特定のイメージです。イメージ ファミリーを指定することもできます。たとえば、family/debian-9 を指定すると、最新バージョンの Debian 9 イメージが返されます。
  • [IMAGE] は、セカンダリ ディスクのソースイメージです。空のディスクを作成する場合は、イメージソースを指定しないでください。
  • [SIZE_GB] は、ディスクサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

共有するイメージを使用したインスタンスの作成

別のユーザーとイメージを共有している場合、そのイメージを使用して新しいインスタンスを作成できます。

Console

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

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

  2. プロジェクトを選択し、[続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [名前] でインスタンスの名前を指定します。
  5. 必要に応じて、[ゾーン] でこのインスタンスのゾーンを変更します。

  6. [マシンの構成] で、このインスタンスのマシンタイプを選択します。

  7. [ブートディスク] セクションの [変更] をクリックして、ブートディスクを構成します。

    MBR パーティションの制限を考慮して、2 TB 未満のブートディスクを作成します。

  8. [カスタム イメージ] タブを選択します。

  9. プルダウン リストからイメージ プロジェクトを選択します。

  10. 必要なイメージを選択し、[選択] ボタンをクリックします。

  11. VM インスタンスへの HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] をオンにします。

    Cloud Console によってネットワーク タグがインスタンスに追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、tcp:80(HTTP)または tcp:443(HTTPS)で着信するすべてのトラフィックが許可されます。このネットワーク タグでファイアウォール ルールがインスタンスに関連付けられます。詳細については、Virtual Private Cloud のドキュメントでファイアウォール ルールの概要をご覧ください。

  12. VM インスタンスにブートディスク以外のセカンダリ ディスクを追加する手順は、次のとおりです。

    1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
    2. [ディスク] タブを選択します。
    3. [追加ディスク] で、[新しいディスクを追加] をクリックします。
    4. ディスクの情報を [名前]、[タイプ]、[ソースの種類]、[モード]、[削除ルール] にそれぞれ指定します。
    5. [完了] をクリックします。
    6. 必要に応じて、さらにディスクを追加します。
  13. [作成] ボタンをクリックしてインスタンスを作成し、開始します。

gcloud

gcloud compute instances create コマンドでインスタンスを作成し、--image フラグと --image-project フラグを使用してイメージ名とそのイメージが属するプロジェクトを指定します。

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE] \
    --image-project [IMAGE_PROJECT]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE] は、イメージ名です。
  • [IMAGE_PROJECT] は、イメージが属するプロジェクトです。

コマンドが成功すると、gcloud は新しいインスタンスのプロパティを返します。

Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
example-instance     us-central1-b  n1-standard-1               10.240.0.4   104.198.53.60  RUNNING

インスタンスを作成する際は、セカンダリ非ブートディスクを最大 128 個まで追加できます。作成するセカンダリ ディスクごとに --create-disk フラグを指定します。公開イメージまたはストック イメージからセカンダリ ディスクを作成するには、--create-disk フラグに image および image-project プロパティを指定します。空のディスクを作成するには、これらのプロパティを指定しないでください。ディスクの sizetype のプロパティは必要に応じて指定してください。

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [IMAGE_FAMILY] は、使用可能なイメージ ファミリーのいずれかです。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトです。
  • [DISK_IMAGE] は、セカンダリ ディスクのソースイメージです。使用可能なイメージのリストを表示するには、gcloud compute images list を実行します。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [DISK_IMAGE_PROJECT] は、ディスク イメージが属するイメージ プロジェクトです。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [SIZE_GB] は、セカンダリ ディスクのサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

API

API の手順に沿って公開イメージからインスタンスを作成し、リクエストの本文で image フィールドを指定します。追加するすべてのディスクに initializeParams フィールドを指定すると、セカンダリ非ブートディスクを最大 128 個まで追加できます。空のディスクを追加するには、イメージソースを指定しないでください。必要に応じて、diskSizeGbdiskTypelabels の各プロパティを指定できます。

...
image: "projects/[PROJECT_ID]/global/images/[IMAGE]

{
 "initializeParams": {
    "diskSizeGb": "[SIZE_GB]",
    "sourceImage": "[IMAGE]"
       }
   {
  "initializeParams": {
  "diskSizeGb": "[SIZE_GB]"
   }
 }...]

ここで

  • [PROJECT_ID] はイメージが含まれるプロジェクトです。
  • [IMAGE] は、ソースイメージです。
  • [SIZE_GB] は、ディスクサイズです。
  • [IMAGE] は、セカンダリ ディスクのソースイメージです。空のディスクを作成する場合は、イメージソースを指定しないでください。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

スナップショットからの VM インスタンスの作成

スナップショットでブート永続ディスクをバックアップしていた場合、そのスナップショットを使用してインスタンスを作成できます。

同じブートディスク スナップショットから多数のインスタンスを作成する場合、スナップショットを使用する代わりにカスタムイメージを作成し、そのイメージからインスタンスを作成することを検討してください。カスタム イメージを使用すると、スナップショットより迅速で効率的にインスタンスのブートディスクを作成できます。

スナップショットから新しい VM インスタンスのブートディスクを作成する

新しいインスタンスを作成するときに、新しいブートディスクにブートディスクのスナップショットを復元できます。

Console

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

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

  2. プロジェクトを選択し、[続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [名前] でインスタンスの名前を指定します。
  5. 必要に応じて、[ゾーン] でこのインスタンスのゾーンを変更します。

  6. [マシンの構成] で、このインスタンスのマシンタイプを選択します。

  7. [ブートディスク] セクションの [変更] をクリックして、ブートディスクを構成します。

    MBR パーティションの制限を考慮して、2 TB 未満のブートディスクを作成します。

  8. [スナップショット] タブをクリックし、リストからスナップショットを選択します。

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

  10. VM インスタンスへの HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] をオンにします。

    Cloud Console によってネットワーク タグがインスタンスに追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、tcp:80(HTTP)または tcp:443(HTTPS)で着信するすべてのトラフィックが許可されます。このネットワーク タグでファイアウォール ルールがインスタンスに関連付けられます。詳細については、Virtual Private Cloud のドキュメントでファイアウォール ルールの概要をご覧ください。

  11. VM インスタンスにブートディスク以外のセカンダリ ディスクを追加する手順は、次のとおりです。

    1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
    2. [ディスク] タブを選択します。
    3. [追加ディスク] で、[新しいディスクを追加] をクリックします。
    4. ディスクの情報を [名前]、[タイプ]、[ソースの種類]、[モード]、[削除ルール] にそれぞれ指定します。
    5. [完了] をクリックします。
    6. 必要に応じて、さらにディスクを追加します。
  12. [作成] ボタンをクリックしてインスタンスを作成し、開始します。

gcloud

gcloud compute instances create コマンドを使用して、--source-snapshot フラグを含めます。

gcloud compute instances create [INSTANCE_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]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [BOOT_SNAPSHOT_NAME] は、新しいインスタンスのブートディスクに復元するブートディスク スナップショットの名前です。
  • [BOOT_DISK_NAME] は、このインスタンスの新しいブートディスクの名前です。
  • [BOOT_DISK_SIZE] は、新しいブートディスクのサイズ(ギガバイト単位)です。サイズは、スナップショットが作成されたソースディスクのサイズ以上である必要があります。このプロパティは省略可能です。
  • [BOOT_DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。このフラグは省略可能です。

必要に応じて非ブートディスクのスナップショットを復元する場合は、--create-disk フラグを追加して、source-snapshot を指定します。--create-disk フラグを繰り返し指定すると、復元するスナップショットごとに非ブートディスクを作成できます。インスタンスを作成する際は、非ブートディスクを最大 15 個追加できます。

--create-disk source-snapshot=[SNAPSHOT_NAME],name=[DISK_NAME],size=[DISK_SIZE],type=[DISK_TYPE]

ここで

  • [SNAPSHOT_NAME] は、復元する非ブートディスクのスナップショットの名前です。
  • [DISK_NAME] は、このインスタンスの新しい非ブートディスクの名前です。
  • [DISK_SIZE] は、新しいディスクのサイズ(ギガバイト単位)です。サイズは、スナップショットが作成されたソースディスクのサイズ以上である必要があります。このプロパティは省略可能です。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。このフラグは省略可能です。

API

API を使用してスナップショットからインスタンスを作成する場合、次の制限が適用されます。

  • ブート永続ディスクとして使用できる永続ディスクは 1 つのみです。
  • ブート永続ディスクを、そのインスタンスの最初のディスクとして接続する必要があります。
  • source プロパティを指定する場合、initializeParams プロパティを同時に指定することはできません。source はブート永続ディスクがすでに存在することを示すのに対し、initializeParams プロパティは Compute Engine によって新しいブート永続ディスクを作成する必要があることを示します。

    ブートディスク スナップショットからインスタンスを作成するには、disks プロパティで sourceSnapshot フィールドを指定します。必要に応じて、新しいブートディスクの diskSizeGb および diskType プロパティも指定します。

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
  "name": "[INSTANCE_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]"
    }
   }],
 }

ここで

  • [PROJECT_ID] はプロジェクト ID です。
  • [ZONE] は、インスタンスを作成するゾーンです。
  • [INSTANCE_NAME] は、スナップショットを復元するインスタンスの名前です。
  • [MACHINE_TYPE] は、インスタンスのマシンタイプです。
  • [BOOT_SNAPSHOT_NAME] は、新しいインスタンスのブートディスクの作成に使用するスナップショットの名前です。
  • [BOOT_DISK_SIZE] は、新しいブートディスクのサイズ(ギガバイト単位)です。サイズは、スナップショットが作成されたソースディスクのサイズ以上である必要があります。このプロパティは省略可能です。
  • [BOOT_DISK_TYPE] は、ブートディスクの種類(pd-standard または pd-ssd のいずれか)です。このプロパティは省略可能です。

新しいインスタンスに非ブート スナップショットを復元する

非ブート スナップショットは、セカンダリ永続ディスクのバックアップであり、データ保存目的でのみインスタンスが使用します。新しいディスクに非ブート スナップショットを復元して、新しいインスタンスを作成できます。または、既存のインスタンスに非ブート スナップショットを復元することもできます。

非ブート スナップショットを新しいインスタンスに復元するには、インスタンスを作成する際に次の手順を行います。

Console

Console で、新しいインスタンスに非ブート スナップショットを復元する場合は、まず各スナップショットからディスクを作成します。次に、新しいインスタンスを作成する際に新しいディスクを接続します。

  1. 新しいディスクに各非ブート スナップショットを復元します。

    1. [ディスク] ページに移動します。

      [ディスク] ページに移動

    2. [ディスクを作成] をクリックします。
    3. [名前] でディスクの名前を指定します。
    4. このディスクの [リージョン] と [ゾーン] を選択します。

      注: インスタンスにディスクを接続できるのは、両方が同じゾーンにある場合のみです。

    5. ディスクの [タイプ] を選択します。

    6. [ソースの種類] で、[スナップショット] を選択します。

    7. 新しい [ソース スナップショット] フィールドで、新しいディスクに復元する非ブート スナップショットを選択します。

    8. [作成] をクリックしてディスクを作成します。

    9. この手順を繰り返して、復元する各スナップショットからディスクを作成します。インスタンスを作成する際は、セカンダリ非ブートディスクを最大 15 個追加できます。

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

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

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

  4. [名前] でインスタンスの名前を指定します。

  5. このインスタンスの [リージョン] と [ゾーン] を選択します。

    注: インスタンスにディスクを接続できるのは、両方が同じゾーンにある場合のみです。

  6. [マシンタイプ] で、このインスタンスのマシンタイプを選択します。

  7. 外部からのトラフィックの受信を許可する場合は、インスタンスのファイアウォール ルールを変更します。

  8. ディスクをインスタンスに接続するには:

    1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
    2. [ディスク] タブを選択します。
    3. [追加ディスク] で [既存のディスクを接続] をクリックします。
    4. 新しい [ディスク] フィールドで、このインスタンスに接続するディスクを選択します。
    5. ディスクの [モード] と [削除ルール] を指定します。
    6. [完了] をクリックします。
    7. 接続するディスクごとに、この手順を繰り返します。インスタンスを作成する際は、セカンダリ非ブートディスクを最大 15 個追加できます。
  9. [作成] をクリックしてインスタンスを作成し、そのインスタンスを起動します。

  10. 接続したディスクを使用する前に、ディスクをフォーマットしてマウントします。

gcloud

gcloud compute instances create コマンドを実行して、新しいインスタンスを作成します。復元する非ブート スナップショットごとに、--create-disk フラグを含め source-snapshot を指定します。インスタンスを作成する際は、セカンダリ非ブートディスクを最大 15 個追加できます。

たとえば、2 つの非ブート スナップショットを新しいインスタンスに復元するには、次のコマンドを使用します。

gcloud compute instances create \
    --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]

ここで

  • [SNAPSHOT_1_NAME][SNAPSHOT_2_NAME] は、復元する非ブート スナップショットの名前です。
  • [DISK_1_NAME][DISK_2_NAME] は、このインスタンスの新しい非ブートディスクの名前です。
  • [DISK_1_SIZE][DISK_2_SIZE] は、新しいブートディスクそれぞれのサイズ(ギガバイト単位)です。サイズは、スナップショットが作成されたソースディスクのサイズ以上である必要があります。このプロパティは省略可能です。
  • [DISK_1_TYPE][DISK_2_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。このフラグは省略可能です。

API

API を使用して非ブート スナップショットを新しいインスタンスに復元する場合、次の制限が適用されます。

  • ブート永続ディスクとして使用できる永続ディスクは 1 つだけです。
  • ブート永続ディスクを、そのインスタンスの最初のディスクとして接続する必要があります。
  • source プロパティを指定する場合は、initializeParams プロパティを同時に指定することはできません。source はブート永続ディスクがすでに存在することを示すのに対し、initializeParams プロパティは Compute Engine によって新しいブート永続ディスクを作成する必要があることを示します。

ベータ版 API を使用して、initializeParams プロパティの下で sourceSnapshot フィールドを指定します。作成する非ブートディスクごとに initializeParams プロパティを繰り返して、最大 15 個のセカンダリ非ブートディスクを追加できます。必要に応じて、作成するディスクの diskSizeGb および diskType プロパティを作成します。

たとえば、2 つの非ブート スナップショットを新しいインスタンスに復元するには、次のリクエストを作成します。

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
  "name": "[INSTANCE_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] はプロジェクト ID です。
  • [ZONE] は、インスタンスを作成するゾーンです。
  • [INSTANCE_NAME] は、スナップショットを復元するインスタンスの名前です。
  • [MACHINE_TYPE] は、インスタンスのマシンタイプです。
  • [SNAPSHOT_1_NAME][SNAPSHOT_2_NAME] は、新しいインスタンス上の新しい非ブートディスクに復元する非ブート スナップショットの名前です。
  • [DISK_SIZE] は、対応するディスクのサイズ(ギガバイト単位)です。このプロパティは省略可能ですが、スナップショットが作成されたソースディスクのサイズ以上である必要があります。
  • [DISK_TYPE] は、対応する永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。このプロパティは省略可能です。

コンテナ イメージからのインスタンスの作成

Compute Engine インスタンスに対してコンテナをデプロイして起動するには、インスタンスを作成するときにコンテナ イメージ名とオプションの構成パラメータを指定します。Compute Engine により、Docker がインストールされた最新バージョンの Container-Optimized OS 公開イメージを使用してインスタンスが作成されます。次に、VM の起動時に Compute Engine によりコンテナが起動されます。詳細については、VM へのコンテナのデプロイをご覧ください。

Console

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

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

  2. [インスタンスを作成] をクリックします。
  3. [名前] でインスタンスの名前を指定します。
  4. [コンテナ] セクションで、[この VM インスタンスにコンテナ イメージをデプロイする] チェックボックスをオンにします。
  5. [コンテナ イメージ] で使用するコンテナ イメージを指定します。
    • たとえば、gcr.io/cloud-marketplace/google/nginx1:1.12 と指定すると、Cloud Launcher から NGINX 1.12 コンテナ イメージを選択できます。
    • Docker Hub のコンテナ イメージを使用する場合は、常に完全な Docker イメージ名を指定します。たとえば、Apache コンテナ イメージをデプロイするには、イメージ名 docker.io/httpd:2.4 を指定します。
  6. 必要に応じて、[コンテナの詳細オプション] をクリックします。詳細については、コンテナを実行する際のオプションの構成をご覧ください。
  7. [作成] をクリックしてインスタンスを作成し、インスタンスを起動して、コンテナを起動します。

gcloud

gcloud compute instances create-with-container コマンドを実行します。

gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [CONTAINER_IMAGE]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [CONTAINER_IMAGE] は、コンテナ イメージ名です。

たとえば、次のコマンドは nginx-vm という VM インスタンスを作成し、コンテナ イメージ gcr.io/cloud-marketplace/google/nginx1:1.12 を起動して実行します。

gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

Docker Hub のコンテナ イメージを使用する場合は、常に完全な Docker イメージ名を指定します。たとえば、Apache コンテナ イメージをデプロイするには、イメージ名 docker.io/httpd:2.4 を指定します。

他の Google Cloud サービスへのアクセスを行うインスタンスの作成

その他の Google Cloud サービスにアクセスする必要がある仮想マシン インスタンスでアプリケーションを実行する場合は、インスタンスの作成前にサービス アカウントを作成し、サービス アカウントとして実行されるようにインスタンスを設定するための手順に従います。サービス アカウントは特別なアカウントで、認証情報をアプリケーション コードに使用すると、他の Google Cloud サービスにアクセスできます。

サービス アカウントの詳細については、サービス アカウントの概要をご覧ください。

特定のサブネットでのインスタンスの作成

デフォルトでは、Google Cloud はプロジェクトごとに default という名前の自動モードの VPC ネットワークを作成します。ネットワークの詳細を指定せずにインスタンスを作成すると、Compute Engine ではデフォルトの VPC ネットワークと、インスタンスと同じリージョンにある自動サブネットが使用されます。

別のネットワークや、自動モードまたはカスタムモードの VPC ネットワーク内に手動で作成したサブネットを使用するには、インスタンスの作成時にそのサブネットを指定する必要があります。

Console

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

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

  2. プロジェクトを選択し、[続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [名前] でインスタンスの名前を指定します。
  5. 必要に応じて、[ゾーン] でこのインスタンスのゾーンを変更します。

  6. VM インスタンスへの HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] をオンにします。

    Cloud Console によってネットワーク タグがインスタンスに追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、tcp:80(HTTP)または tcp:443(HTTPS)で着信するすべてのトラフィックが許可されます。このネットワーク タグでファイアウォール ルールがインスタンスに関連付けられます。詳細については、Virtual Private Cloud のドキュメントでファイアウォール ルールの概要をご覧ください。

  7. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] セクションを展開します。

  8. [ネットワーキング] タブの [ネットワーク インターフェース] で、ネットワークの詳細を指定します。

    1. [ネットワーク] フィールドで、作成しておいたサブネットを含む VPC ネットワークを選択します。
    2. [サブネット] フィールドで、インスタンスで使用するサブネットを選択します。
  9. VM インスタンスにブートディスク以外のセカンダリ ディスクを追加する手順は、次のとおりです。

    1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
    2. [ディスク] タブを選択します。
    3. [追加ディスク] で、[新しいディスクを追加] をクリックします。
    4. ディスクの情報を [名前]、[タイプ]、[ソースの種類]、[モード]、[削除ルール] にそれぞれ指定します。
    5. [完了] をクリックします。
    6. 必要に応じて、さらにディスクを追加します。
  10. [作成] ボタンをクリックしてインスタンスを作成し、開始します。

gcloud

gcloud コマンドライン ツールを使用する場合、スナップショットまたはイメージからインスタンスを作成する場合と同じ手順に沿って、--subnet [SUBNET_NAME] フラグと --zone [ZONE_NAME] フラグを追加して gcloud compute instances create コマンドを実行します。

gcloud compute instances create [INSTANCE_NAME] --subnet [SUBNET_NAME] \
--zone [ZONE_NAME]

ここで

  • [INSTANCE_NAME] は、インスタンスの名前です。
  • [SUBNET_NAME] はサブネット名です。ネットワークは指定したサブネットから推測されます。
  • [ZONE_NAME] は、インスタンスが作成されるゾーンの名前(europe-west1-b など)です。インスタンスのリージョンはこのゾーンから推測されます。

インスタンスを作成する際は、セカンダリ非ブートディスクを最大 128 個まで追加できます。作成するセカンダリ ディスクごとに --create-disk フラグを指定します。公開イメージまたはストック イメージからセカンダリ ディスクを作成するには、--create-disk フラグに image および image-project プロパティを指定します。空のディスクを作成するには、これらのプロパティを指定しないでください。ディスクの sizetype のプロパティは必要に応じて指定してください。

gcloud compute instances create [INSTANCE_NAME] \
--subnet [SUBNET_NAME] \
--zone [ZONE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

ここで

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [SUBNET_NAME] はサブネット名です。
  • [ZONE_NAME] は、インスタンスが作成されるゾーンの名前(europe-west1-b など)です。
  • [IMAGE_FAMILY] は、使用可能なイメージ ファミリーのいずれかです。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトです。
  • [DISK_IMAGE] は、セカンダリ ディスクのソースイメージです。使用可能なイメージのリストを表示するには、gcloud compute images list を実行します。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [DISK_IMAGE_PROJECT] は、ディスク イメージが属するイメージ プロジェクトです。空のディスクを作成する場合は、ディスク イメージやイメージ プロジェクトを指定しないでください。
  • [SIZE_GB] は、セカンダリ ディスクのサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

API

API の手順に沿ってイメージまたはスナップショットからインスタンスを作成し、リクエストの本文で subnet フィールドを指定します。セカンダリ非ブートディスクを最大 128 個まで追加するには、作成するすべてのディスクに initializeParams プロパティを使用します。空のディスクを追加するには、ソースイメージを含めないでください。必要に応じて、diskSizeGbdiskTypelabels の各プロパティを指定できます。

...
"networkInterfaces": [
{
  "network": "global/networks/[NETWORK_NAME]",
  "subnetwork": "regions/[REGION]/subnetworks/[SUBNET_NAME]",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "[SIZE_GB]",
         "sourceImage": "[IMAGE]"
    {
      "initializeParams": {
      "diskSizeGb": "[SIZE_GB]"
     }
 }...]

ここで

  • [IMAGE] は、セカンダリ ディスクのソースイメージです。空のディスクを作成する場合は、イメージソースを指定しないでください。
  • [SIZE_GB] は、ディスクサイズです。
  • [DISK_TYPE] は、永続ディスクの種類(pd-standard または pd-ssd のいずれか)です。

ディスクを使用する前に、ディスクをフォーマットしてマウントします。

次のステップ