

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

# 仮想サービス
<a name="virtual_services"></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)」を参照してください。

仮想サービスは、仮想ノードが仮想ルーターを使用して直接または間接的に提供する実際のサービスを抽象化したものです。依存サービスが `virtualServiceName` を使用して仮想サービスを呼び出し、それらのリクエストが仮想サービスのプロバイダーとして指定されている仮想ノードまたは仮想ルーターにルーティングされます。

## 仮想サービスを作成する
<a name="create-virtual-service"></a>

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

**を使用して仮想サービスを作成するには AWS マネジメントコンソール**

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

1. 仮想サービスを作成するメッシュを選択します。所有し、[共有](sharing.md)されているすべてのメッシュが一覧表示されます。

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

1. **[仮想サービスの作成]** を選択します。

1. **[仮想サービス名]** で仮想サービスの名前を選択します。任意の名前を選択できますが、ターゲットとする実際のサービスのサービス検出名 (`my-service.default.svc.cluster.local` など) にして、仮想サービスを実際のサービスに簡単に関連付けることができるようにすることをお勧めします。このようにすると、現在参照されているコードとは異なる名前を参照するようにコードを変更する必要はありません。リクエストが Envoy プロキシに送信される前に、アプリケーションコンテナが名前を正常に解決できる必要があるため、指定する名前は非ループバックIPアドレスに解決される必要があります。アプリまたはプロキシコンテナは、この IP アドレスと通信しないため、非ループバックの任意の IP アドレスを使用できます。プロキシは、App Mesh で設定した名前で他の仮想サービスと通信し、名前が解決される IP アドレスを介しては通信しません。

1. **[プロバイダー]** で、仮想サービスのプロバイダータイプを選択します。
   + 仮想サービスでトラフィックを複数の仮想ノードに分散させる場合は、**[仮想ルーター]** を選択してから、使用する仮想ルーターをドロップダウンメニューから選択します。
   + 仮想ルーターを使用せずに仮想サービスを仮想ノードに直接到達させる場合は、**[仮想ノード]** を選択してから、使用する仮想ノードをドロップダウンメニューから選択します。
**注記**  
App Mesh API を介してそのようなポリシーを定義できない場合でも、App Mesh は、2020 年 7 月 29 日以降に定義した仮想ノードプロバイダーごとにデフォルトの Envoy ルート再試行ポリシーを自動的に作成する場合があります。詳細については、「[デフォルトのルート再試行ポリシー](envoy-defaults.md#default-retry-policy)」を参照してください。
   + この時点で仮想サービスにトラフィックをルーティングさせないようにする場合 (例えば、仮想ノードまたは仮想ルーターがまだ存在していない場合) は、**[なし]** を選択します。この仮想サービスのプロバイダーは後から更新できます。

1. **[仮想サービスの作成]** を選択して終了します。

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

** AWS CLIを使用して仮想サービスを作成するには**

以下のコマンドと入力 JSON ファイル (*赤色*の値を独自の値に置き換えてください) を使用して、仮想サービスと仮想ノードプロバイダーを作成します。

1. 

   ```
   aws appmesh create-virtual-service \ 
   --cli-input-json file://create-virtual-service-virtual-node.json
   ```

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

   ```
   {
       "meshName": "meshName",
       "spec": {
           "provider": {
               "virtualNode": {
                   "virtualNodeName": "nodeName"
               }
           }
       },
       "virtualServiceName": "serviceA.svc.cluster.local"
   }
   ```

1. 出力例:

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

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

------

## 仮想サービスを削除する
<a name="delete-virtual-service"></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-service \
        --mesh-name meshName \
        --virtual-service-name serviceA.svc.cluster.local
   ```

1. 出力例:

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

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

------