非マネージド インスタンスのグループの作成

このページでは、非マネージド インスタンス グループとも呼ばれる、管理されていないインスタンスのグループを作成する方法を説明します。インスタンス グループの詳細については、インスタンス グループの概要をご覧ください。

非マネージド インスタンス グループは、必ずしも同一ではなく、共通のインスタンス テンプレートを共有しないインスタンスのグループです。負荷分散タスクの既存の設定を保持するために、非マネージド インスタンス グループを使用することができます。しかし、アプリケーションで同一でないインスタンスをグループ化する必要がない場合は、必ずマネージド インスタンス グループを使用してください。

始める前に

非マネージド インスタンス グループの作成

マネージド インスタンス グループとは異なり、非マネージド インスタンス グループは共通のインスタンス テンプレートを共有しない固有のインスタンスからなっています。非マネージドグループの場合、インスタンスの作成や削除、またインスタンスの数のスケーリングをグループ内で行うことはありません。グループを作成して、そのグループに個々のインスタンスを追加することのみ可能です。

Console

  1. Cloud Platform Console で [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. [インスタンス グループを作成] をクリックします。
  3. 非マネージド インスタンス グループの名前を入力し、グループを配置するゾーンを選択します。
  4. [グループ タイプ] で、[非マネージド インスタンス グループ] を選択します。
  5. このグループのネットワークを選択します。
  6. [VM インスタンス] で、このグループに追加するインスタンスを選択します。
  7. [作成] をクリックして、新しいグループを作成します。

gcloud

gcloud ツールで新しい非マネージド インスタンス グループを作成するには、次の instance-groups unmanaged create コマンドを使用します。

gcloud compute instance-groups unmanaged create [INSTANCE_GROUP]

API

API の場合は、instanceGroups サービスへの POST リクエストを作成します。リクエスト本文にグループ名を組み込みます。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups

{
 "name": "[INSTANCE_GROUP]"
}

非マネージド インスタンス グループを初めて作成すると、空のグループが作成されます。グループが作成されたなら、そのグループに特定のインスタンスを追加できます。

非マネージド インスタンス グループへのインスタンスの追加

非マネージド インスタンス グループを作成したら、そのグループに既存のインスタンスを追加することができます。

次のことに注意してください。

  • インスタンスは負荷分散された 1 つのインスタンス グループにのみ属することができます。1 つのインスタンスを、負荷分散された 1 つのインスタンス グループと負荷分散されていない複数のインスタンス グループに追加することも可能です。

  • インスタンス グループに対して負荷分散が行われている場合は、すべてのインスタンスが同じ VPC ネットワークまたはサブネットに属している必要があります。

Console

  1. Cloud Platform Console で [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. リストの [名前] 列で、インスタンスを追加するインスタンス グループの名前をクリックします。インスタンス グループのプロパティとそのグループに属するインスタンスのリストが記載されたページが表示されます。
  3. この非マネージド インスタンス グループを変更するには、[グループを編集] をクリックします。
  4. [VM インスタンス] から、グループに追加する既存のインスタンスを 1 つ以上選択します。自分のグループと同じゾーンに属する既存のインスタンスのみ選択できます。
  5. 変更を保存するには、[保存] をクリックします。選択したインスタンスが非マネージド インスタンス グループに加わります。

gcloud

gcloud instance-groups unmanaged に含まれている add-instances サブコマンドを使用して、次のコマンドを実行します:

gcloud compute instance-groups unmanaged add-instances [INSTANCE_GROUP] \
  --instances [INSTANCE_NAME],[ANOTHER_INSTANCE_NAME]

API

instanceGroups サービスへのリクエストを作成し、それにインスタンスを追加する非マネージド インスタンス グループの名前を含めます。グループに追加する 1 つ以上のインスタンスの URL を指定します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/addInstances

{
 "instances": [
  {
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
  }
 ]
}

プロジェクト内の非マネージド インスタンス グループのリスト表示

既存の非マネージド インスタンス グループのリストを取得します。

Console

Cloud Platform Console で、[インスタンス グループ] ページに移動します。

[インスタンス グループ] ページに移動

既存のインスタンス グループがある場合は、このページにそれらのグループのリストが表示されます。このページにはマネージド インスタンス グループのリストも表示されます。

gcloud

次の list コマンドを使用して、非マネージド インスタンス グループが正しく作成されたことを確認します。

gcloud compute instance-groups unmanaged list [INSTANCE_GROUP]

特定のグループの情報を取得するには、次のコマンドを実行します。

gcloud compute instance-groups unmanaged describe [INSTANCE_GROUP]

API

プロジェクト内のすべてのインスタンス グループのリストが表示されます。次のように、instanceGroups サービスへの GET リクエストを作成します。

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups

特定のグループに関する情報を取得します。GET サービスへの instanceGroups リクエストを作成し、それに特定の非マネージド インスタンス グループの名前を含めます。

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]

非マネージド インスタンス グループ内のインスタンスのリスト表示

非マネージド インスタンス グループに含まれるインスタンスのリストを取得します。

Console

  1. Cloud Platform Console で [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. リストの [名前] 列で、表示するインスタンスが含まれる非マネージド インスタンス グループの名前をクリックします。インスタンス グループのプロパティとそのグループに含まれるインスタンスのリストが記載されたページが表示されます。

gcloud

非マネージド インスタンス グループのインスタンスのリストを表示するには、次のように gcloud compute instance-groups unmanagedinstances コマンド グループ内で list-instances サブコマンドを使用します。

gcloud compute instance-groups unmanaged list-instances [INSTANCE_GROUP]

API

instanceGroups サービスへのリクエストを作成し、それにインスタンスを表示する対象の非マネージド インスタンス グループの名前を含めます。必要に応じて、リクエスト本文にフィルタを含めることができます。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/listInstances

グループからのインスタンスの削除

インスタンスを削除せずに、それが属するグループから除外します。

グループが属するバックエンド サービス接続ドレインが有効になっていると、接続ドレインの期間が経過してから VM インスタンスが削除されるまでに 60 秒ほどかかる場合があります。

Console

  1. Cloud Platform Console で [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. リストの [名前] 列で、インスタンスを削除するインスタンス グループの名前をクリックします。インスタンス グループのプロパティとそのグループに含まれるインスタンスのリストが記載されたページが表示されます。
  3. インスタンスのリストで、グループから削除する 1 つ以上のインスタンスを選択します。
  4. [グループから削除] をクリックします。選択したインスタンスはグループから除外されますが、グループ外で引き続き実行されます。

gcloud

非マネージド インスタンス グループからインスタンスを除外するには、次のように gcloud compute instance-groups unmanaged 内で remove サブコマンドを使用します。

gcloud compute instance-groups unmanaged remove-instances [INSTANCE_GROUP] \
  --instances [INSTANCE_NAME],[ANOTHER_INSTANCE_NAME],[INSTANCES ...]

API

次のように、instanceGroups サービスに対するリクエストを作成します。このサービス名の後にインスタンスを除外する対象の非マネージド インスタンス グループの名前を追加します。グループから除外する 1 つ以上のインスタンスの URL を指定します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/removeInstances

{
 "instances": [
  {
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
   "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[ANOTHER_INSTANCE_NAME]"
  }
 ]
}

バックエンド サービスへの非マネージド インスタンス グループの追加

バックエンド サービスは、HTTP(S) ロードバランサ、内部ロードバランサ、または SSL ロードバランサの作成に必要です。バックエンド サービスには、マネージドまたは非マネージドのいずれかのインスタンス グループが 1 つ含まれている個別のバックエンドがそれぞれ含まれます。インスタンス グループ内のインスタンスがロードバランサからのトラフィックにレスポンスします。それにより、バックエンド サービスは使用できるインスタンス、処理可能なトラフィック数、現在処理しているトラフィック数を認識するようになります。また、バックエンド サービスはヘルスチェックをモニタリングし、異常なインスタンスにはトラフィックを送信しません。

インスタンス グループをバックエンド サービスに追加する手順については、バックエンド サービスへのインスタンス グループの追加をお読みください。

非マネージド インスタンス グループへの名前付きポートの割り当て

名前付きポートは、サービス名とそのサービスが実行されるポート番号を表すキー値のペアです。名前付きポートは、個別のインスタンスでトラフィックを特定のポートに転送するために負荷分散サービスで使用されます。たとえば、名前付きポートを http:80 に設定して http という名前のポートにトラフィックを送信するようにバックエンドを設定した場合、負荷分散によってインスタンス グループの一部である個別のインスタンスのポート 80 にトラフィックが転送されます。

名前付きポートは、負荷分散で使用されるシンプルなメタデータです。名前付きポートは Compute Engine のネットワークまたはファイアウォールのリソースを制御しません。

各サービス名に複数のポートを割り当てることができ、各ポートに複数のサービス名を割り当てることができます。ただし、特定のバックエンド サービスはトラフィックを一度に 1 つの名前付きポートにしか送信できないことに留意してください。

Console

  1. Cloud Platform Console で [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. リストの [名前] 列で、名前付きポートを指定するインスタンス グループの名前をクリックします。インスタンス グループのプロパティが記載されたページが表示されます。
  3. この非マネージド インスタンス グループを変更するには、[グループを編集] をクリックします。
  4. [ポート名のマッピングを指定する] をクリックして、名前付きポートのオプションを展開します。
  5. [項目を追加] をクリックして、希望するポート名とその名前に関連付けるポート番号を入力します。必要に応じて、もう一度 [項目を追加] をクリックして、さらに項目を追加します。
  6. [保存] をクリックして、変更を保存し、マネージド インスタンス グループ内のインスタンスに名前付きポートを適用します。

gcloud

次の set-named-ports コマンドを使用して、1 つ以上の名前付きポートを設定します。

gcloud compute instance-groups unmanaged set-named-ports [INSTANCE_GROUP] \
  --named-ports [PORT_NAME]:[PORT],[PORT_NAME]:[PORT]

次に例を示します。

gcloud compute instance-groups unmanaged set-named-ports [INSTANCE_GROUP] \
  --named-ports name1:80,name2:8080

各サービス名に複数のポートを割り当てる、または各サービスに複数の名前を割り当てるには、各名前またはポートに 1 つ以上の項目を作成します。たとえば、name1 をポート 102080 に割り当てます。その後、name2name3 の両方をポート 80 に割り当てます。最後に、ポート 9000name4 に割り当てます。

gcloud compute instance-groups unmanaged set-named-ports [INSTANCE_GROUP] \
  --named-ports name1:10,name1:20,name1:80,\
                name2:8080,name3:8080,\
                name4:9000

次の get-named-ports コマンドを使用して、非マネージド インスタンス グループに対する名前付きポートの割り当てを確認します。

gcloud compute instance-groups unmanaged get-named-ports [INSTANCE_GROUP]

NAME  PORT
name1 10
name1 20
name1 80
name2 8080
name3 8080
name4 9000

API

instanceGroups サービスへのリクエストを作成し、それに特定の非マネージド インスタンス グループの名前を含めます。特定のグループに関する情報を取得して、非マネージド インスタンス グループの現在の fingerprint 値を取得します。リクエスト本文に fingerprint と 1 つ以上の namedPorts 値のペアを含めます。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  },
  {
   "name": "[PORT_NAME]",
   "port": [PORT_NUMBER]
  }
 ]
}

次に例を示します。

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 80
  },
  {
   "name": "name2",
   "port": 8080
  }
 ]
}

各サービス名に複数のポートを割り当てるには、そのサービス名の複数の項目を作成します。たとえば、ポート 102080name1 に割り当てることができます。さらに、ポート 8080name2 に割り当てます。

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 10
  },
  {
   "name": "name1",
   "port": 20
  }
  {
   "name": "name1",
   "port": 80
  }
  {
   "name": "name2",
   "port": 8080
  }
  {
   "name": "name3",
   "port": 80
  }
  {
   "name": "name4",
   "port": 8080
  }
 ]
}

非マネージド インスタンス グループに既に割り当てられている名前付きポートのリストを表示するには、そのグループを指す GET リクエストを作成します。

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]

非マネージド インスタンス グループの削除

マネージド インスタンス グループとは異なり、非マネージド インスタンス グループを削除してもそのグループ内のインスタンスは削除されません。非マネージド インスタンス グループを削除すると、インスタンスの論理グループの解除のみが行われます。

非マネージド インスタンス グループを削除するには、gcloud compute ツールまたは API を使用します。

Console

  1. Cloud Platform Console で [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. 削除する 1 つ以上のグループをリストから選択します。
  3. [削除] をクリックして、そのグループを削除します。グループ内のインスタンスは削除されません。

gcloud

非マネージド インスタンス グループを削除するには、次の delete コマンドを使用します。

gcloud compute instance-groups unmanaged delete [INSTANCE_GROUP]

API

instanceGroups サービスへの DELETE リクエストを作成し、それに削除する特定の非マネージド インスタンス グループの名前を含めます。

DELETE https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroups/[INSTANCE_GROUP]

次のステップ

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

フィードバックを送信...

Compute Engine ドキュメント