ゾーン NEG の設定

ネットワーク エンドポイント グループの構成とエンドポイントの追加

このドキュメントでは、ゾーン ネットワーク エンドポイント グループ(NEG)を構成する手順について説明します。ゾーン NEG を構成する前に、ネットワーク エンドポイント グループの概要をご覧ください。

ゾーン ネットワーク エンドポイント グループを作成する

Console

ゾーン ネットワーク エンドポイント グループを作成するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. [ネットワーク エンドポイント グループを作成] をクリックします。
  3. [ネットワーク エンドポイント グループの種類] には、[Network endpoint type: Zonal] を選択します。
  4. ネットワーク エンドポイント グループの名前を入力します。
  5. [VPC ネットワークの場所] を選択します。
  6. [VPC ネットワーク] を選択します。
  7. [サブネット] を選択します。
  8. [ゾーン] を選択します。
  9. [ネットワーク エンドポイント タイプ] を選択します。
  10. ネットワーク エンドポイントの [デフォルト ポート] へ入力します。
  11. [作成] をクリックします。

gcloud

ゾーン ネットワーク エンドポイント グループを作成するには、次の gcloud compute network-endpoint-groups create コマンドを使用します。

gcloud compute network-endpoint-groups create [NEG_NAME] \
    --zone=[ZONE] \
    --network=[NETWORK] \
    [--subnet=[SUBNET]
    [--default-port=[DEFAULT_PORT]

このコマンドでは、次のフラグを使用します。

  • [NEG_NAME] は、新しいネットワークエンド ポイント グループの名前です。この名前はゾーン内で一意である必要があります。
  • [ZONE] は、NEG を作成するゾーンの名前です。
  • [NETWORK] は、NEG を作成するネットワークの名前です。省略した場合、Google Cloud は default というネットワークを使用します。
  • [SUBNET] は、ネットワーク エンドポイントが属するサブネットの名前です。ネットワークが自動モードのネットワークの場合、このフラグは省略可能です。省略した場合、選択したゾーンが含まれるリージョンに自動作成されるサブネットに NEG が作成されます。ネットワークがカスタムモードの場合、または手動で作成されたサブネットを指定する必要がある場合、このフラグは必須です。
  • [DEFAULT_PORT] は、NEG に関連付けられるデフォルトのポートです。このフラグは省略可能です。省略した場合は、IP:port の形式ですべてのエンドポイントを指定する必要があります。このフラグを指定した場合は、エンドポイントを指定する際に port 部分を省略できます。省略すると、デフォルトのポートが使用されます。

例:

gcloud compute network-endpoint-groups create my-lb-neg \
    --network=my-network \
    --subnet=my-subnet \
    --default-port=80  \
    --zone=asia-southeast1-a

ネットワーク エンドポイント グループにエンドポイントを追加する

Console

ネットワーク エンドポイント グループにエンドポイントを追加するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. エンドポイントを追加するネットワーク エンドポイント グループの名前をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
  3. [このグループのネットワーク エンドポイント] セクションで [ネットワーク エンドポイントを追加] をクリックします。[ネットワーク エンドポイントの追加] ページが表示されます。
  4. [VM インスタンス] を選択して、ネットワーク エンドポイントして内部 IP アドレスを追加し、[追加] をクリックします。VM のネットワーク インターフェース、ゾーン、サブネットが表示されます。
  5. 新しいネットワーク エンドポイントの IP アドレスまたは範囲を入力します。
  6. ポートタイプを選択します。
    1. [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポートを使用します。
    2. [カスタム] を選択した場合は、使用するエンドポイントのポート番号を入力します。
  7. 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、手順 5 と 6 を繰り返します。
  8. 必要なエンドポイントをすべて追加したら、[追加] をクリックします。

gcloud

ネットワーク エンドポイント グループにエンドポイントを追加するには:

gcloud compute network-endpoint-groups update [NEG_NAME] \
    [--zone=[ZONE]] \
    --add-endpoint 'instance=[INSTANCE_NAME],[ip=[IP_ADDRESS]],[port=[PORT]]' \
    [--add-endpoint ...]

上記のコマンドの各要素の意味は次のとおりです。

  • [NEG_NAME] は NEG の名前です。
  • [ZONE] は、NEG が存在するゾーンの名前です。
  • [INSTANCE_NAME] は、IP アドレスが属する VM の名前です。
  • [IP_ADDRESS] は、追加するネットワーク エンドポイントの IP アドレスです。
  • [PORT] は、追加するネットワーク エンドポイントのポートです。デフォルト ポートが NEG で指定されている場合、ポートは省略可能です。

例:

gcloud compute network-endpoint-groups update my-lb-neg \
    --zone=asia-southeast1-a
    --add-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \

バックエンド サービスへゾーン NEG を追加する

Console


ネットワーク エンドポイント グループをバックエンド サービスに追加するには:

  1. Google Cloud Console の [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. バックエンド サービスを編集するロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、[編集] をクリックします。
  4. [ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
  5. [バックエンドの構成] ページで、[編集] をクリックします。
  6. [+バックエンドを追加] をクリックします。
  7. ゾーン ネットワーク エンドポイント グループを選択して、[完了] をクリックします。
  8. [更新] をクリックします。

gcloud


バックエンド サービスに NEG を追加するには:

gcloud compute backend-services add-backend [BACKEND_SERVICE] \
    [--network-endpoint-group=[NETWORK_ENDPOINT_GROUP]] \
    [--network-endpoint-group-zone=[ZONE]]

例:

gcloud compute backend-services add-backend my-lb \
   --network-endpoint-group my-lb-neg \
   --network-endpoint-group-zone=asia-southeast1-a \
   --global \
   --balancing-mode=RATE \
   --max-rate-per-endpoint=5

NEG をバックエンド サービスから削除する

Console

  1. Google Cloud Console の [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. バックエンド サービスを編集するロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、[編集] をクリックします。
  4. [ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
  5. [バックエンドの構成] ページで、NEG を削除するバックエンド サービスの [編集] をクリックします。
  6. [バックエンド] セクションで、削除する NEG を探し、その NEG のごみ箱アイコンをクリックします。
  7. [更新] をクリックします。

gcloud

バックエンド サービスから NEG を削除するには:

gcloud compute backend-services remove-backend [BACKEND_SERVICE] \
    --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
    --network-endpoint-group-zone=NETWORK_ENDPOINT_GROUP_ZONE

例:

gcloud compute backend-services remove-backend my-lb \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=asia-southeast1-a

ネットワーク エンドポイント グループからエンドポイントを削除する

ネットワーク エンドポイントが負荷分散 NEG から削除されると、バックエンド サービスで指定されたドレイン パラメータに基づいて接続ドレインがトリガーされます。複数のバックエンド サービスが同じ NEG を参照している場合、すべてのバックエンド サービスの最大ドレイン間隔が適用されます。

Console

ネットワーク エンドポイント グループからエンドポイントを削除するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. エンドポイントを削除するネットワーク エンドポイント グループの名前をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
  3. 削除するネットワーク エンドポイントを選択し、[エンドポイントを削除] をクリックします。

gcloud

ネットワーク エンドポイント グループからエンドポイントを削除するには:

gcloud compute network-endpoint-groups update NEG_NAME \
[--zone=ZONE] \
--remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \
--remove-endpoint ...

例:

gcloud compute network-endpoint-groups update my-lb-neg \
     --remove-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \
     --zone=asia-southeast1-a

ネットワーク エンドポイント グループの一覧を表示する

Console

ネットワーク エンドポイント グループのリストを表示するには、Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループ] ページに移動

gcloud

ネットワーク エンドポイント グループの一覧を表示するには:

gcloud compute network-endpoint-groups list

特定のネットワーク エンドポイント グループの詳細を取得する

Console

特定のネットワーク エンドポイント グループの詳細を取得するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. 詳細を表示するネットワーク エンドポイント グループの名前をクリックします。

gcloud

特定のネットワーク エンドポイント グループの詳細を取得するには:

gcloud compute network-endpoint-groups describe [NEG_NAME] \
    [--zone=ZONE]

上の [NEG_NAME] は、ネットワーク エンドポイント グループの名前です。[ZONE] は、NEG が作成されたゾーンの名前で、省略可能です。

たとえば、次のような gcloud コマンドは、ネットワーク エンドポイント グループ my-lb-neg に関する情報を一覧表示します。

gcloud compute network-endpoint-groups describe my-lb-neg \
    --zone=asia-southeast1-a

コマンドの出力は次のようになります。

    creationTimestamp: '2018-04-09T14:51:34.381-07:00'
    id: '5260475207627726473'
    kind: compute#networkEndpointGroup
    loadBalancer:
      defaultPort: 80
      network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/default
      zone: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/asia-southeast1-a

ネットワーク エンドポイント グループを削除する

バックエンド サービスに接続しているネットワーク エンドポイント グループは削除できません。NEG を削除する前に、NEG がバックエンド サービスから接続解除されていることを確認してください。

VM を削除すると、VM 上のすべてのネットワーク エンドポイントが NEG から削除され、すべての接続が終了します。バックエンド サービスの削除後に NEG を削除すると、その NEG 内のすべてのエンドポイントも削除されます。

Console

バックエンド サービスからネットワーク エンドポイント グループを削除するには:

  1. Google Cloud Console の [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. バックエンド サービスを編集するロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、[編集] をクリックします。
  4. [ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
  5. [バックエンドの構成] ページで、NEG を削除するバックエンド サービスの [編集] をクリックします。
  6. [バックエンド] セクションで、削除する NEG を探し、その NEG のごみ箱アイコンをクリックします。
  7. [更新] をクリックします。

ネットワーク エンドポイント グループを削除するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. 削除するネットワーク エンドポイント グループを見つけます。
  3. その行のごみ箱アイコンをクリックします。

gcloud

バックエンド サービスからネットワーク エンドポイント グループを削除するには:

gcloud compute backend-services remove-backend [BACKEND_SERVICE] \
    [--network-endpoint-group=[NETWORK_ENDPOINT_GROUP]] \
    [--network-endpoint-group-zone=[ZONE]]

ネットワーク エンドポイント グループを削除するには:

gcloud compute network-endpoint-groups delete [NEG_NAME] \
    --zone=[ZONE]

例:

gcloud compute backend-services remove-backend my-neg-backend \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=southeast1-a
gcloud compute network-endpoint-groups delete my-lb-neg \
    --zone=asia-southeast1-a

ネットワーク エンドポイント グループのエンドポイントの一覧を表示する

Console

ネットワーク エンドポイント グループのエンドポイントの一覧を表示するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. エンドポイントを削除するネットワーク エンドポイント グループの名前をクリックします。[ネットワーク エンドポイント グループの詳細] ページが表示されます。ここに、エンドポイント グループのエンドポイントが表示されます。
  3. エンドポイントをフィルタリングするには、[このグループのネットワーク エンドポイント] の下にあるテキスト フィールドに Key-Value ペアを作成します。

gcloud

ネットワーク エンドポイント グループのネットワーク エンドポイントの一覧を表示するには:

gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \
    [--zone=ZONE]

ネットワーク エンドポイント グループのエンドポイントを一覧表示する場合のカスタム フィルタ

カスタム フィルタはベータ版の機能です。

カスタム フィルタを使用して、ネットワーク エンドポイント グループのどのエンドポイントを表示するかを制限できます。カスタム フィルタは REST API に対してのみ有効です。Cloud Console や gcloud コマンドライン インターフェースからカスタム フィルタを使用することはできません。

詳細については、networkEndpointGroups.listNetworkEndpoints メソッドのドキュメントをご覧ください。

ネットワーク エンドポイントのヘルスチェックを行う

ゾーン NEG バックエンドを使用するバックエンド サービスでは、次のいずれか方法でポートを指定し、ヘルスチェックを使用する必要があります。

  • 固定(番号付き)ポート(--port
  • ネットワーク エンドポイントのサービスポート(--use-serving-port)を使用するよう構成

次の例では、ネットワーク エンドポイントのサービスポートと --use-serving-port フラグを使用するヘルスチェックを作成します。--use-serving-port フラグは gcloud compute health-checks update ではなく、gcloud compute health-checks create で実装されることに注意してください。

ゾーン NEG バックエンドでは、レガシー ヘルスチェックを使用できません。詳細については、ヘルスチェックのコンセプトをご覧ください。

負荷分散ゾーン NEG の例

次の例では、負荷分散ゾーン NEG を作成し、3 つのネットワーク エンドポイントを NEG に接続して、エンドポイントをリストします。ここでは、ポートでサービスを実行している VM が 3 台あることを前提としています。

  1. サブネット、エイリアス IP アドレス、2 つの VM を作成します。

    gcloud compute networks subnets create subnet-a \
        --network network-a \
        --range 10.128.0.0/16 \
        --secondary-range container-range=192.168.0.0/16
    
    gcloud compute instances create vm1 --zone asia-southeast1-a \
        --network-interface \
        "subnet=subnet-a,aliases=r1:192.168.0.0/24;secondaryrange1:192.168.1.0/24"
    
    gcloud compute instances create vm2 --zone asia-southeast1-a \
        --network-interface \
        "subnet=subnet-a,aliases=r1:192.168.2.0/24"
    
  2. NEG を作成します。同じゾーンに複数の NEG を作成することもできます。

    gcloud compute network-endpoint-groups create neg1 \
         --zone=asia-southeast1-a \
         --network=network-a --subnet=subnet-a \
         --default-port=80
    
        Created [https://www.googleapis.com/compute/v1/projects/project/zones/asia-southeast1-a/networkEndpointGroups/my-lb-neg].
        NAME       LOCATION       TYPE            ENDPOINT_TYPE   DEFAULT_PORT ENDPOINTS
        neg1  asia-southeast1-a  LOAD_BALANCING  80           0
    
  3. エンドポイントを NEG に追加します。

    gcloud compute network-endpoint-groups update neg1 \
       --zone=asia-southeast1-a
       --add-endpoint 'instance=vm1,ip=192.168.0.1' \
       --add-endpoint 'instance=vm1,ip=192.168.0.1,port=8080' \
       --add-endpoint 'instance=vm1,ip=192.168.1.2,port=8088' \
       --add-endpoint 'instance=vm1,ip=192.168.1.2,port=8080' \
       --add-endpoint 'instance=vm2,ip=192.168.2.1,port=8088' \
       --add-endpoint 'instance=vm2,ip=192.168.2.2,port=8080'
    
  4. ヘルスチェックを作成します。

    gcloud compute health-checks create http healthcheck1 --use-serving-port
    
  5. バックエンド サービスを作成します。

    gcloud compute backend-services create backendservice1 \
        --global \
        --health-checks healthcheck1 \
        --global-health-checks
    
  6. バックエンド サービスにバックエンドを追加します。

    gcloud compute backend-services add-backend backendservice1 --global \
       --network-endpoint-group=neg1 \
       --network-endpoint-group-zone=asia-southeast1-a \
       --balancing-mode=RATE --max-rate-per-endpoint=5
    
  7. URL マップを作成します。

    gcloud compute url-maps create urlmap1 --default-service backendservice1
    
  8. ターゲット プロキシを作成します。

    gcloud compute target-http-proxies create httpproxy1 --url-map urlmap1
    
  9. 転送ルールを作成します。

    gcloud compute forwarding-rules create forwardingrule1 \
        --ip-protocol TCP --ports=80 --global --target-http-proxy httpproxy1
    
  10. ファイアウォール ルールを作成します。

    gcloud compute firewall-rules create allow-load-balancer \
        --network network-a \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --target-tags lb \
        --allow tcp