翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
仮想サービス
重要
サポート終了通知: 2026 年 9 月 30 日、 は のサポートを中止 AWS します AWS App Mesh。2026 年 9 月 30 日以降、 AWS App Mesh コンソールまたは AWS App Mesh リソースにアクセスできなくなります。詳細については、このブログ記事の「 から Amazon ECS Service Connect AWS App Mesh への移行
仮想サービスは、仮想ノードが仮想ルーターを使用して直接または間接的に提供する実際のサービスを抽象化したものです。依存サービスが virtualServiceName
を使用して仮想サービスを呼び出し、それらのリクエストが仮想サービスのプロバイダーとして指定されている仮想ノードまたは仮想ルーターにルーティングされます。
仮想サービスを作成する
- AWS Management Console
-
を使用して仮想サービスを作成するには AWS Management Console
-
で App Mesh コンソールを開きますhttps://console.aws.amazon.com/appmesh/
。 -
仮想サービスを作成するメッシュを選択します。所有し、共有されているすべてのメッシュが一覧表示されます。
-
左側のナビゲーションで [仮想サービス] を選択します。
-
[仮想サービスの作成] を選択します。
-
[仮想サービス名] で仮想サービスの名前を選択します。任意の名前を選択できますが、ターゲットとする実際のサービスのサービス検出名 (
my-service.default.svc.cluster.local
など) にして、仮想サービスを実際のサービスに簡単に関連付けることができるようにすることをお勧めします。このようにすると、現在参照されているコードとは異なる名前を参照するようにコードを変更する必要はありません。リクエストが Envoy プロキシに送信される前に、アプリケーションコンテナが名前を正常に解決できる必要があるため、指定する名前は非ループバックIPアドレスに解決される必要があります。アプリまたはプロキシコンテナは、この IP アドレスと通信しないため、非ループバックの任意の IP アドレスを使用できます。プロキシは、App Mesh で設定した名前で他の仮想サービスと通信し、名前が解決される IP アドレスを介しては通信しません。 -
[プロバイダー] で、仮想サービスのプロバイダータイプを選択します。
-
仮想サービスでトラフィックを複数の仮想ノードに分散させる場合は、[仮想ルーター] を選択してから、使用する仮想ルーターをドロップダウンメニューから選択します。
-
仮想ルーターを使用せずに仮想サービスを仮想ノードに直接到達させる場合は、[仮想ノード] を選択してから、使用する仮想ノードをドロップダウンメニューから選択します。
注記
App Mesh は、App Mesh を通じてこのようなポリシーを定義できない場合でも、2020 年 7 月 29 日以降に定義した仮想ノードプロバイダーごとにデフォルトの Envoy ルート再試行ポリシーを自動的に作成することがありますAPI。詳細については、「デフォルトのルート再試行ポリシー」を参照してください。
-
この時点で仮想サービスにトラフィックをルーティングさせないようにする場合 (例えば、仮想ノードまたは仮想ルーターがまだ存在していない場合) は、[なし] を選択します。この仮想サービスのプロバイダーは後から更新できます。
-
-
[仮想サービスの作成] を選択して終了します。
-
- AWS CLI
-
AWS CLIを使用して仮想サービスを作成するには
次のコマンドと入力JSONファイルを使用して、仮想ノードプロバイダーを使用して仮想サービスを作成します (
red
独自の値):-
aws appmesh create-virtual-service \ --cli-input-json file://create-virtual-service-virtual-node.json
-
create-virtual-service-virtual-node.json の例の内容:
{ "meshName": "meshName", "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
-
出力例:
{ "virtualService": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:
us-west-2
:210987654321:mesh/meshName/virtualService/serviceA.svc.cluster.local", "createdAt": "2022-04-06T09:45:35.890000-05:00", "lastUpdatedAt": "2022-04-06T09:45:35.890000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceA.svc.cluster.local" } }
AWS CLI for App Mesh を使用して仮想サービスを作成する方法の詳細については、 AWS CLI リファレンスの create-virtual-service コマンドを参照してください。
-
仮想サービスを削除する
注記
ゲートウェイルートで参照されている仮想サービスは削除できません。最初にゲートウェイルートを削除する必要があります。
- AWS Management Console
-
を使用して仮想サービスを削除するには AWS Management Console
-
で App Mesh コンソールを開きますhttps://console.aws.amazon.com/appmesh/
。 -
仮想サービスを削除するメッシュを選択します。所有し、共有されているすべてのメッシュが一覧表示されます。
-
左側のナビゲーションで [仮想サービス] を選択します。
-
削除する仮想サービスを選択し、右上隅の [削除] をクリックします。アカウントがリソース所有者として一覧されている仮想ゲートウェイのみを削除できます。
-
確認ボックスで、「
delete
」と入力し、[削除] をクリックします。
-
- AWS CLI
-
を使用して仮想サービスを削除するには AWS CLI
-
次のコマンドを使用して、仮想サービスを削除します (
red
独自の値):aws appmesh delete-virtual-service \ --mesh-name
meshName
\ --virtual-service-nameserviceA.svc.cluster.local
-
出力例:
{ "virtualService": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:
us-west-2
:210987654321:mesh/meshName/virtualService/serviceA.svc.cluster.local", "createdAt": "2022-04-06T09:45:35.890000-05:00", "lastUpdatedAt": "2022-04-07T10:39:42.772000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "status": { "status": "DELETED" }, "virtualServiceName": "serviceA.svc.cluster.local" } }
AWS CLI for App Mesh で仮想サービスを削除する方法の詳細については、 AWS CLI リファレンスの delete-virtual-service コマンドを参照してください。
-