VPC Endpoint 유형
VPC Endpoint에는 크게 2가지 유형(Gateway, Interface)이 있는데 그 중에서 Gateway Endpoint를 중점적으로 소개하는 내용이다. 이 2개 유형의 다른점은 Access 방식이 부분이다. "Interface Endpoint"가 ENI(Elastic Network Interface)를 이용하여 IP가 할당되고 해당 IP로 Access를 하는 방식이라면, "Gateway Endpoint"는 route table을 이용하여 Endpoint에 Access한다는 것이 다른 점이다.
AWS 서비스마다 사용할 수 있는 VPC Endpoint 유형이 정해져 있으므로 확인 후 선택해야 한다.
AWS 서비스가 어떤 VPC Endpoint를 제공하는지 확인하는 방법
- 화면 경로 : AWS Console > VPC > Endpoints > Create Endpoint
Service name 부분에서 "dynamo" 등 원하는 AWS 서비스명을 검색하면 어떤 Type의 Endpoint가 제공되는 지 확인 할 수 있다. DynamoDB 의 경우, Gateway Endpoint를 지원하는 것을 볼 수 있다.
Gateway VPC Endpoint 소개
VPC에서 AWS Public Service와 통신을 해야하는 경우, Public Network(인터넷)를 통해 통신이 이루어진다. 이 때, VPC Endpoint를 사용하게 되면 인터넷이 아닌 AWS 내부에서 Private하게 통신할 수 있도록 지원해주는 서비스이다.
그리고 위에서 언급했듯이, AWS 서비스마다 지원하는 VPC Endpoint가 정해져 있고 dynamoDB, S3의 경우에는 Gateway VPC Endpoint를 이용하여 Private하게 서비스를 이용할 수 있다.
특히, Gateway VPC Endpoint의 경우에는 AWS Service에 접근하기 위해 Route table과 prefix list id를 사용한다는 것이 특징이다.
S3 Gateway VPC Endpoint 생성해보기
- Gateway Endpoint를 생성하면 Endpoint id(=vpce-0c796975382c7ec2a) 를 부여 받게 된다.
그리고 VPC Endpoint 생성 시, 선택한 Subnet의 Route table에 아래와 같이 자동으로 Route Entry가 추가된 것을 볼 수 있다.
Route table의 Destination에는 prefix list id(=pl-63a5400a)가 등록이 되어 있고 Target에는 내가 방금 생성한 Endpoint의 id(vpce-0c796975382c7ec2a)가 등록되어 있다.
즉, VPC Gateway Endpoint를 생성하면 자동으로 Route Table에 등록을 해주기 때문에 추가로 작업해 줄 필요는 없다.
그렇다면 prefix list id(=pl-63a5400a)는 무엇인가?
prefix list id는 하나 이상의 CIDR 그룹이라고 생각하면 된다. 여기서는 S3를 생성했으므로 해당 prefix list id에는 S3가 사용하는 CIDR 블록들이 정의되어 있을 것이다.
그래야 S3로 가고자 하는 트래픽이 Route table에서 prefix list(=pl-63a5400a)에 포함된 IP인지 검사를 받게 되는데, prefix list에 포함되므로 인터넷이 아닌 VPC Gateway(vpce-0c796975382c7ec2a)로 보내주어 Private한 통신이 가능하게 된다.
prefix list는 아래 화면에 확인이 가능하다.
- 화면 경로 : AWS Console > VPC > Managed Prefix Lists
prefix list id "pl-63a5400"을 보면 Prefix list entries에 3개의 CIDR가 포함되어 있는 것을 볼 수 있다.
정말로 해당 CIDR를 S3에서 사용하는게 맞는지 궁금하다면 아래 AWS Doc에 확인하는 자세한 방법이 나와있다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/s3-find-ip-address-ranges/
결론적으로, 해당 prefix list id의 CIDR를 목적지로 하는 트래픽은 routing rule에 의하여 Target 컬럼에 해당하는 Gateway Endpoint로 트래픽이 흘러가게 되고 S3 Gateway Endpoint는 S3로 Private하게 통신을 보낸다.
그리고 Gateway Endpoints는 현재 S3 와 DynamoDB 서비스만 지원된다.
AWS VPC Gatway 공식 DOC
https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html
댓글