[AWS] VPC 엔드포인트를 사용하는 이유
aws 리소스인 s3, codecommit 등은 VPC 밖에 위치해있다.
그래서 public subnet에서는 인터넷 게이트웨이가 연결되어 있어 s3, codecommit 등과 네트워크 통신이 가능하지만 private subnet에서는 인터넷 게이트웨이가 연결되어 있지 않기 때문에 nat-gateway를 설정함으로써 s3, codecommit 등과 통신을 할 수 있다.
그런데 VPC 내에 nat-gateway를 사용하면 'NAT Gateway 시간당 요금'이 부과된다.
그리고 외부로 한 번 나갔다 들어오기 때문에 private subnet에서 '직접' 접근하는 것보다 속도가 느리다. (별 차이는 없겠지만)
그렇다면 private subnet 내에 위치한 EC2들이 nat gateway를 사용하지 않고 s3, codecommit 등의 리소스에 접근할 수는 없을까?
VPC 엔드포인트를 사용하면 된다.
VPC 엔드포인트는 private subnet 라우팅 테이블에
CodeCommit VPC 엔드포인트를 생성해보자.
1. AWS VPC 메뉴에서 '엔트포인트'로 접속한다.
2. 엔드포인트 생성을 클릭 시 아래와 같은 화면이 나오는데 CodeCommit VPC 엔드포인트를 생성할 것이므로 codecommit을 검색해본다.
그럼 아래와 같이 codecommit과 git-codecommit이 나오는데 git-codecommit을 주로 사용하므로 git-codecommit을 선택한다.
3. VPC에서 적용하고자 하는 VPC를 선택한다.
4. 선택한 VPC 내 적용하고자 하는 서브넷들을 선택한다.
여러 개의 가용영역이 있으면 각각 하나씩 선택할 수 있다. 물론 필요없는 가용영역은 체크를 해제해도 된다.
지금 하고자 하는 것이 private subnet에서 직접 codecommit에 접근하는 것이므로 서브넷은 private subnet을 선택해야 한다.
5. 프라이빗 DNS 이름 활성화를 체크한다.
6. Codecommit에 적용할 보안그룹을 선택한다.
6번을 마지막으로 엔드 포인트 생성을 할 수 있다.
S3 같은 경우에는 엔드포인트 유형이 Gateway, Interface로 나눠지는데 이 둘의 차이는 알아보고 해당 글을 수정해야 겠다.