ゲートウェイルート - AWS App Mesh

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ゲートウェイルート

ゲートウェイルートは、仮想ゲートウェイにアタッチされ、トラフィックを既存の仮想サービスにルーティングします。ルートは、リクエストと一致すると、トラフィックをターゲットの仮想サービスに分散できます。このトピックは、サービスメッシュ内のゲートウェイルートの操作に役立ちます。

ゲートウェイルートの作成

AWS Management Console

AWS Management Console を使用して ゲートウェイルートを作成するには

  1. App Mesh コンソールを https://console.aws.amazon.com/appmesh/ で開きます。

  2. ゲートウェイルートを作成するメッシュを選択します。自分が所有しているメッシュや、共有されているメッシュがすべて一覧表示されます。

  3. 左側のナビゲーションで [仮想ルーター] を選択します。

  4. 新しいゲートウェイルートを関連付ける仮想ゲートウェイを選択します。何も表示されていない場合は、最初に仮想ゲートウェイを作成する必要があります。仮想ゲートウェイのゲートウェイルートは、アカウントがリソース所有者

  5. [ゲートウェイルート] テーブルで、[ゲートウェイルートを作成] を選択します。

  6. [ゲートウェイルート名] に、ゲートウェイルートに使用する名前を指定します。

  7. [ゲートウェイルートタイプ] で、httphttp2 または grcp のいずれかを選択します。

  8. 既存の仮想サービス名を選択します。何も表示されない場合は、最初に仮想サービスを作成する必要があります。

  9. (オプション) [優先度] で、このゲートウェイルートの優先度を指定します。

  10. [一致] で、次を指定します。

    • http/http2 を選択したタイプは、次のとおりです。

      • (オプション)方法‐着信で一致するメソッドヘッダーを指定します。http/HTTP2リクエスト。

      • (オプション)正確な/接尾辞ホスト名‐ターゲット仮想サービスにルーティングするために、着信リクエストで一致するホスト名を指定します。

      • (オプション)接頭辞/正確/正規表現パス‐URL のパスを一致する方法。

        • プレフィックス一致‐ゲートウェイルートによって一致したリクエストがターゲット仮想サービスの名前に書き換えられ、一致するプレフィックスが書き換えられます/[] はデフォルトです。仮想サービスの設定方法によっては、仮想ルーターを使用して、特定のプレフィクスまたはヘッダーに基づいて、異なる仮想ノードにリクエストをルーティングできます。

          重要
          • /aws-appmesh* または /aws-app-mesh* のどちらも、プレフィックスの一致に対して指定できません これらのプレフィックスは、将来の App Mesh 内部で使用するために予約されています。

          • 複数のゲートウェイルートが定義されている場合、リクエストは最長のプレフィックスを持つルートと一致されます。例えば、2 つのゲートウェイルートが存在し、一方が /chapter のプレフィックスを持ち、一方が / のプレフィックスを持つ場合、www.example.com/chapter/ へのリクエストは /chapter のプレフィックスを持つゲートウェイルートに一致されることになります。

          注記

          有効にするとパス/プレフィックスベースの一致を有効化すると、App Mesh は、パスの正規化 (normalizemerge_slashes) を有効化して、パス混乱の脆弱性を最小限に抑えることができます。

          パス混乱の脆弱性は、リクエストに参加している当事者が異なるパス表現を使用する場合に発生します。

        • 完全一致‐exact パラメータは、ルートの部分一致を無効にし、パスが正確な現在の URL に一致させます。

        • 正規表現一致‐複数の URL が Web サイト上の 1 つのページを実際に識別する可能性のあるパターンを記述するために使用します。

      • (オプション)クエリパラメータ‐このフィールドでは、クエリパラメータで一致を行うことができます。

      • (オプション)ヘッダー‐のヘッダーを指定します。httpそしてHTTP2。受信したリクエストに一致させて、対象の仮想サービスにルーティングする必要があります。

    • grpc が選択されたタイプの場合:

      • ホスト名一致タイプおよび (オプション)完全/接尾辞一致‐ターゲット仮想サービスにルーティングするために、着信リクエストで一致するホスト名を指定します。

      • grpc サービス名‐ザ・gRPCサービスはアプリケーションの API として機能し、ProtoBuf で定義されます。

        重要

        サービス名に対して /aws.app-mesh* または aws.appmesh は指定できません これらのサービス名は、将来の App Mesh の内部使用のために予約されています。

      • (オプション)メタデータ‐のメタデータを指定します。gRPC。ターゲット仮想サービスにルーティングする着信リクエストと一致する必要があります。

  11. (オプション) 書き換えに対して、次を設定します。

    • http/http2 が選択されたタイプの場合:

      • プレフィックス が選択された一致タイプの場合:

        • ホスト名の自動書き換えを上書きする‐デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。

        • プレフィックスの自動書き換えを上書きする ‐ オンにすると、プレフィックス書き換えは、書き換えられたプレフィクスの値を指定します。

      • もし完全パス一致タイプの選択はですか:

        • ホスト名の自動書き換えを上書きする‐デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。

        • パスの書き換え‐書き換えられたパスの値を指定します。デフォルトパスはありません。

      • もし正規表現パス一致タイプの選択はですか:

        • ホスト名の自動書き換えを上書きする‐デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。

        • パスの書き換え‐書き換えられたパスの値を指定します。デフォルトパスはありません。

    • gRPC が選択されたタイプの場合:

      • ホスト名の自動書き換えを上書きする‐デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。

  12. [ゲートウェイルートを作成] を選択して終了します。

AWS CLI

を使用してゲートウェイルートを作成するにはAWS CLI。

次のコマンドを使用してゲートウェイルートを作成し、JSON を入力します(red独自の値を使用):

  1. aws appmesh create-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --gateway-route-name gatewayRouteName \ --cli-input-json file://create-gateway-route.json
  2. の内容create-gateway-route.json:

    { "spec": { "httpRoute" : { "match" : { "prefix" : "/" }, "action" : { "target" : { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } } } } }
  3. 出力例:

    { "gatewayRoute": { "gatewayRouteName": "gatewayRouteName", "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName", "createdAt": "2022-04-06T11:05:32.100000-05:00", "lastUpdatedAt": "2022-04-06T11:05:32.100000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "httpRoute": { "action": { "target": { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } }, "match": { "prefix": "/" } } }, "status": { "status": "ACTIVE" }, "virtualGatewayName": "gatewayName" } }

を使用してゲートウェイルートを作成する方法の詳細については、AWS CLIApp Mesh については、ゲートウェイルートの作成コマンドのAWS CLIリファレンス

ゲートウェイルートの削除

AWS Management Console

AWS Management Console 使用してゲートウェイルートを削除するには

  1. App Mesh コンソールを https://console.aws.amazon.com/appmesh/ で開きます。

  2. ゲートウェイルートを削除するメッシュを選択します。自分が所有しているメッシュや、共有されているメッシュがすべて一覧表示されます。

  3. 左側のナビゲーションで [仮想ルーター] を選択します。

  4. 仮想ゲートウェイを選択して、ゲートウェイルートを削除します。

  5. [ゲートウェイルート] テーブルで、削除するゲートウェイルートを選択し、[削除]を選択します。アカウントがとして一覧表示されている場合にのみ、ゲートウェイルートを削除できます。リソース所有者

  6. 確認ボックスに「」と入力します。delete] をクリックして、[] をクリックします。削除

AWS CLI

AWS CLI 使用してゲートウェイルートを削除するには

  1. 次のコマンドを使用して、ゲートウェイルートを削除します(red独自の値を使用):

    aws appmesh delete-gateway-route \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --gateway-route-name gatewayRouteName
  2. 出力例:

    { "gatewayRoute": { "gatewayRouteName": "gatewayRouteName", "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName", "createdAt": "2022-04-06T11:05:32.100000-05:00", "lastUpdatedAt": "2022-04-07T10:36:33.191000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "httpRoute": { "action": { "target": { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } }, "match": { "prefix": "/" } } }, "status": { "status": "DELETED" }, "virtualGatewayName": "virtualGatewayName" } }

を使用してゲートウェイルートを削除する方法の詳細については、AWS CLIApp Mesh については、ゲートウェイルートを削除コマンドのAWS CLIリファレンス