본문으로 건너뛰기

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 테이블을 읽을 때
  • 비용 절감이 중요한 경우

특징:

  • 대부분의 AWS 서비스에서 사용 가능
  • 시간당 요금과 데이터 전송 요금 발생
  • Elastic Network Interface(ENI) 사용
  • 보안 그룹으로 접근 제어

사용 시나리오:

  • 온프레미스에서 AWS 서비스 접근 시
  • 다른 VPC나 리전의 서비스 접근 시
  • 더 세밀한 접근 제어가 필요한 경우

3. 실제 구현 예시: Lambda와 DynamoDB 연동

Lambda 함수가 DynamoDB에 접근하는 두 가지 방법을 비교해보겠습니다:

3.1 기존 방식 (인터넷 통한 접근)

  1. Lambda → NAT Gateway → Internet Gateway → DynamoDB
  2. 단점:
    • NAT Gateway 비용 발생
    • 보안 위험 존재
    • 설정이 복잡함

3.2 VPC Endpoint 사용

  1. Lambda → Gateway Endpoint → DynamoDB
  2. 장점:
    • 무료
    • 더 안전함
    • 설정이 간단함
    • 성능이 더 좋음

4. S3 버킷 접근 제어하기

VPC Endpoint를 통해서만 S3 버킷에 접근하도록 설정하는 방법을 알아보겠습니다.

4.1 S3 버킷 정책 예시

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessViaEndpointOnly",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-secure-bucket",
"arn:aws:s3:::my-secure-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": ["vpce-11111111"]
}
}
}
]
}

이 정책은 지정된 VPC Endpoint를 통한 접근만 허용합니다.

5. 모범 사례와 주의사항

5.1 Gateway Endpoint 사용 시

  • S3, DynamoDB 접근은 항상 Gateway Endpoint를 먼저 고려하세요
  • 라우팅 테이블 설정을 꼭 확인하세요
  • 여러 AZ에 걸쳐 설정하여 고가용성을 확보하세요

5.2 Interface Endpoint 사용 시

  • 보안 그룹 설정을 꼼꼼히 확인하세요
  • DNS 설정이 올바른지 확인하세요
  • 비용을 고려하여 필요한 서비스만 연결하세요

6. 문제 해결 가이드

자주 발생하는 문제와 해결 방법입니다:

  1. 연결 실패
    • DNS 설정 확인
    • 라우팅 테이블 설정 확인
    • 보안 그룹 규칙 검토
  2. 성능 저하
    • 여러 AZ에 엔드포인트 설정
    • 충분한 용량 할당
    • 네트워크 경로 최적화

7. 결론

  • VPC Endpoints는 AWS 서비스를 더 안전하고 효율적으로 사용할 수 있게 해주는 중요한 기능입니다.
  • Gateway Endpoint는 무료로 제공되는 만큼 S3와 DynamoDB 사용 시 적극 활용하면 좋습니다.
  • 다른 AWS 서비스의 경우 Interface Endpoint를 통해 보안을 강화하면서도 성능을 개선할 수 있습니다.