Amazon Virtual Private Cloud(VPC)를 사용하여 인터페이스 VPC 엔드포인트를 생성했습니다. 하지만 가용 영역에 사용할 기본 서브넷을 선택할 수 없습니다.
간략한 설명
인터페이스 VPC 엔드포인트를 생성하여 AWS PrivateLink 서비스에 연결할 때 다음 오류가 발생할 수 있습니다.
"Error: The VPC endpoint service com.amazonaws.vpce.us-east-1.vpce-svc-xxxx does not support the Availability Zone of the subnet: subnet-xxxx."
이 오류는 서비스 제공업체 VPC의 Network Load Balancer에 대해 가용 영역이 활성화되지 않은 경우에 발생할 수 있습니다.
인터페이스 VPC 엔드포인트를 생성할 때는 다음 모범 사례를 따릅니다.
- 서비스 소비자가 엔드포인트 서비스 정보를 생성하고 검색할 때는 서비스 제공업체와 공통된 가용 영역만 볼 수 있습니다.
- 가용 영역 ID(AZ ID)는 모든 AWS 계정의 가용 영역에 대한 고유하고 일관된 식별자입니다.
- 가용 영역 매핑은 AWS 계정마다 다를 수 있습니다. 예를 들어, 한 계정에서 us-east-1a로 매핑된 서브넷이 다른 계정에서는 us-east-1c로 매핑될 수 있습니다.
- AWS에서는 AZ ID를 사용하여 계정을 기준으로 리소스의 실제 위치를 식별할 수 있습니다.
- 가용 영역은 제공업체 VPC의 Network Load Balancer에 있는 활성 가용 영역에 해당하는 경우에만 선택할 수 있습니다.
- Amazon VPC 콘솔은 가용 영역 매핑을 자동으로 수행합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면, AWS CLI 오류 문제 해결을 참조합니다. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인합니다.
제공업체 VPC의 Network Load Balancer에서 어떤 가용 영역이 활성화되었는지 확인합니다. describe-vpc-endpoint-services AWS CLI 명령을 실행합니다.
$aws ec2 describe-vpc-endpoint-services —service-names com.amazonaws.vpce.us-east-1.vpce-svc-xxxx
참고: service-names는 서비스 이름으로 바꿉니다.
이 예의 출력을 통해, us-east-1b 서브넷을 선택할 수 있음을 알 수 있습니다.
{
"ServiceDetails": [
.............................
"ServiceName": " com.amazonaws.vpce.us-east-1.vpce-svc-xxxxxxxxxx ",
"VpcEndpointPolicySupported": false,
"Owner": "##########",
"AvailabilityZones": [
"us-east-1b"
],
..............................
}
위의 출력은 명령을 실행하는 계정의 값에 매핑됩니다. 따라서 서비스 제공업체 계정과 서비스 소비자 계정이 서로 다른 가용 영역에 있어도 describe-vpc-endpoint-services 명령을 실행할 수 있습니다. 소비자 계정의 경우 해당 계정이 엔드포인트 서비스에서 AWS 보안 주체로 허용되는지 확인합니다.
관련 정보
AWS PrivateLink를 통해 서비스 공유
AWS 리소스의 가용 영역 ID