高度なユースケース

このページでは、高度なユースケース向けにアプリケーション ロードバランサで Service Extensions を構成する方法について説明します。

動的転送

動的転送を使用すると、数千または数百万のテナントを個々の仮想マシン(VM)インスタンスまたは VM のセットにバインドできます。サービス拡張機能を使用すると、URL マップを更新することなく、個々のテナントがマッピングされる VM をプログラムで決定できます。これにより、既存の URL マップの制限を大幅に超えてスケーリングできます。

これらのアプリケーション ロードバランサ(リージョン外部アプリケーション ロードバランサ、リージョン内部アプリケーション ロードバランサ、クロスリージョン内部アプリケーション ロードバランサ)でトラフィックとルートのコールアウトを使用して、動的転送を構成できます。

このセクションでは、2 つの VM 間でトラフィックをランダムにルーティングするようにトラフィック拡張機能を構成する例について説明します。提供されているサンプル値を使用します。

  1. リージョン us-west1 に、lb-network という名前のネットワークbackend-subnet という名前のサブネット、プロキシ専用サブネットを構成します。

  2. us-west1 で、動的にルーティング可能なエンドポイントを表す 2 つの VM を構成します。

    IP アドレスをそれぞれ 10.1.2.110.1.2.2 として指定します。両方の VM がタグ load-balanced-backend に関連付けられていることを確認します。

  3. プロキシ サブネットからネットワーク内の 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
    
  4. 動的転送とロギングを有効にして、バックエンド サービスを作成します。l7-ilb-backend-service:

    gcloud beta compute backend-services create l7-ilb-backend-service \
        --ip-port-dynamic-forwarding \
        --enable-logging \
        --region=us-west1
    
  5. バックエンド サービスの URL マップl7-ilb-map)を作成します。

    gcloud compute url-maps create l7-ilb-map \
        --default-service=l7-ilb-backend-service \
        --region=us-west1
    
  6. ターゲット プロキシを作成する: 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
    
  7. 転送ルールを作成し、アプリケーション ロードバランサの 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
    
  8. トラフィック拡張機能のコールアウト バックエンド サービスを設定します。

    拡張機能サーバーには、Service Extensions GitHub リポジトリ動的転送の例を使用します。

  9. 次の内容を含む 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_HEADERS
    

    PROJECT_ID は、プロジェクト ID に置き換えます。

    トラフィック拡張機能を転送ルールにインポートします。

    gcloud service-extensions lb-traffic-extensions import traffic-ext \
        --source=dynamic-ext.yaml \
        --region=us-west1
    

拡張機能が構成されると、トラフィックは拡張機能サーバーの実装に基づいて転送されます。

次のステップ