このページでは、高度なユースケース向けにアプリケーション ロードバランサで 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 allowedDynamicForwarding: 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 service-extensions lb-traffic-extensions import traffic-ext \ --source=dynamic-ext.yaml \ --region=us-west1
拡張機能が構成されると、トラフィックは拡張機能サーバーの実装に基づいて転送されます。
次のステップ
- 拡張機能を管理する
- コールアウト用の Service Extensions GitHub リポジトリで、
ext-procサーバーの Python と Go のサンプルを表示します。