

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

# ゲートウェイルート
<a name="gateway-routes"></a>

**重要**  
サポート終了通知: 2026 年 9 月 30 日、 AWS はサポートを終了します AWS App Mesh。2026 年 9 月 30 日以降、 AWS App Mesh コンソールまたは AWS App Mesh リソースにアクセスできなくなります。詳細については、このブログ記事[「 から Amazon ECS Service Connect AWS App Mesh への移行](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)」を参照してください。

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

## ゲートウェイルートの作成
<a name="create-gateway-route"></a>

------
#### [ AWS マネジメントコンソール ]

**を使用してゲートウェイルートを作成するには AWS マネジメントコンソール**

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

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

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

1. 新しいゲートウェイルートを関連付ける仮想ゲートウェイを選択します。何も表示されていない場合は、最初に[仮想ゲートウェイを作成する](virtual_gateways.md#create-virtual-gateway)必要があります。アカウントが**リソース所有者**として一覧されている仮想ゲートウェイのゲートウェイルートのみを作成できます。

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

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

1. **[ゲートウェイルートタイプ]** で、**http**、**http2**、**grpc** のいずれかを選択します。

1. 既存の**仮想サービス名**を選択します。何も表示されない場合は、最初に[仮想サービス](virtual_services.md#create-virtual-service)を作成する必要があります。

1. **[仮想サービスプロバイダーポート]** のターゲットに対応するポートを選択します。仮想サービスプロバイダーポートは、選択した仮想サービスのプロバイダー (ルーターまたはノード) に複数のリスナーが含まれる場合に**必要**です。

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

1. **[一致]** で、次を指定します。
   + 

     **http/http2** を選択したタイプは、次のとおりです。
     + (オプション) **[メソッド]** - 着信した **http**/**http2** リクエストと照合するメソッドヘッダーを指定します。
     + (オプション) **[ポートの一致]** - 受信トラフィックのポートを照合します。この仮想ルーターに複数のリスナーがある場合は、ポートを一致させる**必要があります**。
     + (オプション) **[完全一致/サフィックスのホスト名]** - ターゲット仮想サービスにルーティングするために、着信リクエストで一致する必要があるホスト名を指定します。
     + (オプション) **[プレフィックス/完全一致/正規表現パス]** - URL のパスを照合する方法です。
       + **[プレフィックスの一致]** - デフォルトでは、ゲートウェイルートによって一致したリクエストがターゲット仮想サービスの名前に書き換えられ、一致したプレフィックスが `/` に書き換えられます。仮想サービスの設定方法によっては、仮想ルーターを使用して、特定のプレフィクスまたはヘッダーに基づいて、異なる仮想ノードにリクエストをルーティングできます。
**重要**  
`/aws-appmesh*` または `/aws-app-mesh*` のどちらも、**プレフィックスの一致**に対して指定できません これらのプレフィックスは、将来の App Mesh 内部で使用するために予約されています。
複数のゲートウェイルートが定義されている場合、リクエストは最長のプレフィックスを持つルートと一致されます。例えば、2 つのゲートウェイルートが存在し、一方が `/chapter` のプレフィックスを持ち、一方が `/` のプレフィックスを持つ場合、`www.example.com/chapter/` へのリクエストは `/chapter` のプレフィックスを持つゲートウェイルートに一致されることになります。
**注記**  
有効にすると**パス**/**プレフィックス**ベースの一致を有効化すると、App Mesh は、パスの正規化 ([normalize](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-normalize-path)、[merge\$1slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes)) を有効化して、パス混乱の脆弱性を最小限に抑えることができます。  
パス混乱の脆弱性は、リクエストに参加している当事者が異なるパス表現を使用する場合に発生します。
       + **[完全一致]** - exact パラメータは、ルートの部分一致を無効にし、パスが現在の URL と**完全**一致である場合にのみルートを返すようにします。
       + **[正規表現一致]** - 複数の URL がウェブサイト上の 1 つのページを実際に識別する可能性のあるパターンを記述するために使用します。
     + (オプション) **[クエリパラメータ]** - このフィールドでは、クエリパラメータで照合できます。
     + (オプション) **[ヘッダー]** - **http** と **http2** のヘッダーを指定します。受信したリクエストに一致させて、対象の仮想サービスにルーティングする必要があります。
   + 

     **grpc** が選択されたタイプの場合：
     + **[ホスト名の一致タイプ]** と (オプション) **[完全一致/サフィックス一致]** - ターゲット仮想サービスにルーティングするために、着信リクエストで照合するホスト名を指定します。
     + **[grpc サービス名]** - **grpc** サービスはアプリケーションの API として機能し、ProtoBuf で定義されます。
**重要**  
**サービス名**に対して `/aws.app-mesh*` または `aws.appmesh` は指定できません これらのサービス名は、将来の App Mesh の内部使用のために予約されています。
     + (オプション) **[メタデータ]** - **grpc** のメタデータを指定します。ターゲット仮想サービスにルーティングする着信リクエストと一致する必要があります。

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

     **http/http2** が選択されたタイプの場合：
     + 

       **プレフィックス** が選択された一致タイプの場合：
       + **[ホスト名の自動書き換えを上書き]** - デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。
       + **プレフィックスの自動書き換えを上書きする** ‐ オンにすると、**プレフィックス書き換え**は、書き換えられたプレフィクスの値を指定します。
     + 

       **[完全一致]** が選択された一致タイプの場合:
       + **[ホスト名の自動書き換えを上書き]** - デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。
       + **[パスの書き換え]** - 書き換えられたパスの値を指定します。デフォルトパスはありません。
     + 

       **[正規表現]** が選択された一致タイプの場合:
       + **[ホスト名の自動書き換えを上書き]** - デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。
       + **[パスの書き換え]** - 書き換えられたパスの値を指定します。デフォルトパスはありません。
   + 

     **gRPC** が選択されたタイプの場合:
     + **[ホスト名の自動書き換えを上書き]** - デフォルトでは、ホスト名はターゲット仮想サービスの名前に書き換えられます。

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

------
#### [ AWS CLI ]

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

以下のコマンドと入力 JSON ファイル (*赤色*の値を独自の値に置き換えてください) を使用して、ゲートウェイルートを作成します。

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
   ```

1. create-gateway-route.json の**例**の内容:

   ```
   {
       "spec": {
           "httpRoute" : {
               "match" : {
                   "prefix" : "/"
               },
               "action" : {
                   "target" : {
                       "virtualService": {
                           "virtualServiceName": "serviceA.svc.cluster.local"
                       }
                   }
               }
           }
       }
   }
   ```

1. 出力例:

   ```
   {
       "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"
       }
   }
   ```

App Mesh AWS CLI の を使用してゲートウェイルートを作成する方法の詳細については、 AWS CLI リファレンスの [create-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-gateway-route.html) コマンドを参照してください。

------

## ゲートウェイルートの削除
<a name="delete-gateway-route"></a>

------
#### [ AWS マネジメントコンソール ]

**を使用してゲートウェイルートを削除するには AWS マネジメントコンソール**

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

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

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

1. ゲートウェイルートを削除する仮想ゲートウェイを選択します。

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

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

------
#### [ AWS CLI ]

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

1. 以下のコマンドを使用してゲートウェイルートを削除します (*赤色*の値を独自の値に置き換えてください)。

   ```
   aws appmesh delete-gateway-route \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName \
        --gateway-route-name gatewayRouteName
   ```

1. 出力例:

   ```
   {
       "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"
       }
   }
   ```

App Mesh AWS CLI の を使用してゲートウェイルートを削除する方法の詳細については、 AWS CLI リファレンスの [delete-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-gateway-route.html) コマンドを参照してください。

------