翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
仮想ノード
重要
サポート終了通知: 2026 年 9 月 30 日、 AWS はサポートを終了します AWS App Mesh。2026 年 9 月 30 日以降、 AWS App Mesh コンソールまたは AWS App Mesh リソースにアクセスできなくなります。詳細については、このブログ記事「 から Amazon ECS Service Connect AWS App Mesh への移行
仮想ノードは、Amazon ECS サービスや Kubernetes デプロイメントなどの特定のタスクグループへの論理ポインタとして機能します。仮想ノードを作成するときには、タスクグループのサービス検出メソッドを指定する必要があります。仮想ノードが期待するインバウンドトラフィックはすべて、リスナーとして指定されます。仮想ノードがアウトバウンドトラフィックを送信する仮想サービスは、バックエンドとして指定されます。
新しい仮想ノードのレスポンスメタデータには、仮想ノードに関連付けられている Amazon リソースネーム (ARN) が含まれています。この値を、Amazon ECS タスク定義または Kubernetes ポッド仕様のタスクグループの Envoy プロキシコンテナの APPMESH_RESOURCE_ARN
環境変数として設定します。例えば、値は arn:aws:appmesh:
になる可能性があります。これは、us-west-2
:111122223333
:mesh/myMesh
/virtualNode/myVirtualNode
node.id
および node.cluster
Envoy パラメータにマッピングされます。これらの変数を設定するときは、Envoy イメージの 1.15.0
以降を使用する必要があります。App Mesh Envoy 変数の詳細については、「Envoy イメージ」を参照してください。
注記
デフォルトでは、App Mesh は、Envoy によってメトリクスとトレースでそれ自体が参照されるとき、APPMESH_RESOURCE_ARN
で指定したリソースの名前を使用します。APPMESH_RESOURCE_CLUSTER
環境変数に独自の名前を設定することで、この動作を上書きできます。
仮想ノードの作成
を使用して仮想ノードを作成するには AWS Management Console
-
https://console.aws.amazon.com/appmesh/
で AppMesh コンソールを開きます。 -
仮想ノードを作成するメッシュを選択します。自分が所有し、これまでに共有された、すべてのメッシュが一覧表示されます。
-
左側のナビゲーションで [仮想ノード] を選択します。
-
[仮想ノードの作成] を選択し、仮想ノードの設定を指定します。
-
[仮想ノード名] で、仮想ノードの名前を入力します。
-
[サービスの検出方法] で、次のいずれかのオプションを選択します。
-
DNS — 仮想ノードが表す実際のサービスの [DNS ホスト名] を指定します。Envoy プロキシは、Amazon VPC にデプロイされます。プロキシは、VPC 用に設定された DNS サーバーに、名前解決リクエストを送信します。ホスト名が解決されると、DNS サーバーは 1 つ以上の IP アドレスを返します。VPC の DNS 設定の詳細については、「VPC での DNS の使用」を参照してください。[DNS response type] (DNS レスポンスのタイプ) (オプション) に、DNS リゾルバによって返されるエンドポイントのタイプを指定します。「ロードバランサー」とは、DNS リゾルバがロードバランシングされたエンドポイントのセットを返すことを意味します。「エンドポイント」とは、DNS リゾルバがすべてのエンドポイントを返すことを意味します。デフォルトでは、レスポンスタイプはロードバランサーであると想定されています。
注記
Route53 を使用する場合、ロードバランサーを使用する必要があります。
-
[AWS Cloud Map] — 既存の [サービス名] と [名前空間] を指定します。必要に応じて、行を追加を選択し、キーと値を指定 AWS Cloud Map することで、App Mesh がクエリできる属性を指定することもできます。指定されたすべてのキーと値のペアに一致するインスタンスのみが返されます。を使用するには AWS Cloud Map、 アカウントに
AWSServiceRoleForAppMesh
サービスにリンクされたロールが必要です。詳細については AWS Cloud Map、「 AWS Cloud Map デベロッパーガイド」を参照してください。 -
なし – 仮想ノードがインバウンドトラフィックを予期しない場合に選択します。
-
-
[IP バージョンの設定]
[デフォルトの IP バージョンの動作を上書きする] をオンに切り替えて、メッシュ内のトラフィックに使用する IP バージョンを制御します。デフォルトでは、App Mesh はさまざまな IP バージョンを使用します。
注記
仮想ノードで IP 優先設定を設定すると、そのノード上のメッシュに設定された IP優先設定のみが上書きされます。
デフォルト値
-
Envoy の DNS リゾルバーは
IPv6
を優先し、IPv4
にフォールバックします。 -
利用可能な AWS Cloud Map 場合は から返された
IPv4
アドレスを使用し、そのIPv6
アドレスを使用するようにフォールバックします。 -
ローカルアプリ用に作成されたエンドポイントは
IPv4
アドレスを使用します。 -
Envoy リスナーはすべての
IPv4
アドレスにバインドされます。
-
IPv6 優先
-
Envoy の DNS リゾルバーは
IPv6
を優先し、IPv4
にフォールバックします。 -
から返された
IPv6
アドレス AWS Cloud Map は、利用可能な場合は使用され、そのIPv4
アドレスの使用にフォールバックします。 -
ローカルアプリ用に作成されたエンドポイントは
IPv6
アドレスを使用します。 -
Envoy リスナーはすべての
IPv4
およびIPv6
アドレスにバインドされます。
-
IPv4 優先
-
Envoy の DNS リゾルバーは
IPv4
を優先し、IPv6
にフォールバックします。 -
利用可能な AWS Cloud Map 場合は から返された
IPv4
アドレスを使用し、そのIPv6
アドレスを使用するようにフォールバックします。 -
ローカルアプリ用に作成されたエンドポイントは
IPv4
アドレスを使用します。 -
Envoy リスナーはすべての
IPv4
およびIPv6
アドレスにバインドされます。
-
IPv6 のみ
-
Envoy の DNS リゾルバーは
IPv6
のみを使用します。 -
によって返された
IPv6
アドレスのみ AWS Cloud Map が使用されます。 AWS Cloud Map がIPv4
アドレスを返す場合、IP アドレスは使用されず、空の結果が Envoy に返されます。 -
ローカルアプリ用に作成されたエンドポイントは
IPv6
アドレスを使用します。 -
Envoy リスナーはすべての
IPv4
およびIPv6
アドレスにバインドされます。
-
IPv4 のみ
-
Envoy の DNS リゾルバーは
IPv4
のみを使用します。 -
によって返された
IPv4
アドレスのみ AWS Cloud Map が使用されます。 AWS Cloud Map がIPv6
アドレスを返す場合、IP アドレスは使用されず、空の結果が Envoy に返されます。 -
ローカルアプリ用に作成されたエンドポイントは
IPv4
アドレスを使用します。 -
Envoy リスナーはすべての
IPv4
およびIPv6
アドレスにバインドされます。
-
(オプション) クライアントポリシーのデフォルト – バックエンド仮想サービスと通信するときのデフォルトの要件を設定します。
注記
-
既存の仮想ノードに対して Transport Layer Security (TLS) を有効にする場合は、TLS を有効にする既存の仮想ノードと同じサービスを表す新しい仮想ノードを作成することをお勧めします。次に、仮想ルータとルートを使用して、トラフィックを新しい仮想ノードに徐々にシフトします。ルートの作成およびトランジションの重みの調整に関する詳細については、「ルート」を参照してください。既存のトラフィック処理仮想ノードを TLS で更新する場合、更新した仮想ノードの Envoy プロキシが証明書を受信する前に、ダウンストリームクライアントの Envoy プロキシが TLS 検証コンテキストを受信する可能性があります。これにより、ダウンストリームの Envoy プロキシで TLS ネゴシエーションエラーが発生する可能性があります。
-
プロキシ認可は、バックエンドサービスの仮想ノードで表されるアプリケーションでデプロイされた Envoy プロキシに対して有効にする必要があります。プロキシ認可を有効にする場合は、この仮想ノードが通信している仮想ノードのみへのアクセスを制限するようお勧めします。
-
(オプション) 仮想ノードが Transport Layer Security (TLS) を使用してすべてのバックエンドと通信するようにリクエストする場合には、[TLS の適用] を選択します。
-
(オプション) 1 つ以上の特定のポートに対して TLS の使用のみが必要な場合は、[ポート] に数値を入力します。ポートを追加するには、[ポートの追加] を選択します。ポートを指定しない場合、すべてのポートに TLS が適用されます。
-
検証方法を使用する場合、次のいずれかのオプションを選択します。指定する証明書は、すでに存在し、特定の要件を満たしている必要があります。詳細については、「証明書の要件」を参照してください。
-
AWS Private Certificate Authority ホスティング — 既存の 1 つまたは複数のを選択します。証明書。ACM 証明書による暗号化を使用してサンプルアプリケーションでメッシュをデプロイする完全なend-to-endのウォークスルーについては、GitHub の「Configuring TLS with AWS Certificate Manager
」を参照してください。 -
[Envoy Secret Discovery Service (SDS)] ホスティング — Envoy が Secret Discovery Service を使って取得するシークレットの名前を入力します。
-
ローカルファイルホスティング — Envoy がデプロイされているファイルシステム上の証明書チェーンファイルへのパスを指定します。ローカルファイルで暗号化を使用してサンプルアプリケーションでメッシュをデプロイする完全なエンドツーエンドのチュートリアルについては、GitHub の「ファイルにより提供された TLS 証明書を使用した TLS の設定
」を参照してください。
-
-
(オプション) [Subject Alternative Name] (サブジェクトの別名) を入力します。SAN を追加するには、[Add SAN] (SAN を追加) を選択します。SAN は FQDN または URI 形式である必要があります。
-
(オプション) サーバーが要求したときにクライアント証明書を提供し、相互TLS認証を有効にするには、[Provide client certificate] (クライアント証明書の提供) と、次のオプションのいずれかを選択します。相互 TLS の詳細については、App Mesh の「相互 TLS 認証」ドキュメントを参照してください。
-
[Envoy Secret Discovery Service (SDS)] ホスティング — Envoy が Secret Discovery Service を使って取得するシークレットの名前を入力します。
-
ローカルファイルホスティング - Envoy がデプロイされているファイルシステムで、証明書チェーンファイルとプライベートキーへのパスを指定します。
-
-
(オプション) サービスバックエンド — 仮想ノードが通信する App Mesh 仮想サービスを指定します。
-
仮想ノードが通信する仮想サービスの AppMesh 仮想サービス名または完全な Amazonリソース名 (ARN) を入力します。
-
(オプション) バックエンドに一意の TLS 設定を設定する場合は、[TLS 設定]、次に、[デフォルトのオーバーライド] を選択します。
-
(オプション) 仮想ノードが TLS を使用してすべてのバックエンドと通信する必要がある場合、[TLS の適用] を選択します。
-
(オプション) 1 つ以上の特定のポートに対して TLS の使用のみが必要な場合は、[ポート] に数値を入力します。ポートを追加するには、[ポートの追加] を選択します。ポートを指定しない場合、すべてのポートに TLS が適用されます。
-
検証方法を使用する場合、次のいずれかのオプションを選択します。指定する証明書は、すでに存在し、特定の要件を満たしている必要があります。詳細については、「証明書の要件」を参照してください。
-
AWS Private Certificate Authority ホスティング — 既存の証明書の 1 つまたは複数を選択します。
-
[Envoy Secret Discovery Service (SDS)] ホスティング — Envoy が Secret Discovery Service を使って取得するシークレットの名前を入力します。
-
ローカルファイルホスティング — Envoy がデプロイされているファイルシステム上の証明書チェーンファイルへのパスを指定します。
-
-
(オプション) サブジェクトの別名を入力します。SAN を追加するには、[Add SAN] (SAN を追加) を選択します。SAN は FQDN または URI 形式である必要があります。
-
(オプション) サーバーが要求したときにクライアント証明書を提供し、相互TLS認証を有効にするには、[Provide client certificate] (クライアント証明書の提供) と、次のオプションのいずれかを選択します。相互 TLS の詳細については、App Mesh の「相互 TLS 認証」ドキュメントを参照してください。
-
[Envoy Secret Discovery Service (SDS)] ホスティング — Envoy が Secret Discovery Service を使って取得するシークレットの名前を入力します。
-
ローカルファイルホスティング - Envoy がデプロイされているファイルシステムで、証明書チェーンファイルとシークレットキーへのパスを指定します。
-
-
バックエンドを追加するには、[バックエンドの追加] を選択します。
-
-
(オプション) ログ記録
ログ記録を設定するには、Envoy が使用する HTTP アクセスログのパスを入力します。
/dev/stdout
パスを使用するようお勧めします。これにより、Docker ログドライバーを使用して Envoy ログを Amazon CloudWatch Logs などのサービスにエクスポートできます。注記
ログは引き続き、アプリケーション内のエージェントによって取り込まれ、送信先に送信される必要があります。このファイルパスは、ログの送信先を Envoy に指示するだけです。
-
[リスナー設定]
リスナーは、
HTTP
、HTTP/2
、GRPC
、TCP
の各プロトコルをサポートします。HTTPS
はサポートされていません。-
仮想ノードがインバウンドトラフィックをリクエストする場合は、リスナー用のポートとプロトコルを指定します。http リスナーは、WebSocket への接続移行を許可します。[リスナーの追加] をクリックすると、複数のリスナーを追加できます。[削除] ボタンをクリックすると、そのリスナーが削除されます。
(オプション) 接続プールの有効化
接続プーリングにより、Envoy がローカルアプリケーションクラスターと同時に確立できる接続の数が制限されます。これは、ローカルアプリケーションが接続に圧倒されるのを防ぎ、アプリケーションのニーズに合わせてトラフィックシェーピングを調整できるようにすることを目的としています。
仮想ノードリスナーの宛先側の接続プール設定を行うことができます。App Mesh は、クライアント側の接続プールの設定をデフォルトで無限に設定し、メッシュの設定を簡素化します。
注記
connectionPool と portMapping プロトコルは同じである必要があります。リスナープロトコルが tcp の場合は、maxConnections のみを指定します。リスナープロトコルが grpc または http2 の場合は、maxRequests のみを指定します。リスナープロトコルが http の場合、maxConnections と maxPendingRequests の両方を指定できます。
-
[最大接続数] に、アウトバウンド接続の最大数を指定します。
-
(オプション) [Maximum pending requests] (最大保留リクエスト数) に、Envoy が [最大接続数] をキューに入れた後、オーバーフローしているリクエストの数を指定します。デフォルト値は
2147483647
です。
-
(オプション) 外れ値の検出の有効化
クライアント Envoy で適用された外れ値の検出により、クライアントは、既知の既知の障害がある接続に対して、ほぼ即時のアクションを実行できます。これは、アップストリームサービス内の個々のホストのヘルスステータスを追跡する回路ブレーカ実装の一形態です。
外れ値の検出は、アップストリームクラスタ内のエンドポイントが他のクラスターとは異なるパフォーマンスを示しているかどうかを動的に判断し、正常な負荷分散セットからそれらを削除します。
注記
サーバーの仮想ノードの外れ値検出を効果的に設定するために、その仮想ノードのサービス検出方法は、レスポンスタイプフィールドが に設定されている AWS Cloud Map または DNS のいずれかになります
ENDPOINTS
。レスポンスタイプをLOADBALANCER
に設定して DNS サービス検出方法を使用する場合、Envoy プロキシは、アップストリームサービスへのルーティングに 1 つの IP アドレスのみを選択します。これにより、一連のホストから異常なホストを排出する外れ値の検出動作を無効にします。サービスディスカバリタイプに関する Envoy プロキシの動作の詳細については、「サービス検出方法」セクションを参照してください。-
[サーバーエラー] に、排出に必要な連続した 5xx エラーの数を指定します。
-
[Outlier detection interval] (外れ値の検出間隔) に、排出のスイープ解析の時間間隔と単位を指定します。
-
[Base ejection duration] (ベース突出時間) に、ホストが排出される基本時間と単位を指定します。
-
[Ejection percentage] (突出パーセンテージ) に、負荷分散プール内の排出可能なホストの最大パーセンテージを指定します。
-
(オプション) [ヘルスチェックを有効化] — ヘルスチェックポリシーに関する設定を行います。
ヘルスチェックポリシーはオプションですが、ヘルスポリシーに値を指定する場合は、正常なしきい値、ヘルスチェック間隔、ヘルスチェックプロトコル、タイムアウト期間、非正常なしきい値の値を指定する必要があります。
-
[ヘルスチェックプロトコル] で、プロトコルを選択します。grpc を選択した場合、サービスは GRPC Health CheckingProtocol
に準拠している必要があります。 -
[ヘルスチェックポート] に、ヘルスチェックを実行するポートを指定します。
-
[正常なしきい値] に、リスナーが正常であると宣言するために必要となるヘルスチェック成功の数を指定します。
-
[ヘルスチェック間隔] に、各ヘルスチェックの実行間隔をミリ秒単位で指定します。
-
[パス] に、ヘルスチェックリクエストの送信先パスを指定します。この値は、ヘルスチェックプロトコルが
http
またはhttp2
の場合のみ使用されます。この値は、他のプロトコルでは無視されます。 -
[タイムアウト期間] に、ヘルスチェックからの応答を受け取るまで待機する時間をミリ秒単位で指定します。
-
[非正常なしきい値] に、リスナーが異常であると宣言するために必要となるヘルスチェック失敗の数を指定します。
-
(オプション) [TLS ターミネーションの有効化] – TLS を使用して他の仮想ノードがこの仮想ノードと通信する方法を設定します。
-
[モード]で、リスナーで TLS を設定するモードを選択します。
-
[証明書メソッド] で、次のいずれかのオプションを選択します。証明書は特定の要件を満たしている必要があります。詳細については、「証明書の要件」を参照してください。
-
AWS Certificate Manager ホスティング – 既存の証明書を選択します。
-
[Envoy Secret Discovery Service (SDS)] ホスティング — Envoy が Secret Discovery Service を使って取得するシークレットの名前を入力します。
-
[ローカルファイルホスティング] — Envoy プロキシがデプロイされているファイルシステムで、証明書チェーンファイルとシークレットキーへのパスを指定します。
-
-
(オプション) [Require client certificates] (クライアント証明書を要求する) とクライアントが証明書を提供するときに相互 TLS 認証を有効にする次のオプションの 1 つを選択します。相互 TLS の詳細については、App Mesh の「相互 TLS 認証」ドキュメントを参照してください。
-
[Envoy Secret Discovery Service (SDS)] ホスティング — Envoy が Secret Discovery Service を使って取得するシークレットの名前を入力します。
-
ローカルファイルホスティング — Envoy がデプロイされているファイルシステム上の証明書チェーンファイルへのパスを指定します。
-
-
(オプション) サブジェクトの別名を入力します。SAN を追加するには、[Add SAN] (SAN を追加) を選択します。SAN は FQDN または URI 形式である必要があります。
-
(オプション) [タイムアウト]
注記
デフォルトより大きいタイムアウトを指定する場合は、必ず、デフォルトより大きいタイムアウト値を持つ仮想ルータとルートを設定してください。ただし、タイムアウトをデフォルトより低い値に減らす場合には、ルートでのタイムアウトを更新はオプションとなります。詳細については、「ルート」を参照してください。
-
[リクエストのタイムアウト] — リスナーのプロトコルに grpc、http、または http2 を選択した場合には、リクエストのタイムアウトを指定できます。デフォルト値は 15 秒です。値が
0
の場合、タイムアウトが無効になります。 -
[アイドル期間] — 任意のリスナープロトコルのアイドル期間を指定できます。デフォルトは 300 秒です。
-
-
-
[仮想ルーターの作成] を選択して終了します。
仮想ノードの削除
を使用して仮想ノードを削除するには AWS Management Console
-
App Mesh コンソールを https://console.aws.amazon.com/appmesh/
で開きます。 -
仮想ノードから削除するメッシュを選択します。自分が所有し、これまでに共有された、すべてのメッシュが一覧表示されます。
-
左側のナビゲーションで [仮想ノード] を選択します。
-
[仮想ノード] テーブルで、削除する仮想ノードを選択し、[削除] を選択します。仮想ノードを削除するには、アカウントIDが仮想ノードのメッシュ所有者またはリソース所有者の列にリストされている必要があります。
-
確認ボックスで、
delete
と入力し、次に、[削除] を選択します。