VPC 엔드포인트 구성 (비공개 AWS 서비스 액세스)은(는) 무엇을 하나요?
AWS PrivateLink를 사용하여 비공개 AWS 서비스 액세스를 위한 VPC 엔드포인트(인터페이스 및 게이트웨이)를 구성합니다. 인터넷 게이트웨이, NAT 디바이스 또는 공용 IP 주소 없이 S3, DynamoDB 및 기타 AWS 서비스에 보안 비공개 연결을 설정할 때 사용하세요. 엔드포인트 생성, 보안 그룹, 라우팅 테이블 및 DNS 구성을 다룹니다.
사전 조건
- 유효한 AWS 계정 및 자격 증명 (액세스 키 ID 및 시크릿 액세스 키)
- AWS CLI 설치 및 구성
- 기존 VPC 및 서브넷
- 서비스에 따라 적절한 IAM 권한 (예:
ec2:CreateVpcEndpoint,ec2:DescribeVpcEndpoints등)
단계별 가이드
1. VPC 엔드포인트 생성
게이트웨이 엔드포인트 (S3, DynamoDB)
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345678 \
--service-name com.amazonaws.us-east-1.s3 \
--route-table-ids rtb-12345678
인터페이스 엔드포인트 (기타 서비스)
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345678 \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.us-east-1.ec2 \
--subnet-ids subnet-12345678 subnet-87654321 \
--security-group-ids sg-12345678
2. 보안 그룹 구성
인터페이스 엔드포인트의 경우 TLS(443) 트래픽을 허용하도록 보안 그룹을 구성합니다.
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 443 \
--cidr 10.0.0.0/16
3. DNS 확인 설정
프라이빗 DNS 이름을 활성화하여 VPC 내에서 서비스를 이름으로 확인할 수 있도록 합니다.
aws ec2 modify-vpc-endpoint \
--vpc-endpoint-id vpce-12345678 \
--private-dns-enabled
4. 라우팅 테이블 업데이트
게이트웨이 엔드포인트는 라우팅 테이블에 경로를 자동으로 추가합니다. 수동 업데이트가 필요한 경우:
aws ec2 create-route \
--route-table-id rtb-12345678 \
--destination-cidr-block 0.0.0.0/0 \
--vpc-endpoint-id vpce-12345678
예제: S3 게이트웨이 엔드포인트 구성
- S3 게이트웨이 엔드포인트 생성:
aws ec2 create-vpc-endpoint --vpc-id vpc-12345678 --service-name com.amazonaws.us-east-1.s3 --route-table-ids rtb-12345678 - S3 버킷 정책을 비공개 엔드포인트로 제한:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::example-bucket/*", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-12345678" } } } ] }
문제 해결
- 엔드포인트 생성 실패: IAM 권한 및 서브넷 CIDR이 겹치지 않는지 확인하세요.
- DNS 확인 오류:
private-dns-enabled가 설정되었는지 확인하세요. - 연결 문제: 보안 그룹이 TLS(443) 트래픽을 허용하는지 확인하세요.
참고
- 게이트웨이 엔드포인트는 무료이며, 인터페이스 엔드포인트는 시간당 요금이 부과됩니다.
- AWS VPC 엔드포인트 문서
- VPC 엔드포인트 요금