- EC2 인스턴스는 VPC 엔드포인트를 통해 AWS 서비스(S3, CodeDeploy, EC2 API 등)에 접근해야 함
- VPC 엔드포인트는 EC2의 요청을 받아서 AWS 서비스로 전달하는 역할을 함
- EC2 보안 그룹이 VPC 엔드포인트의 트래픽을 허용해야 하고, 반대로 엔드포인트 보안 그룹도 EC2의 요청을 허용해야 함
1. 올바른 보안 그룹 설정 방법
(1) VPC 엔드포인트 보안 그룹 설정
- 대상(Destination) → EC2 보안 그룹 지정
- 443 포트(TCP) 허용 (HTTPS 트래픽)
🔹 설정 방법
규칙 유형프로토콜포트 범위소스
HTTPS | TCP | 443 | sg-EC2-SecurityGroup-ID (EC2 보안 그룹 ID) |
✅ 설명:
- VPC 엔드포인트는 EC2 보안 그룹에서 오는 트래픽(HTTPS 443)을 허용하도록 설정 한다.
(2) EC2 보안 그룹 설정
- 대상(Destination) → VPC 엔드포인트 보안 그룹 지정
- 443 포트(TCP) 허용 (HTTPS 트래픽)
🔹 설정 방법
규칙 유형프로토콜포트 범위대상
HTTPS | TCP | 443 | sg-VPC-Endpoint-SecurityGroup-ID (VPC 엔드포인트 보안 그룹 ID) |
✅ 설명:
- EC2 인스턴스는 VPC 엔드포인트 보안 그룹으로 보내는 트래픽(HTTP 443)을 허용하도록 설정 한다.
2. 잘못된 설정 예시
보안 그룹인바운드 규칙아웃바운드 규칙문제점
EC2 보안 그룹 | 443 포트, 소스: 자기 자신(sg-xxxxx) | 443 포트, 대상: 자기 자신(sg-xxxxx) | EC2 인스턴스가 엔드포인트와 통신할 수 없음 |
VPC 엔드포인트 보안 그룹 | 443 포트, 소스: 자기 자신(sg-yyyyy) | 443 포트, 대상: 자기 자신(sg-yyyyy) | EC2가 요청을 보내도 엔드포인트가 응답을 처리할 수 없음 |
🚨 보안 그룹을 동일하게 설정하면 트래픽이 차단될 가능성이 큼.
💡 따라서 EC2 보안 그룹과 VPC 엔드포인트 보안 그룹을 별도로 설정하고, 서로를 허용하는 방향으로 설정해야 함.
3. 최종 설정 정리
✅ EC2 보안 그룹
- 아웃바운드 규칙: VPC 엔드포인트 보안 그룹으로 HTTPS 443 허용
✅ VPC 엔드포인트 보안 그룹
- 인바운드 규칙: EC2 보안 그룹으로부터 오는 HTTPS 443 허용
이렇게 설정하면 프라이빗 서브넷에 있는 EC2가 VPC 엔드포인트를 통해 AWS CodeDeploy, S3, EC2 API 등의 AWS 서비스와 안전하게 통신할 수 있습니다.