転送ルールの使用

Google Cloud ロードバランサのフロントエンド構成は、転送ルールとそれに対応する IP アドレスによって表されます。転送ルールの概要については、転送ルールのコンセプトをご覧ください。

始める前に

転送ルールを追加する前に、転送ルールの IP アドレスを予約しておきます。これは要件ではありませんが、強くおすすめします。

内部ロードバランサの場合は、静的内部 IP アドレスを予約します。

外部ロードバランサの場合は、静的外部 IP アドレスを予約します。

権限

このガイドに従うには、必要な権限が付与されている必要があります。

詳細については、次のガイドをご覧ください。

転送ルールの作成

以下の基本的な設定ドキュメントで説明するように、ロードバランサを作成または更新するときに、転送ルールを作成できます。

転送ルールを削除する

次のような理由で転送ルールの削除が必要な場合があります。

  • 新しい転送ルールに置き換える
  • ロードバランサを完全に削除せずに、一定期間ロードバランサを停止する

ロードバランサを削除せずに停止する必要がある理由は 2 つあります。

  • ロードバランサの料金を一時停止する
  • バックエンドへ送られてくるリクエストを一時的に一時停止する

転送ルールが予約 IP アドレスを指している場合(推奨)は、転送ルールを削除してロードバランサを停止できます。これにより、転送ルール宛先へのトラフィックが停止します。

グローバル転送ルールを削除するには:

gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
    --global

リージョン転送ルールを削除するには:

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

ロードバランサを再開するには、転送ルールの追加の説明に従って、転送ルールを再作成し、同じ IP アドレスを維持します。

Service Directory による転送ルールの構成

Service Directory によるロードバランサの転送ルールを登録できます。

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

内部パススルー ネットワーク ロードバランサの登録

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

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --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: 転送ルールを作成するリージョン
  • NETWORK_NAME: この転送ルールが適用されるネットワーク
  • SUBNET_NAME: この転送ルールが適用されるサブネットワーク
  • 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

リージョン内部アプリケーション ロードバランサの登録

リージョン内部アプリケーション ロードバランサを登録するには、gcloud compute forwarding-rules create コマンドを実行して service-directory-registration フラグを設定します。

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --network=NETWORK_NAME \
    --address=RESERVED_IP_ADDRESS \
    --target-https-proxy=PROXY_NAME \
    --target-https-proxy-region=PROXY_REGION \
    --ports=PORT_NUMBER \
    --service-directory-registration=SD_SERVICE_NAME

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

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

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

外部パススルー ネットワーク ロードバランサを登録するには、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 でロードバランサを構成する方法の詳細については、次のセクションをご覧ください。

次のステップ