가상 서비스 - AWS 앱 메시

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

가상 서비스

중요

지원 종료 알림: 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
  1. 에서 App Mesh 콘솔을 엽니다https://console.aws.amazon.com/appmesh/.

  2. 가상 서비스를 생성하려는 메시를 선택합니다. 소유하고 있는 모든 메시와 공유된 모든 메시가 나열됩니다.

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

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

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

  6. Provider(공급자)에서 가상 서비스의 공급자 유형을 선택합니다.

    • 가상 서비스에서 여러 가상 노드로 트래픽을 분산시키려면 Virtual router(가상 라우터)를 선택한 다음, 드롭다운 메뉴에서 사용할 가상 라우터를 선택합니다.

    • 가상 라우터 없이 가상 서비스를 직접 가상 노드에 연결하려면 가상 노드를 선택한 다음, 드롭다운 메뉴에서 사용할 가상 노드를 선택합니다.

      참고

      App Mesh 는 App Mesh 를 통해 해당 정책을 정의할 수 없더라도 2020년 7월 29일 이후에 정의한 각 가상 노드 공급자에 대해 기본 Envoy 라우팅 재시도 정책을 자동으로 생성할 수 있습니다API. 자세한 내용은 기본 경로 재시도 정책 단원을 참조하십시오.

    • 가상 서비스가 지금 트래픽을 라우팅하지 않게 하려면(예: 가상 노드 또는 가상 라우터가 아직 없는 경우) None(없음)을 선택합니다. 나중에 이 가상 서비스의 공급자를 업데이트할 수 있습니다.

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

AWS CLI

AWS CLI를 사용하여 가상 서비스를 생성하려면

다음 명령과 입력 JSON 파일을 사용하여 가상 노드 공급자로 가상 서비스를 생성합니다( red 자체 값이 있는 값):

  1. aws appmesh create-virtual-service \ --cli-input-json file://create-virtual-service-virtual-node.json
  2. 예제 create-virtual-service-virtual-node.json의 내용:

    { "meshName": "meshName", "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
  3. 출력 예제:

    { "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
  1. 에서 App Mesh 콘솔을 엽니다https://console.aws.amazon.com/appmesh/.

  2. 가상 서비스를 삭제하려는 메시를 선택합니다. 소유하고 있는 모든 메시와 공유된 모든 메시가 나열됩니다.

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

  4. 삭제하려는 가상 서비스를 선택하고 오른쪽 상단 구석에서 삭제를 클릭합니다. 계정이 리소스 소유자로 나열된 경우에만 가상 게이트웨이를 삭제할 수 있습니다.

  5. 확인 상자에 delete를 입력한 다음, 삭제를 클릭합니다.

AWS CLI
를 사용하여 가상 서비스를 삭제하려면 AWS CLI
  1. 다음 명령을 사용하여 가상 서비스를 삭제합니다( red 자체 값이 있는 값):

    aws appmesh delete-virtual-service \ --mesh-name meshName \ --virtual-service-name serviceA.svc.cluster.local
  2. 출력 예제:

    { "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 명령을 참조하세요.