

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

# 仮想ゲートウェイ
<a name="virtual_gateways"></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)」を参照してください。

仮想ゲートウェイを使用すると、メッシュ外のリソースは、メッシュ内のリソースと通信できます。仮想ゲートウェイは、Amazon ECS サービス、Kubernetes サービス内で、または Amazon EC2 インスタンス上で、実行されている Envoy プロキシを表します。仮想ゲートウェイは、アプリケーションで実行されている Envoy を表す仮想ノードとは異なり、単独でデプロイされた Envoy を表します。

外部リソースは、Envoy を実行するサービスまたはインスタンスに割り当てられた IP アドレスに DNS 名を解決できる必要があります。Envoy は、メッシュ内にある App Mesh リソースのすべてのアプリケーションメッシュ設定にアクセスできます。仮想ゲートウェイでの着信リクエストを処理するための設定は、[ゲートウェイルート](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html)を使用して指定します。

**重要**  
HTTP または HTTP2 リスナーを持つ仮想ゲートウェイは、着信リクエストのホスト名をゲートウェイルートターゲット仮想サービスの名前に書き換えます。また、ゲートウェイルートからの一致したプレフィックスは、デフォルトで `/` に書き換えられます。例えば、ゲートウェイルート一致プレフィクスが `/chapter` 、そして、着信リクエストが `/chapter/1` とすると、リクエストは `/1` に書き換えられます 書き換えを設定するには、「ゲートウェイルート」の「[ゲートウェイルートの作成](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html#create-gateway-route)」セクションを参照してください。  
仮想ゲートウェイを作成するときは、`proxyConfiguration` と `user` は設定しないでください。

エンドツーエンドのチュートリアルを完了するには、「[インバウンドゲートウェイの設定](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ingress-gateway)」を参照してください。

## 仮想ゲートウェイの作成
<a name="create-virtual-gateway"></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. (オプションですが、推奨) **クライアントポリシーのデフォルト**を設定します。

   1. (オプション）Transport Layer Security (TLS)を使用してバーチャルサービスとのみ通信を行う場合は、「**TLSの適用**」を選択します。

   1. (オプション) **[ポート]** で、仮想サービスとの TLS 通信を適用する 1 つ以上のポートを指定します。

   1. **検証方法**を使用する場合、次のいずれかのオプションを選択します。指定する証明書は、すでに存在し、特定の要件を満たしている必要があります。詳細については、「[証明書の要件](tls.md#virtual-node-tls-prerequisites)」を参照してください。
      + **AWS Private Certificate Authority** ホスティング — 既存の 1 つまたは複数のを選択します。**証明書**。
      + **[Envoy Secret Discovery Service (SDS)]** ホスティング — Envoy が Secret Discovery Service を使用して取得するシークレットの名前を入力します。
      + **ローカルファイルホスティング** — Envoy がデプロイされているファイルシステム上の**証明書チェーン**ファイルへのパスを指定します。

   1. (オプション) **サブジェクトの別名**を入力します。SAN を追加するには、**[Add SAN]** (SAN を追加) を選択します。SAN は FQDN または URI 形式である必要があります。

   1. (オプション) サーバーが要求したときにクライアント証明書を提供し、相互TLS認証を有効にするには、**[Provide client certificate]** (クライアント証明書の提供) と、次のオプションのいずれかを選択します。相互 TLS の詳細については、App Mesh の「[相互 TLS 認証](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html)」ドキュメントを参照してください。
      + **[Envoy Secret Discovery Service (SDS)]** ホスティング — Envoy が Secret Discovery Service を使用して取得するシークレットの名前を入力します。
      + **ローカルファイルホスティング** - Envoy がデプロイされているファイルシステムで、**証明書チェーン**ファイルと**シークレットキー**へのパスを指定します。ローカルファイルで暗号化を使用してサンプルアプリケーションでメッシュをデプロイする完全なエンドツーエンドのチュートリアルについては、GitHub の「[ファイル提供の TLS 証明書を使用した TLS の設定](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-tls-file-provided)」を参照してください。

1. (オプション) ログを設定するには、**ログ記録**を選択します。Envoy で使用する **HTTP アクセスログパス**を入力します。`/dev/stdout` パスを使用するようお勧めします。これにより、Docker ログドライバーを使用して Envoy ログを Amazon CloudWatch Logs などのサービスにエクスポートできます。
**注記**  
ログは引き続き、アプリケーション内のエージェントによって取り込まれ、送信先に送信される必要があります。このファイルパスは、Envoy にログを送信する場所を指示するだけです。

1. **リスナー**を設定します。

   1. **[プロトコル]** を選択し、Envoy がトラフィックをリッスンする **[ポート]** を指定します。**http** リスナーは、WebSocket への接続移行を許可します。**[リスナーの追加]** をクリックすると、複数のリスナーを追加できます。**[削除]** ボタンをクリックすると、そのリスナーが削除されます。

   1. (オプション) **接続プールの有効化** 

      接続プーリングにより、仮想ゲートウェイ Envoy が同時に確立できる接続の数が制限されます。これは、Envoyインスタンスを接続に圧倒されないように保護することを目的としており、アプリケーションのニーズに合わせてトラフィックシェーピングを調整できます。

      仮想ゲートウェイリスナーの宛先側の接続プール設定を行うことができます。App Mesh は、クライアント側の接続プールの設定をデフォルトで無限に設定し、メッシュ設定を簡素化します。
**注記**  
`connectionPool` と `connectionPool`portMapping プロトコルは同じである必要があります。リスナープロトコルが `grpc` または `http2` の場合は、`maxRequests` のみを指定します。リスナープロトコルが `http` の場合、`maxConnections` と `maxPendingRequests` の両方を指定できます。
      + **[最大接続数]** に送信接続の最大数を指定します。
      + **[Maximum requests]** (最大リクエスト数) に、仮想ゲートウェイ Envoy で確立できる並列リクエストの最大数を指定します。
      + (オプション) **[最大保留リクエスト数]** に、Envoy が **[最大接続数]** をキューに入れた後、オーバーフローするリクエストの数を指定します。デフォルト値は `2147483647` です。

   1. (オプション) リスナーのヘルスチェックを設定する場合は、**[ヘルスチェックの有効化]** を選択します。

      ヘルスチェックポリシーはオプションですが、正常なポリシーに値を指定する場合は、**正常なしきい値**、**Health チェック間隔**、**ヘルスチェックプロトコル**、**タイムアウト期間**、 および**非正常なしきい値**の値を指定する必要があります。
      + **[ヘルスチェックプロトコル]** で、プロトコルを選択します。**grpc** を選択した場合、サービスは [GRPC Health CheckingProtocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) に準拠している必要があります。
      + **[ヘルスチェックポート]** に、ヘルスチェックを実行するポートを指定します。
      + **[正常なしきい値]** に、リスナーが正常であると宣言するために必要となるヘルスチェック成功の数を指定します。
      + **[ヘルスチェック間隔]** に、各ヘルスチェックの実行間隔をミリ秒単位で指定します。
      + **[パス]** に、ヘルスチェックリクエストの送信先パスを指定します。この値は、**ヘルスチェックプロトコル**が `http` または `http2` の場合のみ使用されます。この値は、他のプロトコルでは無視されます。
      + **[タイムアウト期間]** に、ヘルスチェックからの応答を受け取るまで待機する時間をミリ秒単位で指定します。
      + **[非正常なしきい値]** に、リスナーが異常であると宣言するために必要となるヘルスチェック失敗の数を指定します。

   1. (オプション) 仮想ノードが TLS を使用してこの仮想ゲートウェイと通信するかどうかを指定する場合は、**[TLS ターミネーションを有効化]** を選択します。
      + **[モード]**で、リスナーで TLS を設定するモードを選択します。
      + **[証明書メソッド]** で、次のいずれかのオプションを選択します。証明書は特定の要件を満たしている必要があります。詳細については、「[証明書の要件](tls.md#virtual-node-tls-prerequisites)」を参照してください。
        + **AWS Certificate Manager ホスティング** – 既存の**証明書**を選択します。
        + **[Envoy Secret Discovery Service (SDS)]** ホスティング — Envoy が Secret Discovery Service を使用して取得するシークレットの名前を入力します。
        + **ローカルファイルホスティング** - Envoy がデプロイされているファイルシステム上の**証明書チェーン**と**プライベートキー**ファイルへのパスを指定します。
      + (オプション) クライアントが証明書を提供する場合、相互 TLS 認証を有効にするには、**クライアント証明書が必要**と次のオプションのいずれかを選択します。相互 TLS の詳細については、App Mesh の「[相互 TLS 認証](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html)」を参照してください。
        + **[Envoy Secret Discovery Service (SDS)]** ホスティング — Envoy が Secret Discovery Service を使用して取得するシークレットの名前を入力します。
        + **ローカルファイルホスティング** — Envoy がデプロイされているファイルシステム上の**証明書チェーン**ファイルへのパスを指定します。
      + (オプション) **サブジェクトの別名**を入力します。SAN を追加するには、**[Add SAN]** (SAN を追加) を選択します。SAN は FQDN または URI 形式である必要があります。

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

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

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

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

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \ 
   --cli-input-json file://create-virtual-gateway.json
   ```

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

   ```
   {
       "spec": {
         "listeners": [
           {
             "portMapping": {
               "port": 9080,
               "protocol": "http"
             }
           }
         ]
       }
   }
   ```

1. 出力例:

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------

## 仮想ゲートウェイのデプロイ
<a name="deploy-virtual-gateway"></a>

[Envoy コンテナ](envoy.md)のみを含む Amazon ECS または Kubernetes サービスをデプロイします。また、Amazon EC2 インスタンスに Envoy コンテナをデプロイすることもできます。詳細については、「[App Mesh と Amazon EC2 の開始方法](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html)」を参照してください。Amazon ECS にデプロイする方法の詳細については、「[App MeshとAmazon ECS の使用を開始する](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html)」または「[AWS AppMesh と Kubernetes を使用してKubernetesにデプロイする方法](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-kubernetes.html)」を参照してください。`APPMESH_RESOURCE_ARN` 環境変数を `mesh/mesh-name/virtualGateway/virtual-gateway-name` に設定する必要があります。また、プロキシ設定を指定しないでください。そうすると、プロキシのトラフィックがそれ自体にリダイレクトされないようになります。デフォルトでは、App Mesh は、Envoy がメトリックとトレースで自身を参照しているときに `APPMESH_RESOURCE_ARN` 指定したリソースの名前を使用します。`APPMESH_RESOURCE_CLUSTER ` 環境変数に独自の名前を設定することで、この動作を上書きできます。

コンテナの複数のインスタンスをデプロイし、Network Load Balancer を設定して、インスタンスへのトラフィックの負荷分散を行うようお勧めします。ロードバランサーのサービスディスカバリ名は、外部サービスが、*myapp.example.com* のような、メッシュ内のリソースにアクセスするために使用する名前です。詳細については、「[Network Load Balancer の作成](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-network-load-balancer.html)」(Amazon ECS)、「[外部ロードバランサーの作成](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/)」(Kubernetes)、または「[チュートリアル: Amazon EC2 でのアプリケーションの可用性を高める](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html)」を参照してください。また、さらに多くの例やチュートリアルについては、[App Mesh の例](https://docs.aws.amazon.com/app-mesh/latest/userguide/examples.html)を参照してください。

プロキシ認可を有効にします。詳細については、「[Envoy プロキシの認可](proxy-authorization.md)」を参照してください。

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

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

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

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

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

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

1. 削除する仮想ゲートウェイを選択したら、**[削除]** を選択します。仮想ゲートウェイが関連付けられている場合は、仮想ゲートウェイを削除できません。まず、関連するゲートウェイルートを削除する必要があります。アカウントが**リソース所有者**として一覧されている仮想ゲートウェイのみを削除できます。

1. 確認ボックスに **delete** と入力し、次に、**[削除]** を選択します。

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

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

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

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

1. 出力例:

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-07T10:57:22.638000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------

# ゲートウェイルート
<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) コマンドを参照してください。

------