Amazon Virtual Private Cloud
사용 설명서

게이트웨이 VPC 엔드포인트

게이트웨이 엔드포인트를 생성 및 설정하려면 다음의 일반 단계를 따릅니다.

  1. 엔드포인트를 만들 VPC와 여기에 연결하려는 서비스를 지정합니다. 서비스는 접두사 목록—즉 리전의 서비스 이름 및 ID로 식별됩니다. 접두사 목록 ID는 pl-xxxxxxx 형식을 사용하고, 접두사 목록 이름은 com.amazonaws.<region>.<service> 형식을 사용합니다. 접두사 목록 이름(서비스 이름)을 사용하여 엔드포인트를 만듭니다.

  2. 연결하려는 모든 서비스 또는 일부 서비스에 액세스를 허용하는 엔드포인트 정책을 엔드포인트에 추가합니다. 자세한 내용은 VPC 엔드포인트 정책 사용 섹션을 참조하십시오.

  3. VPC와 다른 서비스 간의 트래픽 라우팅을 제어하려면 하나 이상의 라우팅 테이블을 지정합니다. 이러한 라우팅 테이블을 사용하는 서브넷은 엔드포인트에 액세스할 수 있으며, 해당 서브넷의 인스턴스에서 서비스로 전송되는 트래픽은 엔드포인트를 통해 라우팅됩니다.

다음 다이어그램에서 서브넷 2의 인스턴스는 게이트웨이 엔드포인트를 통해 Amazon S3에 액세스할 수 있습니다.

 게이트웨이 엔드포인트를 사용하여 Amazon S3에 액세스

하나의 VPC에 여러 엔드포인트를 만들 수 있습니다. 예를 들어 여러 서비스에 대한 엔드포인트를 만들 수 있습니다. 또한 하나의 서비스에 대해 여러 엔드포인트를 만들 수 있고, 서로 다른 라우팅 테이블을 사용하여 동일한 서비스에 대해 서브넷별로 서로 다른 정책을 적용할 수 있습니다.

엔드포인트를 만든 후 엔드포인트에 추가한 엔드포인트 정책을 수정할 수 있고, 엔드포인트에서 사용하는 라우팅 테이블을 추가하거나 제거할 수 있습니다.

게이트웨이 엔드포인트 사용에 따르는 추가 요금은 없습니다. 데이터 전송 및 리소스 사용량에 대한 표준 요금이 그대로 적용됩니다. 요금에 대한 자세한 내용은 Amazon EC2 Pricing을 참조하십시오.

게이트웨이 엔드포인트의 라우팅

엔드포인트를 만들거나 수정할 경우 엔드포인트를 통해 서비스에 액세스할 때 사용되는 VPC 라우팅 테이블을 지정합니다. 경로는 각각의 라우팅 테이블에 자동으로 추가되며 이때 서비스의 접두사 목록 ID(pl-xxxxxxxx)를 지정하는 목적지 및 엔드포인트 ID(vpce-xxxxxxxx)를 포함한 대상도 함께 추가됩니다. 예를 들면 다음과 같습니다.

목적지 Target
10.0.0.0/16 로컬
pl-1a2b3c4d vpce-11bb22cc

접두사 목록 ID는 논리적으로 서비스가 사용하는 퍼블릭 IP 주소의 범위를 나타냅니다. 지정된 라우팅 테이블과 연결된 서브넷의 모든 인스턴스는 자동으로 해당 엔드포인트를 사용하여 서비스에 액세스합니다. 지정된 라우팅 테이블과 연결되지 않은 서브넷은 해당 엔드포인트를 사용하지 않습니다. 따라서 다른 서브넷의 리소스를 엔드포인트와 분리할 수 있습니다.

서비스의 현재 퍼블릭 IP 주소 범위를 보려면 describe-prefix-lists 명령의 AWS IP 주소 범위를 참조하십시오.

참고

서비스의 퍼블릭 IP 주소의 범위는 때때로 변경될 수 있습니다. 서비스의 현재 IP 주소 범위를 기반으로 라우팅을 작성하거나 기타 결정을 내리기 전에 먼저 그 영향을 고려하십시오.

다음 규칙이 적용됩니다.

  • 하나의 라우팅 테이블에 서로 다른 서비스에 대한 여러 엔드포인트 라우팅을 작성할 수 있으며, 동일한 서비스에 대한 여러 엔드포인트 라우팅을 서로 다른 라우팅 테이블에 작성할 수 있습니다. 하지만 하나의 라우팅 테이블에 동일한 서비스에 대해 여러 엔드포인트를 작성할 수는 없습니다. 예를 들어 VPC에 Amazon S3에 대한 두 개의 엔드포인트가 있을 경우 두 엔드포인트에 같은 라우팅 테이블을 사용할 수 없습니다.

  • 라우팅 테이블 API 또는 Amazon VPC 콘솔의 라우팅 테이블 페이지를 사용하여 라우팅 테이블에서 엔드포인트 라우팅을 명시적으로 추가, 수정 또는 삭제할 수 없습니다. 라우팅 테이블을 엔드포인트와 연결하는 방법으로만 엔드포인트 라우팅을 추가할 수 있습니다. 엔드포인트와 연결된 라우팅 테이블을 변경하려면 엔드포인트를 수정하면 됩니다.

  • 엔드포인트를 수정하여 엔드포인트에서 라우팅 테이블 연결을 제거하거나 엔드포인트를 삭제할 경우 엔드포인트 라우팅이 자동으로 삭제됩니다.

Amazon은 LPM(Longest Prefix Match)을 통해 트래픽과 일치하는 고도로 구체적인 라우팅을 사용하여 트래픽의 라우팅 방법을 결정합니다. 인터넷 게이트웨이를 가리키는 모든 인터넷 트래픽(0.0.0.0/0)에 대해 라우팅 테이블에 기존 라우팅이 있을 경우, 해당 서비스로 향하는 모든 트래픽에 대해 엔드포인트 라우팅이 우선합니다. 이는 서비스의 IP 주소 범위가 0.0.0.0/0보다 구체적이기 때문입니다. 다른 리전에 있는 서비스로 향하는 트래픽을 비롯하여 다른 모든 인터넷 트래픽은 인터넷 게이트웨이로 전송됩니다.

하지만 인터넷 게이트웨이 또는 NAT 디바이스를 가리키는 구체적인 IP 주소 범위로의 라우팅이 있을 경우 그러한 라우팅이 우선합니다. 서비스가 사용하는 IP 주소와 동일한 IP 주소 범위를 향하는 기존 라우팅이 있을 경우에는 이 라우팅이 우선합니다.

예: 라우팅 테이블의 엔드포인트 라우팅

이 시나리오에서는 라우팅 테이블에 모든 인터넷 트래픽(0.0.0.0/0)에 대해 인터넷 게이트웨이를 가리키는 기존의 라우팅이 있습니다. 서브넷에서 또 다른 AWS 서비스를 향하는 모든 트래픽은 인터넷 게이트웨이를 사용합니다.

목적지 Target
10.0.0.0/16 로컬
0.0.0.0/0 igw-1a2b3c4d

지원되는 AWS에 대한 엔드포인트를 만든 후 라우팅 테이블을 엔드포인트와 연결할 수 있습니다. 엔드포인트 라우팅은 목적지 pl-1a2b3c4d(엔드포인트를 만든 서비스를 나타내는 것으로 가정)와 함께 라우팅 테이블에 자동으로 추가됩니다. 이제 같은 리전에서 해당 AWS 서비스를 향하는 서브넷의 모든 트래픽은 인터넷 게이트웨이가 아닌 엔드포인트로 전송됩니다. 다른 서비스로 향하는 트래픽 및 다른 리전에서 AWS 서비스로 향하는 트래픽을 포함하여 다른 모든 인터넷 트래픽은 인터넷 게이트웨이로 전송됩니다.

목적지 Target
10.0.0.0/16 로컬
0.0.0.0/0 igw-1a2b3c4d
pl-1a2b3c4d vpce-11bb22cc

예: 엔드포인트에 대한 라우팅 테이블 조정

이 시나리오에서는 라우팅 테이블을 구성하여 인터넷 게이트웨이를 통해 서브넷의 인스턴스가 Amazon S3 버킷과 통신할 수 있게 했습니다. 목적지가 54.123.165.0/24이고(현재 Amazon S3 내의 IP 주소 범위로 가정) 대상이 인터넷 게이트웨이인 라우팅을 추가했습니다. 이제 엔드포인트를 만든 후 이 라우팅 테이블을 엔드포인트와 연결합니다. 엔드포인트 라우팅은 자동으로 라우팅 테이블에 추가됩니다. 그런 다음 describe-prefix-lists 명령을 사용하여 Amazon S3의 IP 주소 범위를 확인합니다. 범위는 54.123.160.0/19이며, 이는 인터넷 게이트웨이를 가리키는 범위보다 구체적이지 않습니다. 따라서 IP 주소 범위 54.123.165.0/24를 향하는 모든 트래픽은 Amazon S3의 퍼블릭 IP 주소 범위를 유지하는 동안은 인터넷 게이트웨이를 계속 사용하고 엔드포인트를 사용하지 않습니다.

목적지 Target
10.0.0.0/16 로컬
54.123.165.0/24 igw-1a2b3c4d
pl-1a2b3c4d vpce-11bb22cc

같은 리전에서 Amazon S3를 향하는 모든 트래픽이 엔드포인트를 통해 라우팅되게 하려면 라우팅 테이블의 라우팅을 조정해야 합니다. 이렇게 하려면 인터넷 게이트웨이에 대한 라우팅을 삭제하면 됩니다. 그러면 같은 리전에서 Amazon S3를 향하는 모든 트래픽은 엔드포인트를 사용하고, 라우팅 테이블과 연결된 서브넷은 프라이빗 서브넷이 됩니다.

목적지 Target
10.0.0.0/16 로컬
pl-1a2b3c4d vpce-11bb22cc

게이트웨이 엔드포인트 제한

게이트웨이 엔드포인트를 사용하려면 현재 제한 사항을 알고 있어야 합니다.

  • 엔드포인트에 지정된 서비스에 대한 아웃바운드 트래픽을 허용하거나 거부하기 위해 네트워크 ACL의 아웃바운드 규칙에 접두사 목록 ID를 사용할 수 없습니다. 네트워크 ACL 규칙이 트래픽을 제한하는 경우 서비스에 대한 CIDR 블록(IP 주소 범위)을 대신 지정해야 합니다. 하지만 아웃바운드 보안 그룹 규칙에는 접두사 목록 ID를 사용할 수 있습니다. 자세한 내용은 보안 그룹 단원을 참조하십시오.

  • 엔드포인트는 동일 리전에서만 지원됩니다. VPC와 다른 리전의 서비스 간에 엔드포인트를 만들 수 없습니다.

  • 엔드포인트에 태그를 지정할 수 없습니다.

  • 엔드포인트는 IPv4 트래픽만 지원합니다.

  • VPC 간에 또는 서비스 간에 엔드포인트를 전송할 수 없습니다.

  • VPC당 만들 수 있는 엔드포인트 수는 제한이 있습니다. 자세한 내용은 VPC 엔드포인트 단원을 참조하십시오.

  • 엔드포인트 연결은 VPC 외부로 확장할 수 없습니다. VPN 연결, VPC 피어링 연결, AWS Direct Connect 연결 또는 VPC의 ClassicLink 연결의 반대쪽에 있는 리소스는 엔드포인트를 사용하여 엔드포인트 서비스의 리소스와 통신할 수 없습니다.

  • VPC에서 DNS 확인을 활성화해야 합니다. 또는 자체 DNS 서버를 사용 중인 경우, 필요한 서비스(예: Amazon S3)에 대한 DNS 요청이 AWS에서 유지 관리하는 IP 주소로 제대로 확인되어야 합니다. 자세한 내용은 VPC와 함께 DNS 사용 단원 및 Amazon Web Services 일반 참조AWS IP 주소 범위를 참조하십시오.

Amazon S3와 관련된 규칙 및 제한에 대한 자세한 내용은 Amazon S3에 대한 엔드포인트 단원을 참조하십시오.

DynamoDB와 관련된 규칙 및 제한에 대한 자세한 내용은 Amazon DynamoDB에 대한 엔드포인트 단원을 참조하십시오.

게이트웨이 엔드포인트 생성

엔드포인트를 만들려면 엔드포인트를 만들려는 VPC 및 연결을 설정할 서비스를 지정해야 합니다.

콘솔을 사용하여 게이트웨이 엔드포인트를 생성하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Endpoints]와 [Create Endpoint]를 선택합니다.

  3. [Service Name]에서 연결할 서비스를 선택합니다. DynamoDB 또는 Amazon S3에 대한 게이트웨이 엔드포인트를 생성하려면 [Type] 열이 [Gateway]를 나타내야 합니다.

  4. 다음 정보를 입력한 다음 [Create endpoint]를 선택합니다.

    • [VPC]에서 엔드포인트를 생성할 VPC를 선택합니다.

    • [Configure route tables]에서 엔드포인트에서 사용할 라우팅 테이블을 선택합니다. 엔드포인트, 선택한 라우팅 테이블에 대한 서비스를 향하는 트래픽을 가리키는 경로가 자동으로 추가됩니다.

    • [Policy]에서 정책의 유형을 선택합니다. 기본 옵션인 [Full Access]를 그대로 사용하여 서비스에 대한 모든 액세스를 허용합니다. 또는 [Custom]을 선택한 후 AWS 정책 생성기를 사용하여 사용자 지정 정책을 만들거나, 정책 창에서 직접 정책을 입력할 수도 있습니다.

엔드포인트를 생성한 후 그에 관한 정보를 볼 수 있습니다.

콘솔을 사용하여 게이트웨이 엔드포인트에 대한 정보를 확인하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Endpoints]를 선택한 후 엔드포인트를 선택합니다.

  3. 엔드포인트에 대한 정보를 보려면 [Summary]를 선택합니다. [Service] 상자에서 서비스에 대한 접두사 목록 이름을 가져올 수 있습니다.

  4. 엔드포인트가 사용하는 라우팅 테이블에 대한 정보를 보려면 [Route Tables]를 선택합니다.

  5. 엔드포인트에 연결된 IAM 정책을 보려면 [Policy]를 선택합니다.

    참고

    [Policy] 탭에는 엔드포인트 정책만 표시됩니다. 엔드포인트 작업 권한이 있는 IAM 사용자를 위한 IAM 정책 관련 정보는 표시되지 않습니다. 또한 S3 버킷 정책과 같은 서비스별 정책도 표시되지 않습니다.

AWS CLI를 사용하여 엔드포인트를 생성하고 보려면

  1. describe-vpc-endpoint-services 명령을 사용하여 사용 가능한 목록을 가져옵니다. 반환된 출력에 표시된 연결하고자 하는 서비스의 이름을 메모해 둡니다. serviceType 필드는 인터페이스 엔드포인트 또는 게이트웨이 엔드포인트를 통해 서비스에 연결할지 여부를 나타냅니다.

    aws ec2 describe-vpc-endpoint-services
    { "serviceDetailSet": [ { "serviceType": [ { "serviceType": "Gateway" } ...
  2. 게이트웨이 엔드포인트(예: Amazon S3에 대한 엔드포인트)를 생성하려면 create-vpc-endpoint 명령을 사용하고 VPC ID, 서비스 이름, 엔드포인트를 사용할 라우팅 테이블을 지정합니다. 선택적으로 --policy-document 파라미터를 사용하여 서비스 액세스를 제어할 사용자 지정 정책을 지정할 수 있습니다. 파라미터를 사용하지 않는 경우 서비스에 대한 전체 액세스를 허용하는 기본 정책이 연결됩니다.

    aws ec2 create-vpc-endpoint --vpc-id vpc-1a2b3c4d --service-name com.amazonaws.us-east-1.s3 --route-table-ids rtb-11aa22bb
  3. describe-vpc-endpoints 명령을 사용하여 엔드포인트를 설명합니다.

    aws ec2 describe-vpc-endpoints

Windows PowerShell용 AWS 도구 또는 API를 사용하여 사용 가능한 서비스를 설명하려면

Windows PowerShell용 AWS 도구 또는 API를 사용하여 VPC 엔드포인트를 생성하려면

Windows PowerShell용 AWS 도구 또는 API를 사용하여 VPC 엔드포인트을 설명하려면

보안 그룹 수정

인스턴스에 연결된 VPC 보안 그룹이 아웃바운드 트래픽을 제한할 경우, AWS 서비스를 향하는 트래픽을 허용하는 규칙을 추가하여 인스턴스를 유지해야 합니다.

게이트웨이 엔드포인트에 대한 아웃바운드 규칙을 추가하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Security Groups]를 선택합니다.

  3. VPC 보안 그룹을 선택하고 [Outbound Rules] 탭을 선택한 후 [Edit]를 선택합니다.

  4. [Type] 목록에서 트래픽 유형을 선택한 후 필요한 경우, 포트 범위를 입력합니다. 예를 들어 인스턴스를 사용하여 Amazon S3에서 객체를 검색할 경우 [Type] 목록에서 [HTTPS]를 선택합니다.

  5. [Destination] 목록에는 사용 가능한 AWS 서비스의 접두사 목록 ID와 이름이 표시됩니다. AWS 서비스의 접두사 목록 ID를 선택하거나 입력합니다.

  6. [Save]를 선택합니다.

보안 그룹에 대한 자세한 내용은 VPC의 보안 그룹 단원을 참조하십시오.

명령줄 또는 API를 사용하여 접두사 목록 이름, ID 및 AWS 서비스에 대한 IP 주소 범위를 가져오려면

게이트웨이 엔드포인트 수정

정책을 변경하거나 삭제하고, 엔드포인트에서 사용하는 라우팅 테이블을 추가하거나 삭제하여 게이트웨이 엔드포인트를 수정할 수 있습니다.

게이트웨이 엔드포인트와 연결된 정책을 변경하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Endpoints]를 선택한 후 엔드포인트를 선택합니다.

  3. [Actions], [Edit policy]를 선택합니다.

  4. [Full Access]를 선택하여 모든 액세스를 허용할 수 있습니다. 또는 [Custom]을 선택한 후 AWS 정책 생성기를 사용하여 사용자 지정 정책을 만들거나, 정책 창에서 직접 정책을 입력할 수도 있습니다. 완료되면 [Save]를 선택합니다.

    참고

    정책 변경 사항이 적용되려면 몇 분 정도 걸릴 수 있습니다.

게이트웨이 엔드포인트가 사용하는 라우팅 테이블을 추가 또는 제거하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Endpoints]를 선택한 후 엔드포인트를 선택합니다.

  3. [Actions], [Manage route tables]를 선택합니다.

  4. 필요한 라우팅 테이블을 선택하거나 선택 취소한 후 라우팅 테이블 수정을 선택합니다.

AWS CLI를 사용하여 게이트웨이 엔드포인트를 생성하려면

  1. describe-vpc-endpoints 명령을 사용하여 게이트웨이 엔드포인트의 ID를 가져옵니다.

    aws ec2 describe-vpc-endpoints
  2. 다음 예제는 modify-vpc-endpoint 명령을 사용하여 라우팅 테이블 rtb-aaa222bb를 게이트웨이 엔드포인트에 연결하고 정책 문서를 재설정합니다.

    aws ec2 modify-vpc-endpoint --vpc-endpoint-id vpce-1a2b3c4d --add-route-table-ids rtb-aaa222bb --reset-policy

Windows PowerShell용 AWS 도구 또는 API를 사용하여 VPC 엔드포인트를 수정하려면