

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

# 게이트웨이 경로
<a name="gateway-routes"></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)을 참조하세요.

게이트웨이 라우팅은 가상 게이트웨이에 연결되며 기존 가상 서비스로 트래픽을 라우팅합니다. 라우팅이 요청과 일치하는 경우 대상 가상 서비스에 트래픽을 분산할 수 있습니다. 이 주제는 서비스 메시의 게이트웨이 경로를 사용하는 데 도움이 됩니다.

## 게이트웨이 경로 생성
<a name="create-gateway-route"></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. 왼쪽 탐색 창에서 **가상 게이트웨이**를 선택합니다.

1. 새 게이트웨이 경로를 연결할 가상 게이트웨이를 선택합니다. 목록에 항목이 없는 경우 먼저 [가상 게이트웨이를 생성](virtual_gateways.md#create-virtual-gateway)해야 합니다. 사용자 계정이 **리소스 소유자**로 나열된 가상 게이트웨이에 대해서만 게이트웨이 경로를 생성할 수 있습니다.

1. **게이트웨이 경로** 테이블에서 **게이트웨이 경로 생성**을 선택합니다.

1. **게이트웨이 경로 이름**에서 게이트웨이 경로에 사용할 이름을 지정합니다.

1. **게이트웨이 경로 유형**으로는 **http**, **http2** 또는 **grpc**를 선택합니다.

1. 기존 **가상 서비스 이름**을 선택합니다. 목록에 항목이 없는 경우 먼저 [가상 서비스](virtual_services.md#create-virtual-service)를 생성해야 합니다.

1. **가상 서비스 공급자 포트**의 대상에 해당하는 포트를 선택합니다. 선택한 가상 서비스의 공급자(라우터 또는 노드)에 리스너가 여러 개 있는 경우 가상 서비스 공급자 포트가 **필수**입니다.

1. (선택 사항) **우선순위**에서 이 게이트웨이 경로의 우선순위를 지정합니다.

1. **일치** 구성의 경우 다음을 지정합니다.
   + 

     **http/http2**가 선택된 유형인 경우:
     + **(선택 사항) **메서드** - 들어오는 **http**/http2** 요청에서 일치시킬 메서드 헤더를 지정합니다.
     + (선택 사항) **포트 일치** ‐ 들어오는 트래픽에 맞는 포트를 찾습니다. 이 가상 게이트웨이에 여러 리스너가 있는 경우 포트 일치가 **필수**입니다.
     + (선택 사항) **정확한/접미사 호스트 이름** - 수신 요청에서 대상 가상 서비스로 라우팅하기 위해 일치시켜야 하는 호스트 이름을 지정합니다.
     + (선택 사항) **접두사/정확한/정규식 경로** ‐ URL 경로를 일치시키는 방법입니다.
       + **접두사 일치** - 기본적으로 게이트웨이 경로의 일치하는 요청이 대상 가상 서비스 이름에 다시 쓰여지고 일치하는 접두사가 다시 작성됩니다(기본값 `/`). 가상 서비스를 구성하는 방법에 따라 가상 라우터를 사용하여 특정 접두사 또는 헤더를 기준으로 요청을 다른 가상 노드로 라우팅할 수 있습니다.
**중요**  
**접두사 일치**에 대해 `/aws-appmesh*` 및 `/aws-app-mesh*` 둘 다 지정할 수 없습니다. 이러한 접두사는 향후 App Mesh 내부 사용을 위해 예약되어 있습니다.
게이트웨이 경로를 여러 개 정의하면 요청은 접두사가 가장 긴 경로와 일치됩니다. 예를 들어 두 개의 게이트웨이 경로가 존재하는데 하나는 접두사가 `/chapter`이고 다른 하나는 접두사가 `/`인 경우 `www.example.com/chapter/`에 대한 요청은 접두사 `/chapter`인 게이트웨이 경로와 일치합니다.
**참고**  
**경로**/**접두사** 기반 일치를 활성화하면 App Mesh는 경로 정규화([normalize\$1path](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-normalize-path) 및 [merge\$1slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes))를 활성화하여 경로 혼동 취약성이 발생할 가능성을 최소화합니다.  
요청에 참여하는 당사자가 서로 다른 경로 표현을 사용하는 경우 경로 혼동 취약성이 발생합니다.
       + **정확한 일치** ‐ exact 파라미터는 경로의 부분 일치를 비활성화하고 경로가 현재 URL에 대해 **EXACT** 일치인 경우에만 경로를 반환하도록 합니다.
       + **정규식 일치** ‐ 여러 URL이 실제로 웹 사이트의 단일 페이지를 식별할 수 있는 패턴을 설명하는 데 사용됩니다.
     + (선택 사항) **쿼리 파라미터** - 이 필드를 사용하면 쿼리 파라미터를 일치시킬 수 있습니다.
     + **(선택 사항) **헤더** - **http** 및 http2**에 대한 헤더를 지정합니다. ㅁ대상 가상 서비스로 라우팅하려면 들어오는 요청과 일치해야 합니다.
   + 

     **grpc**가 선택된 유형인 경우:
     + **호스트 이름 일치 유형** 및 (선택 사항) **정확한/접미사 일치** - 수신 요청에서 대상 가상 서비스로 라우팅하기 위해 일치시켜야 하는 호스트 이름을 지정합니다.
     + **grpc 서비스 이름** ‐ **grpc** 서비스는 애플리케이션의 API 역할을 하며 ProtoBuf로 정의됩니다.
**중요**  
**서비스 이름**에는 `/aws.app-mesh*` 또는 `aws.appmesh`를 지정할 수 없습니다. 이러한 서비스 이름은 향후 App Mesh 내부 사용을 위해 예약되어 있습니다.
     + (선택 사항) **메타데이터** - **grpc**의 메타데이터를 지정합니다. 대상 가상 서비스로 라우팅하려면 들어오는 요청과 일치해야 합니다.

1. (선택 사항) **다시 작성** 구성의 경우:
   + 

     **http/http2**가 선택된 유형인 경우:
     + 

       **접두사**가 선택된 일치 유형인 경우:
       + **호스트 이름 자동 다시 작성 재정의** - 기본적으로 호스트 이름은 대상 가상 서비스의 이름으로 다시 작성됩니다.
       + **접두사 자동 다시 작성 재정의** - 켜져 있는 경우 **접두사 다시 작성**이 다시 작성된 접두사 값을 지정합니다.
     + 

       **정확한 경로**가 선택된 일치 유형인 경우:
       + **호스트 이름 자동 다시 작성 재정의** - 기본적으로 호스트 이름은 대상 가상 서비스의 이름으로 다시 작성됩니다.
       + **경로 다시 작성** - 다시 작성된 경로의 값을 지정합니다. 기본 경로는 없습니다.
     + 

       **접두사 경로**가 선택된 일치 유형인 경우:
       + **호스트 이름 자동 다시 작성 재정의** - 기본적으로 호스트 이름은 대상 가상 서비스의 이름으로 다시 작성됩니다.
       + **경로 다시 작성** - 다시 작성된 경로의 값을 지정합니다. 기본 경로는 없습니다.
   + 

     **grpc**가 선택된 유형인 경우:
     + **호스트 이름 자동 다시 작성 재정의** - 기본적으로 호스트 이름은 대상 가상 서비스의 이름으로 다시 작성됩니다.

1. **게이트웨이 경로 생성**을 선택하여 완료합니다.

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

 AWS CLI를 사용하여 게이트웨이 경로를 생성하려면****

다음 명령을 사용하여 게이트웨이 경로를 생성하고 JSON을 입력합니다(*빨간색* 값을 원하는 값으로 대체).

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \
   --gateway-route-name gatewayRouteName \ 
   --cli-input-json file://create-gateway-route.json
   ```

1. **예제** create-gateway-route.json의 내용은 다음과 같습니다.

   ```
   {
       "spec": {
           "httpRoute" : {
               "match" : {
                   "prefix" : "/"
               },
               "action" : {
                   "target" : {
                       "virtualService": {
                           "virtualServiceName": "serviceA.svc.cluster.local"
                       }
                   }
               }
           }
       }
   }
   ```

1. 출력 예시:

   ```
   {
       "gatewayRoute": {
           "gatewayRouteName": "gatewayRouteName",
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName",
               "createdAt": "2022-04-06T11:05:32.100000-05:00",
               "lastUpdatedAt": "2022-04-06T11:05:32.100000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "httpRoute": {
                   "action": {
                       "target": {
                           "virtualService": {
                               "virtualServiceName": "serviceA.svc.cluster.local"
                           }
                       }
                   },
                   "match": {
                       "prefix": "/"
                   }
               }
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "gatewayName"
       }
   }
   ```

App Mesh용를 사용하여 게이트웨이 경로를 생성하는 AWS CLI 방법에 대한 자세한 내용은 AWS CLI 참조의 [create-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-gateway-route.html) 명령을 참조하세요.

------

## 게이트웨이 경로 삭제
<a name="delete-gateway-route"></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. 왼쪽 탐색 창에서 **가상 게이트웨이**를 선택합니다.

1. 게이트웨이 경로를 삭제하려는 가상 게이트웨이를 선택합니다.

1. **게이트웨이 경로** 테이블에서 삭제하려는 게이트웨이 경로를 선택하고 **삭제**를 선택합니다. 계정이 **리소스 소유자**로 나열된 경우에만 게이트웨이 경로를 삭제할 수 있습니다.

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

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

**를 사용하여 게이트웨이 경로를 삭제하려면 AWS CLI**

1. 다음 명령을 사용하여 게이트웨이 경로를 삭제합니다(*빨간색* 값을 원하는 값으로 대체).

   ```
   aws appmesh delete-gateway-route \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName \
        --gateway-route-name gatewayRouteName
   ```

1. 출력 예시:

   ```
   {
       "gatewayRoute": {
           "gatewayRouteName": "gatewayRouteName",
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName",
               "createdAt": "2022-04-06T11:05:32.100000-05:00",
               "lastUpdatedAt": "2022-04-07T10:36:33.191000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "httpRoute": {
                   "action": {
                       "target": {
                           "virtualService": {
                               "virtualServiceName": "serviceA.svc.cluster.local"
                           }
                       }
                   },
                   "match": {
                       "prefix": "/"
                   }
               }
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

App Mesh용를 사용하여 게이트웨이 경로를 삭제하는 방법에 AWS CLI 대한 자세한 내용은 AWS CLI 참조의 [delete-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-gateway-route.html) 명령을 참조하세요.

------