

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 가상 서비스
<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 Management Console ]

**를 사용하여 가상 서비스를 생성하려면 AWS Management Console**

1. [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/)에서 App Mesh 콘솔을 엽니다.

1. 가상 서비스를 생성하려는 메시를 선택합니다. 소유하고 있는 모든 메시와 [공유된](sharing.md) 모든 메시가 나열됩니다.

1. 왼쪽 탐색 창에서 **Virtual services(가상 서비스)**를 선택합니다.

1. **Create virtual service(가상 서비스 생성)**를 선택합니다.

1. **Virtual service name(가상 서비스 이름)**에서 가상 서비스의 이름을 선택합니다. 원하는 이름을 선택할 수 있지만 가상 서비스를 실제 서비스와 쉽게 연관시킬 수 있도록 대상으로 하는 실제 서비스의 서비스 검색 이름(예: `my-service.default.svc.cluster.local`)을 사용하는 것이 좋습니다. 이렇게 하면 코드에서 현재 참조하는 이름과 다른 이름을 참조하도록 코드를 변경할 필요가 없습니다. 요청이 Envoy 프록시로 전송되기 전에 앱 컨테이너가 이름을 성공적으로 확인할 수 있어야 하므로 지정하는 이름은 루프백이 아닌 IP 주소로 확인되어야 합니다. 앱이나 프록시 컨테이너 모두 이 IP 주소와 통신하지 않으므로 루프백이 아닌 모든 IP 주소를 사용할 수 있습니다. 프록시는 이름이 확인되는 IP 주소를 통하지 않고 App Mesh에서 구성한 이름을 통해 다른 가상 서비스와 통신합니다.

1. **Provider(공급자)**에서 가상 서비스의 공급자 유형을 선택합니다.
   + 가상 서비스에서 여러 가상 노드로 트래픽을 분산시키려면 **Virtual router(가상 라우터)**를 선택한 다음, 드롭다운 메뉴에서 사용할 가상 라우터를 선택합니다.
   + 가상 라우터 없이 가상 서비스를 직접 가상 노드에 연결하려면 **가상 노드**를 선택한 다음, 드롭다운 메뉴에서 사용할 가상 노드를 선택합니다.
**참고**  
App Mesh는 2020년 7월 29일 또는 그 이후에 정의한 각 가상 노드 공급자에 대해 기본 Envoy 경로 재시도 정책을 자동으로 생성할 수 있습니다. App Mesh API를 통해 이러한 정책을 정의할 수 없더라도 마찬가지입니다. 자세한 내용은 [기본 경로 재시도 정책](envoy-defaults.md#default-retry-policy) 단원을 참조하십시오.
   + 가상 서비스가 지금 트래픽을 라우팅하지 않게 하려면(예: 가상 노드 또는 가상 라우터가 아직 없는 경우) **None(없음)**을 선택합니다. 나중에 이 가상 서비스의 공급자를 업데이트할 수 있습니다.

1. **Create virtual service(가상 서비스 생성)**를 선택하여 완료합니다.

------
#### [ 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 Management Console ]

**를 사용하여 가상 서비스를 삭제하려면 AWS Management Console**

1. [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/)에서 App Mesh 콘솔을 엽니다.

1. 가상 서비스를 삭제하려는 메시를 선택합니다. 소유하고 있는 모든 메시와 [공유된](sharing.md) 모든 메시가 나열됩니다.

1. 왼쪽 탐색 창에서 **Virtual services(가상 서비스)**를 선택합니다.

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

for App Mesh를 사용하여 가상 서비스를 삭제하는 AWS CLI 방법에 대한 자세한 내용은 AWS CLI 참조의 [delete-virtual-service](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-virtual-service.html) 명령을 참조하세요.

------