このページでは、高度なユースケースでアプリケーション ロードバランサを使用して Service Extensions を構成する方法について説明します。
動的転送
動的転送を使用すると、数千または数百万のテナントを個々の仮想マシン(VM)インスタンスまたは VM のセットにバインドできます。サービス拡張機能を使用すると、URL マップを更新しなくても、個々のテナントがマッピングされる VM をプログラムで決定できます。これにより、既存の URL マップの制限を大幅に超えてスケーリングできます。
リージョン外部アプリケーション ロードバランサ、リージョン内部アプリケーション ロードバランサ、クロスリージョン内部アプリケーション ロードバランサでトラフィックとルートのコールアウトを使用して、動的転送を構成できます。
このセクションでは、2 つの VM 間でトラフィックをランダムにルーティングするようにトラフィック拡張機能を構成する例について説明します。提供されたサンプル値を使用します。
リージョン
us-west1に、lb-networkという名前のネットワークを構成し、backend-subnetという名前のサブネットとプロキシ専用サブネットを構成します。us-west1で、動的にルーティング可能なエンドポイントを表す 2 つの VM を構成します。IP アドレスをそれぞれ
10.1.2.1と10.1.2.2として指定します。両方の VM がタグload-balanced-backendに関連付けられていることを確認します。プロキシ サブネットからネットワーク内の VM へのトラフィックを許可するファイアウォール ルール
fw-allow-proxiesを構成します。gcloud compute firewall-rules create fw-allow-proxies \ --network=df-network \ --action=allow \ --direction=ingress \ --source-ranges=source-range \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080動的転送とロギングが有効になっている バックエンド サービス(
l7-ilb-backend-service)を作成します。gcloud beta compute backend-services create l7-ilb-backend-service \ --ip-port-dynamic-forwarding \ --enable-logging \ --region=us-west1バックエンド サービスの URL マップ
l7-ilb-mapを作成します。gcloud compute url-maps create l7-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1ターゲット プロキシを作成する:
l7-ilb-proxy。gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-map \ --url-map-region=us-west1 \ --region=us-west1転送ルールを作成し、アプリケーション ロードバランサの IP アドレスを予約します。
gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --subnet-region=us-west1 \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1トラフィック拡張機能のコールアウト バックエンド サービスを設定します。
拡張機能サーバーには、Service Extensions GitHub リポジトリの動的転送の例を使用します。
次の内容を含む YAML ファイル
dynamic-ext.yamlを作成します。name: traffic-ext forwardingRules: - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule loadBalancingScheme: INTERNAL_MANAGED extensionChains: - name: "chain1" matchCondition: celExpression: 'request.host == "example.com"' extensions: - name: 'ext11' authority: ext11.com allowDynamicForwarding: true service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-callout-service failOpen: false timeout: 0.1s supportedEvents: - REQUEST_HEADERSPROJECT_IDは、プロジェクト ID に置き換えます。トラフィック拡張機能を転送ルールにインポートします。
gcloud beta service-extensions lb-traffic-extensions import traffic-ext \ --source=dynamic-ext.yaml \ --location=us-west1
拡張機能が構成されると、トラフィックは拡張機能サーバーの実装に基づいてルーティングされます。
次のステップ
- 拡張機能を管理する
- コールアウトの Service Extensions GitHub リポジトリで、
ext-procサーバーの Python と Go のサンプルを参照する。