1. VPC Endpoints란 무엇인가요?
- VPC Endpoints는 AWS 서비스를 프라이빗하게 사용할 수 있게 해주는 서비스입니다.
- 쉽게 설명하면, AWS 서비스로 가는 전용 통로를 만드는 것입니다.
1.1 VPC Endpoints가 필요한 이유
- 일반적으로 AWS 서비스(예: S3, DynamoDB)를 사용하려면 인터 넷을 통해 접근해야 합니다. 이는 다음과 같은 문제가 있습니다:
- 보안 위험: 인터넷을 통해 데이터가 이동하므로 보안 위험이 있습니다
- 추가 비용: NAT Gateway 등 인터넷 접근을 위한 추가 인프라가 필요합니다
- 성능 저하: 인터넷을 거치면서 지연이 발생할 수 있습니다
- VPC Endpoints를 사용하면 이러한 문제를 모두 해결할 수 있습니다.
2. VPC Endpoints의 두 가지 유형
2.1 Gateway Endpoint
특징:
- S3와 DynamoDB에만 사용 가능
- 완전 무료
- 설정이 간단함
- 라우팅 테이블에서 설정
사용 시나리오:
- EC2에서 S3 버킷에 접근할 때
- Lambda에서 DynamoDB 테이블을 읽을 때
- 비용 절감이 중요한 경우
2.2 Interface Endpoint (PrivateLink)
특징:
- 대부분의 AWS 서비스에서 사용 가능
- 시간당 요금과 데이터 전송 요금 발생
- Elastic Network Interface(ENI) 사용
- 보안 그룹으로 접근 제어
사용 시나리오:
- 온프레미스에서 AWS 서비스 접근 시
- 다른 VPC나 리전의 서비스 접근 시
- 더 세밀한 접근 제어가 필요한 경우
3. 실제 구현 예시: Lambda와 DynamoDB 연동
Lambda 함수가 DynamoDB에 접근하는 두 가지 방법을 비교해보겠습니다:
3.1 기존 방식 (인터넷 통한 접근)
- Lambda → NAT Gateway → Internet Gateway → DynamoDB
- 단점:
- NAT Gateway 비용 발생
- 보안 위험 존재
- 설정이 복잡함
3.2 VPC Endpoint 사용
- Lambda → Gateway Endpoint → DynamoDB
- 장점:
- 무료
- 더 안전함
- 설정이 간단함
- 성능이 더 좋음