外部パススルー ネットワーク ロードバランサを登録する

このページでは、Service Directory に自動的に 登録されるように 外部パススルー ネットワーク ロードバランサを構成する方法について説明します。

ロードバランサを作成するときに、既存の Service Directory の名前空間と選択したサービスのエンドポイントとして登録できます。その後、クライアント アプリケーションは Service Directory(HTTP または gRPC を使用)を使用して、外部パススルー ネットワーク ロードバランサ サービスのアドレスを解決して直接接続できます。

制限事項

Service Directory と外部パススルー ネットワーク ロードバランサの統合には、次の制限があります。

始める前に

この手順では、次のものが必要です。

  • Service Directory の名前空間とサービスがすでに存在している必要があります。 存在しない場合は、 Service Directory を構成するの手順に沿って名前空間とサービスを作成します。

    Service Directory の名前空間とサービスは、作成する外部パススルー ネットワーク ロードバランサの転送ルールと同じプロジェクトとリージョンに存在する必要があります。

  • 外部パススルー ネットワーク ロードバランサの転送ルールを作成するために必要なリソースがすでに設定されている必要があります。

    外部パススルー ネットワーク ロードバランサの作成方法については、外部パススルー ネットワーク ロードバランサ を設定するをご覧ください。

転送ルールを設定して、Service Directory に外部パススルー ネットワーク ロードバランサを登録する

Service Directory に外部パススルー ネットワーク ロードバランサを登録するには、転送ルールを設定する必要があります。外部パススルー ネットワーク ロードバランサを登録するには、次のセクションをご覧ください。

外部パススルー ネットワーク ロードバランサを登録する

リージョン外部パススルー ネットワーク ロードバランサを登録するには、gcloud compute forwarding-rules create コマンドを実行して service-directory-registration フラグを設定します。

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=EXTERNAL \
    --address=RESERVED_IP_ADDRESS \
    --ip-protocol=PROTOCOL_TYPE \
    --ports=PORT_NUMBER \
    --backend-service=BACKEND_SERVICE_NAME \
    --backend-service-region=REGION \
    --service-directory-registration=SD_SERVICE_NAME

次のように置き換えます。

  • FORWARDING_RULE_NAME: 作成する転送ルールの名前
  • REGION: 転送ルールを作成するリージョン
  • RESERVED_IP_ADDRESS: 転送ルールが提供する IP アドレス
  • PROTOCOL_TYPE: ルールを適用する IP プロトコル
  • PORT_NUMBER: カンマ区切りのポートのリスト
  • BACKEND_SERVICE_NAME: トラフィックを受信するターゲット バックエンド サービス
  • SD_SERVICE_NAME: エンドポイントを登録する Service Directory サービスの完全修飾名。このサービスは、作成する転送ルールと同じプロジェクトとリージョンに存在する必要があります。例: projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME

エンドポイントを確認する

外部パススルー ネットワーク ロードバランサを登録するときに作成される Service Directory エンドポイントには、次の特性があります。

  • エンドポイントの名前は、指定されたポート番号(<forwarding rule name>-<port>)を持つ転送ルールの名前と同じです。たとえば、 転送ルール RULE--port=8080 で作成すると、 RULE-8080 というエンドポイントが作成されます。同じルールで、2 つのポート --port=8080, 8081 を指定すると、RULE-8080RULE-8081 の 2 つのエンドポイントが作成されます。--port=ALL を指定すると、Service Directory エンドポイントはポート 0 で登録されます。外部パススルー ネットワーク ロードバランサのオーナーは、API 呼び出し元が接続するポートを把握していることを確認する必要があります。
  • 公開 Service Directory API を使用してエンドポイントを変更または削除することはできません。転送ルールを削除すると、エンドポイントは自動的に削除されます。つまり、転送ルールが存在する間は、エンドポイントが存在するサービスと名前空間を削除することはできません。
  • エンドポイント自体は課金されませんが、エンドポイントへの API 呼び出しには通常の料金が適用されます。

エンドポイントが作成されたことを確認するには、Service Directory でサービスを解決します。 指定されたポート番号を持つ転送ルールの名前と同じ名前のエンドポイントが表示されます。

Service Directory でサービスを解決するには、gcloud service-directory services resolve コマンドを実行します。

gcloud service-directory services resolve SD_SERVICE_NAME \
    --namespace=SD_NAMESPACE_NAME \
    --location=REGION

次のように置き換えます。

  • SD_SERVICE_NAME: 解決する Service Directory サービスの名前。これは、Service Directory 名前空間の名前の中に存在する必要があります。
  • SD_NAMESPACE_NAME: サービスを含む名前空間に付けた名前。
  • REGION: 名前空間を含む Google Cloud リージョン。これは、転送ルールを作成したリージョンと同じにする必要があります。

クリーンアップ

作成したリソースを削除する手順は次のとおりです。

  1. 転送ルールを削除するには、gcloud compute forwarding-rules delete コマンドを実行します。

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
      --region=REGION
    

    次のように置き換えます。

    • FORWARDING_RULE_NAME: 作成した転送ルールの名前
    • REGION: 転送ルールのリージョン

    詳細については、転送ルールを削除する をご覧ください。

    転送ルールを削除すると、Service Directory からエンドポイントが自動的に削除されることを確認するには、gcloud service-directory services resolveコマンドをエンドポイントを確認するセクションで説明されている Service Directory サービスで実行します。

  2. Service Directory の名前空間とサービスを削除するには、リソースを削除する をご覧ください

次のステップ