게이트웨이 및 인터페이스 VPC 엔드포인트에서 연결 문제를 해결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 4월 5일

게이트웨이 및 인터페이스 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트에서 연결 문제를 해결하려면 어떻게 해야 하나요?

해결 방법

다음 해결 방법에서는 VPC 엔드포인트에서 엔드 투 엔드 연결을 설정하는 데 중요한 다양한 파라미터를 다룹니다. 연결 문제 해결 단계도 포함되어 있습니다.

게이트웨이 VPC 엔드포인트

게이트웨이 VPC 엔드포인트를 사용하면 VPC에서 Amazon Simple Storage Service(Amazon S3) 및 Amazon DynamoDB에 비공개로 연결할 수 있습니다.

게이트웨이 엔드포인트를 사용할 때 각 서비스에 대한 연결에 영향을 주는 네 가지 요소가 있습니다.

  • 엔드포인트 정책,
  • VPC 서브넷 네트워크 액세스 제어 목록(ACL),
  • 소스 서브넷 라우팅 테이블,
  • 소스 Amazon Elastic Compute Cloud(Amazon EC2) 또는 AWS Lambda 보안 그룹,

엔드포인트 정책

사용자 지정 엔드포인트 정책을 사용하는 경우 엔드포인트와 연관된 정책이 서비스에 대한 작업을 수행하는 데 필요한 액세스를 허용하는지 확인합니다. 기본 엔드포인트 정책은 서비스에 대한 전체 액세스를 허용합니다.

자세한 내용은 게이트웨이 엔드포인트에 대한 엔드포인트 정책을 참조하세요.

VPC 서브넷 네트워크 액세스 제어 목록

서브넷 네트워크 ACL은 AWS 리전 내에서 S3 및 DynamoDB CIDR에 대한 인바운드 및 아웃바운드 TCP 연결을 모두 허용해야 합니다. AWS Command Line Interface(AWS CLI)에서 다음 명령을 실행하여 지정된 AWS 리전의 S3 및 DynamoDB에 대한 IP CIDR을 볼 수 있습니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

aws ec2 describe-prefix-lists --region <AWS Region>

참고: AWS 서비스에 대한 퍼블릭 IP 주소 CIDR은 변경될 수 있습니다. 모든 CIDR이 네트워크 액세스 제어 목록 규칙에서 허용되는지 확인하려면 이전 명령을 간헐적으로 다시 실행하여 새 CIDR 범위를 확인합니다.

소스 EC2 또는 Lambda 보안 그룹

S3 및 DynamoDB 엔드포인트에 대한 연결을 시작하는 소스와 연결된 보안 그룹은 다음을 허용해야 합니다.

  • 공용 IP CIDR에 대한 송신(아웃바운드) 연결.
    -또는-
  • 관련 AWS 리전의 S3 및 DynamoDB 각각에 대한 접두사 목록 ID.

참고: 보안 그룹 및 네트워크 ACL 규칙을 구성할 때는 Amazon S3 엔드포인트DynamoDB 엔드포인트 문서를 참조하여 지원되는 프로토콜이 있는지 확인합니다. 이 정보를 사용하여 트래픽 제한의 기준으로 삼습니다.

서브넷 라우팅 테이블

게이트웨이 엔드포인트를 생성할 때 서비스에 대한 경로가 설치될 라우팅 테이블을 선택합니다. 소스 라우팅 테이블에 원하는 서비스의 접두사 목록 ID가 게이트웨이 VPC 엔드포인트를 가리키는 경로가 있는지 확인합니다.

게이트웨이 엔드포인트를 통한 트래픽 흐름 확인

게이트웨이 VPC 엔드포인트를 사용하는 경우 포트 80 또는 443으로 tcptrace-route를 실행하여 트래픽이 엔드포인트를 통해 흐르고 있는지 확인할 수 있습니다.

sudo tcptraceroute s3.us-east-1.amazonaws.com 80

traceroute to s3.us-east-1.amazonaws.com (52.217.85.238), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  s3-1.amazonaws.com (52.217.85.238) <syn,ack>  0.797 ms  1.298 ms  0.821 ms

이전 출력에는 S3 엔드포인트 대상을 제외하고 홉이 표시되지 않습니다. 이는 트래픽이 VPC 게이트웨이 엔드포인트로 이동한다는 것을 보여줍니다. TCP 추적 경로에 공용 홉이 여러 개 표시되면 트래픽이 인터넷을 통해 이동 중인 것입니다.

자세한 내용은 게이트웨이 VPC 엔드포인트를 사용하여 S3 버킷에 연결할 수 없는 이유는 무엇인가요?를 참조하세요.

인터페이스 VPC 엔드포인트(AWS PrivateLink)

인터페이스 VPC 엔드포인트로 작업할 때는 다음을 확인합니다.

DNS 이름 해결 방법

AWS 서비스의 경우

프라이빗 DNS 이름이 켜져 있으면 서비스 엔드포인트에 대해 AWS API 호출을 실행할 수 있습니다(예: ec2.us-east-1.amazonaws.com). 이는 엔드포인트 인터페이스의 프라이빗 IP로 확인됩니다.

프라이빗 DNS 이름이 켜져 있지 않은 경우 리전 또는 영역 VPC 엔드포인트 DNS 이름을 명시적으로 지정하여 API 호출을 실행할 수 있습니다.

자세한 내용은 인터페이스 VPC 엔드포인트에 대한 서비스 도메인 이름을 확인할 수 없는 이유는 무엇인가요?를 참조하세요.

dig 또는 nslookup 명령을 사용하여 연결하려는 인터페이스 VPC 엔드포인트 이름에 대한 DNS 해결 방법을 확인합니다.

엔드포인트 서비스(파트너 또는 고객 관리 서비스)

공급자 측의 Network Load Balancer에 대해 활성화된 모든 가용 영역의 백엔드에 대상이 있는지 확인합니다. 자세한 내용은 Amazon VPC의 인터페이스 엔드포인트에서 엔드포인트 서비스에 연결할 수 없는 이유는 무엇인가요?를 참조하세요.

예를 들어, Network Load Balancer가 us-east-1a 및 us-east-1b의 두 가용 영역에서 서비스를 제공하도록 프로비저닝되었다고 가정합니다. 두 가용 영역 모두에서 대상을 프로비저닝합니다. 가용 영역에 대상이 없는 경우 교차 영역 로드 밸런싱을 설정하여 모든 요청을 처리합니다.

엔드포인트 정책

기본 정책은 서비스에 대한 전체 액세스를 허용합니다. 사용자 지정 정책을 사용하는 경우 정책이 서비스에 대해 필요한 작업을 수행할 수 있도록 액세스를 허용해야 합니다.

VPC 엔드포인트 보안 그룹

인터페이스 VPC 엔드포인트를 사용하면 보안 그룹을 연결하여 액세스를 제어할 수 있습니다. 보안 그룹에 대한 인바운드 규칙이 엔드포인트 네트워크 인터페이스와 서비스에 액세스하는 리소스(VPC 또는 온프레미스) 간의 통신을 허용하는지 확인합니다.

서비스가 연결을 수락하는 포트에 따라 해당 포트 및 프로토콜에 대한 연결을 허용합니다.

예:

엔드포인트 서비스 Network Load Balancer는 TCP 포트 6169 및 8443에서 수신 대기 중입니다. 이 경우 VPC 엔드포인트 보안 그룹 인바운드 규칙의 적절한 소스 주소에서 포트 6169 및 8443으로의 TCP 트래픽을 허용합니다.

보안 그룹의 아웃바운드 규칙은 인터페이스 엔드포인트에 대해 평가되지 않습니다. 따라서 비워 두거나 제한적으로 둘 수 있습니다.

서브넷 네트워크 ACL

서브넷 네트워크 ACL은 VPC 외부에서 연결할 때 소스 네트워크에서 인터페이스 엔드포인트 탄력적 네트워크 인터페이스로의 인바운드 및 아웃바운드 연결을 모두 허용해야 합니다.

자세한 내용은 엔드포인트 서비스용 VPC 인터페이스 엔드포인트를 생성할 때 보안 그룹 및 네트워크 ACL을 구성하는 방법은 무엇인가요?를 참조하세요.

라우팅

인터페이스 VPC 엔드포인트는 AWS 내에서 또는 온프레미스 네트워크에서 비공개로 서비스에 액세스하는 데 사용할 수 있습니다.

인터페이스 엔드포인트와 동일한 VPC 내에서 연결하는 경우 라우팅은 서브넷 라우팅 테이블의 로컬 라우팅에 의해 처리됩니다. 따라서 추가 라우팅 구성이 필요하지 않습니다.

VPC 외부에서 엔드포인트에 연결하는 경우 (교차 리전 VPC 또는 온프레미스 네트워크), 하나 이상의 소스 네트워크에서 인터페이스 VPC 엔드포인트 탄력적 네트워크 인터페이스 서브넷으로 연결을 설정할 수 있는지 확인합니다.

인터페이스 VPC 엔드포인트에 대한 연결 테스트

인터페이스 엔드포인트를 사용하여 서비스에 연결할 수 있는지 테스트하기 위해 적절한 포트에 대해 네트워크 연결 도구를 사용할 수 있습니다.

다음은 AWS 서비스의 인터페이스 엔드포인트에 대한 연결을 테스트하는 예시입니다.

telnet ec2.us-east-1.amazonaws.com 443
telnet PrivateIPofInterfaceEndpointENI 443

다음은 연결하려는 공급자가 포트 6169에서 수신 대기 중이라 가정하고 인터페이스 엔드포인트에 대한 연결을 테스트하는 예시입니다.

telnet vpce-aaaabbbbcccc-dddd.vpce-svc-12345678.us-east-1.vpce.amazonaws.com 6169
telnet PrivateIPofInterfaceEndpointENI 6169

도메인 이름을 사용하는 경우 올바른 IP에 연결되어 있는지, 그리고 성공적으로 연결되었는지 확인합니다. SSL 확인을 위해 curl 또는 OpenSSL 도구를 사용하여 테스트할 수 있습니다.

엔드포인트 서비스의 경우 공급자에게 문의하여 Network Load Balancer 문제를 해결할 수 있습니다.


이 문서가 도움이 되었나요?


Besoin d'aide pour une question technique ou de facturation ?