仮想ゲートウェイ - AWSApp Mesh

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

仮想ゲートウェイ

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

外部リソースは、Envoy を実行するサービスまたはインスタンスに割り当てられた IP アドレスに DNS 名を解決できる必要があります。その後、Envoy は、メッシュの内部にあるリソースの App Mesh 設定すべてにアクセスできます。仮想ゲートウェイで着信要求を処理するための設定は、ゲートウェイルート

重要

HTTPまたはHTTP2リスナーを持つ仮想ゲートウェイは、着信要求のホスト名をゲートウェイルートターゲット仮想サービスの名前に書き換え、ゲートウェイルートから一致したプレフィックスは/デフォルトはです。たとえば、ゲートウェイのルート一致プレフィックスを/chapterであり、着信要求が/chapter/1の場合、リクエストは/1。書き換えを設定するには、ゲートウェイルートを作成するセクションにゲートウェイルートからアクセスできます。

仮想ゲートウェイを作成するにはproxyConfigurationおよびuserは設定しないでください。

エンドツーエンドのチュートリアルを完了するには、「」を参照してください。インバウンドゲートウェイの設定

仮想ゲートウェイの作成

仮想ゲートウェイを作成するにはAWS Management Console

注記

Virtual Gateway を作成するときは、名前空間のリストを識別するラベル付き名前空間セレクタを追加して、作成した仮想ゲートウェイにゲートウェイルートを関連付ける必要があります。

仮想ゲートウェイを作成するにはAWS CLIバージョン 1.18.116 以降については、AWS CLIのリファレンス仮想ゲートウェイの作成コマンドを実行します。

  1. App Mesh コンソールをhttps://console.aws.amazon.com/appmesh/

  2. 仮想ゲートウェイを作成するメッシュを選択します。自分が所有しているメッシュと共有がリストされます。

  3. 選択仮想ゲートウェイ左側のナビゲーションで。

  4. 選択仮想ゲートウェイを作成する

  5. を使用する場合仮想ゲートウェイ名に、仮想ゲートウェイの名前を入力します。

  6. (オプションですが、推奨)クライアントポリシーのデフォルト

    1. (オプション) [] を選択します。TLS を強制するゲートウェイは Transport Layer Security (TLS) を使用した仮想サービスとのみ通信するようにする場合。

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

    3. を使用する場合検証方法次のいずれかのオプションを選択します。指定する証明書は、すでに存在しており、特定の要件を満たしている必要があります。詳細については、「証明書の要件」を参照してください。

      • AWS Certificate Manager Private Certificate Authorityホスティング — 既存の 1 つまたは複数の証明書

      • 特使シークレットディスカバリーサービスhosting — 秘密探索サービスを使用して取得する秘密使の名前を入力します。

      • ローカルファイルホスティング— パスを指定する証明書チェーンファイルを Envoy がデプロイされているファイルシステム上に配置されています。

    4. (省略可能)サブジェクトの別名。SAN を追加するには、SANの追加。SAN は FQDN または URI フォーマットである必要があります。

    5. (オプション) [] を選択します。クライアント証明書を提供すると以下のオプションのいずれかを使用して、サーバーがクライアント証明書を要求したときにクライアント証明書を提供し、相互 TLS 認証を有効にします。相互 TLS の詳細については、「App Mesh」を参照してください。相互 TLS 認証ドキュメント

      • 特使シークレットディスカバリーサービスhosting — 秘密探索サービスを使用して取得する秘密使の名前を入力します。

      • ローカルファイルホスティング— パスを指定する証明書チェーンファイルだけでなく、プライベートキーを Envoy がデプロイされているファイルシステム上で実行します。ローカルファイルを使用した暗号化を使用したサンプルアプリケーションを使用したメッシュの展開に関する完全なエンドツーエンドの手順については、」ファイル提供の TLS 証明書を使用した TLS の設定GitHub で。

    6. 指定するポートおよびプロトコル向けのListener。各仮想ゲートウェイには、ポートとプロトコルを 1 つだけ指定できます。複数のポートおよびプロトコルでトラフィックをルーティングするために仮想ゲートウェイが必要な場合は、ポートまたはプロトロールごとに仮想ゲートウェイを作成する必要があります。

  7. (オプション)ロギングを設定するには、ログ記録。[] と入力します。HTTP アクセスログのパスあなたが使いたいと申します。推奨項目は/dev/stdoutパスを設定すると、Docker ログドライバを使用して Envoy ログを Amazon CloudWatch Logs などのサービスにエクスポートすることができます。

    注記

    ログは引き続き、アプリケーション内のエージェントによって取り込まれ、送信先に送信される必要があります。このファイルパスは単に、Envoy にログの送信先を指示します。

  8. を設定するListener

    1. [] を選択します。プロトコルを選択し、ポートその使者は、上のトラフィックを聞くでしょう。-httpリスナーは、Webソケットへの接続遷移を許可します。

    2. (オプション)接続プールを有効にする

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

      仮想ゲートウェイリスナーの宛先側接続プール設定を構成できます。App Mesh は、クライアント側の接続プール設定をデフォルトで無限に設定し、メッシュ構成を簡素化します。

      注記

      ConnectionPool プロトコルと PortMapping プロトコルは同じである必要があります。リスナープロトコルが grpc または http2 の場合は、MaxRequests のみを指定します。リスナープロトコルが http の場合は、MaxConnections と MaxPendingRequests の両方を指定できます。

      • を使用する場合最大接続数で、アウトバウンド接続の最大数を指定します。

      • を使用する場合最大リクエスト数で、仮想ゲートウェイエンボイで確立できる並列要求の最大数を指定します。

      • (オプション)保留中のリクエストの最大数で、オーバーフローしたリクエストの数を指定します。最大接続数使節が待ち行列になること デフォルト値は 2147483647 です。

    3. (オプション)リスナーのヘルスチェックを設定する場合は、ヘルスチェックの有効化

      ヘルスチェックポリシーはオプションですが、ヘルスポリシーの値を指定する場合は、正常のしきい値,Health チェック間隔,ヘルスチェックプロトコル,タイムアウト期間, および非正常のしきい値

      • を使用する場合ヘルスチェックプロトコルで、プロトコルを選択します。[] を選択すると、GRPC場合、サービスはGRPC Health チェックプロトコル

      • [ヘルスチェックポート] に、ヘルスチェックを実行するポートを指定します。

      • [正常のしきい値] に、リスナーが正常であると宣言するために必要となるヘルスチェック成功の数を指定します。

      • [ヘルスチェック間隔] に、各ヘルスチェックの実行間隔をミリ秒単位で指定します。

      • [パス] に、ヘルスチェックリクエストの送信先パスを指定します。この値は、ヘルスチェックプロトコルhttpまたはhttp2。他のプロトコルでは、値は無視されます。

      • [タイムアウト時間] に、ヘルスチェックからの応答を受け取るまで待機する時間をミリ秒単位で指定します。

      • [非正常のしきい値] に、リスナーが異常であると宣言するために必要となるヘルスチェック失敗の数を指定します。

    4. (オプション)仮想ノードが TLS を使用してこの仮想ゲートウェイと通信するかどうかを指定する場合は、TLS 終了の有効化

      • を使用する場合Mode (モード)で、リスナーで TLS を設定するモードを選択します。

      • を使用する場合証明書方法次のいずれかのオプションを選択します。証明書は特定の要件を満たしている必要があります。詳細については、「証明書の要件」を参照してください。

        • AWS Certificate Managerhosting— 既存の証明書

        • 特使シークレットディスカバリーサービスhosting — 秘密探索サービスを使用して取得する秘密使の名前を入力します。

        • ローカルファイルホスティング— パスを指定する証明書チェーンおよびプライベートキーファイルを Envoy がデプロイされているファイルシステム上に配置します。

      • (オプション) [] を選択します。クライアント証明書が必要と、クライアントが証明書を提供する場合に相互 TLS 認証を有効にするオプションを以下に示します。相互 TLS の詳細については、「App Mesh」を参照してください。相互 TLS 認証ドキュメント

        • 特使シークレットディスカバリーサービスhosting — 秘密探索サービスを使用して取得する秘密使の名前を入力します。

        • ローカルファイルホスティング— パスを指定する証明書チェーンファイルを Envoy がデプロイされているファイルシステム上に配置されています。

      • (省略可能)サブジェクトの別名。SAN を追加するには、SANの追加。SAN は FQDN または URI フォーマットである必要があります。

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

仮想ゲートウェイデプロイ

のみを含む Amazon ECS または Kubernetes サービスをデプロイするEnvoy。また、Envoy コンテナは Amazon EC2 インスタンスにデプロイすることもできます。詳細については、「」を参照してください。「App Mesh と Amazon EC2 の入門用ガイド」。Amazon ECS へのデプロイ方法の詳細については、「」を参照してください。「App Mesh とAmazon ECSの使用を開始する」またはの開始方法AWSApp Mesh と Kubernetesを使用して Kubernetes にデプロイします。設定する必要がありますAPPMESH_RESOURCE_ARN環境変数をmesh/mesh-name/virtualGateway/virtual-gateway-nameであり、プロキシのトラフィックがそれ自体にリダイレクトされないようにプロキシ設定を指定しないでください。デフォルトでは、Envoy によってメトリクスとトレースでそれ自体が参照されるとき、App Mesh は、APPMESH_RESOURCE_ARN で指定したリソースの名前を使用します。APPMESH_RESOURCE_CLUSTER 環境変数に独自の名前を設定することで、この動作を上書きできます。

コンテナの複数のインスタンスをデプロイし、Network Load Balancer を設定して、インスタンスへのトラフィックを負荷分散することをお勧めします。ロードバランサーのサービス検出名は、メッシュ内のリソースにアクセスするために外部サービスが使用する名前です (myapp.example.com。詳細については、「」を参照してください。Network Load Balancer を作成する(Amazon ECS)、外部Load Balancer の作成(Kubernetes)、またはチュートリアル: Amazon EC2 でのアプリケーションの可用性を向上させる。また、さらに多くの例やチュートリアルは、当社で参照できますApp Mesh

Envoye のプロキシ認証を有効にします。詳細については、「Envoy プロキシ」を参照してください。

仮想ゲートウェイの削除

仮想ゲートウェイを削除するにはAWS CLIバージョン 1.18.116 以降については、AWS CLIのリファレンスdelete-virtual-gatewayコマンドを実行します。

仮想ゲートウェイを削除するにはAWS Management Console

  1. App Mesh コンソールをhttps://console.aws.amazon.com/appmesh/

  2. 仮想ゲートウェイを削除するメッシュを選択します。自分が所有しているメッシュと共有がリストされます。

  3. 選択仮想ゲートウェイ左側のナビゲーションで。

  4. 削除する仮想ゲートウェイを選択し、削除。ゲートウェイルートが関連付けられている仮想ゲートウェイは削除できません。関連するゲートウェイルートを最初に削除する必要があります。削除できるのは、アカウントがリソース所有者

  5. 確認ボックスでdelete[] を選択してから、削除