VPC 엔드포인트란 무엇일까?
VPC 밖(인터넷을 통해)에서 들어오는 트래픽에는 과금이 되기 때문에 비용을 줄이기 위해 AWS 네트워크 안에서 통신할 수 있도록 하는 것이 좋다.
VPC Endpoint는 EC2 인스턴스를 VPC 외부 서비스(AWS 서비스 중 S3 등)와 private한 연결을 하기 위해 사용된다.
즉, AWS 서비스를 전용 연결할 수 있도록 말이다.
따라서 어떤 트래픽도 AWS 네트워크에서 벗어나지 않기 때문에 비용을 절약할 수 있다.
이 경우 퍼블릭으로 해당 서비스를 노출하지 않더라도 연동할 수 있다.
IGW, VPN, NAT, proxy등 사용할 일이 전혀 없다.
private subnet이 존재할 때, 이 서브넷과 S3를 연결하고 싶다면, 바로 Endpoint를 통해 연결할 수 있다.
하지만 VPC 밖에서 들어오는 트래픽에는 과금이 되기 때문에 비용을 줄이기 위해 AWS 네트워크 안에서 통신 할 수 있도록 하는 것이 좋다.
* 특징
- 인터넷을 통해 연결할 필요가 없다.
- 동일한 region에 있어야 한다.
- VPC내에서 Gateway처럼 Route Tables에 등록하는 형식으로 간편하게 사용가능 하다.
- 가용성이 높고 중복적이며 수평적이다.
AWS VPC는 사설 네트워크로 이루어진 사용자 정의 네트워크이다.
VPC 내 EC2, RDS, ELB 등을 탑재하고 ENI(Elastic Network Interface)에 사설 IP 혹은 공인 IP를 부여하여 사용한다.
그럼 다른 AWS 서비스 S3, Cloudwatch, Cloudfront, Dynamo DB, API Gateway 등은 어떨까
이들은 내가 설정한 AWS의 Region 내에 존재하지만, VPC 내부에 설치하는 서비스들이 아니다. 즉, 따로 공인 IP를 가지고 외부에서 접근하는 서비스들이다.
다음 상황을 가정해보자.
만일 VPC 내의 Private Subnet에 위치한 EC2 인스턴스에서 S3에 대한 api를 부르게 되면 어떻게 될까?
이는 S3에 접속해서 S3의 정보를 얻어와야 되기 때문에 당연히 외부에서의 접근이 필요하게 된다.
Bastion Host와 NAT 게이트웨이를 설정한 VPC 구성일 경우, EC2 -> NAT Gateway -> Router -> Internet Gateway -> 외부 인터넷 -> S3 이런식으로 이동하게 된다.
보기에는 통신에 전혀 문제 없어 보이지만, 이는 결국 VPC 내부 Resource와 기타 AWS Service Endpoint(EC2 api 호출, S3 접속 등)와 통신 시 외부 인터넷에 공개적으로 연결되며 트래픽이 노출됨을 의미하게 된다.
만일 내부적으로 은밀하게 처리해야 될 api 호출이라면 보안상으로 썩 좋지 않은 방법인 셈이다.
거기다 VPC 밖에서 들어오는 트래픽에는 과금이 되기 때문에 비용이 늘어난다.
따라서 이를 해결하기 위한 것이 VPC Endpoint인 것이다.
앞서 말했듯이 S3는 외부에서 접근해야 하는 서비스지만,
만일 내부 사용자(관리자)가 사용하는 형태라면, 보안을 위해 외부로 나가지 말고 내부 네트워크로 접근해서 사용하자는 취지인 것이다.
위의 그림을 보면 AWS Cloud 내에 VPC Endpoint가 있고 바로 S3로 연결되어있다.
말 그대로 VPC 내부에 Endpoint를 형성한 뒤, 이 Endpoint를 통해 AWS 외부 서비스에 도달할 수 있도록 하는 서비스인 것이다.
정리하자면, VPC Endpoint는 AWS 여러 서비스들과 VPC를 연결시켜주는 중간 매개체라서, AWS에서 VPC 바깥으로 트래픽이 나가지 않고 AWS의 여러 서비스들을 사용할 수 있게 만들어주는 서비스라 할 수 있다.
VPC 엔드포인트 종류
VPC 엔드포인트는 Interface Endpoint와 라우팅 테이블 기반의 Gateway Endpoint 두가지 종류로 나뉜다.
이 두개 유형의 다른점은 Access 방식이 다르다.
"Interface Endpoint"가 ENI(Elastic Network Interface)를 이용하여 IP가 할당되고 해당 IP로 Access를 하는 방식이라면, "Gateway Endpoint"는 Route Table을 이용하여 Endpoint에 Access한다는 것이 다른 점이다.
AWS 서비스마다 사용할 수 있는 VPC Endpoint 유형이 정해져 있으므로 확인 후 선택해야 한다.
앞서 소개했던 것처럼 각 서브넷마다 Elastic network interface(ENI)를 생성하여 외부 서비스에 접근하기 위한 VPC 엔드포인트가 바로 인터페이스 엔드포인트(Interface Endpoint) 이다.
외부 인터넷을 사용하지 않고 해당 ENI를 통해 외부 서비스로 접근이 가능하게 된다.
위의 그림에서 private EC2에서 나온 트래픽을 사설IP로 통신을 해서 외부 서비스와 연결되는 것을 볼수 있다.
Gateway endpoint는 Gateway endpoint를 생성한 후, Subnet에서 Routing만을 추가로 생성한다.
자동으로 생성되므로 변경할 수 없다.
따라서 해당 Routing table 경로를 보고 VPC Endpoint를 통해 S3에 접근 가능한 형태이다.
출처 :
https://2ham-s.tistory.com/403
'[AWS] > STUDY' 카테고리의 다른 글
[중요][참고] HTTP API와 REST API 이란!! (85) | 2023.12.21 |
---|---|
[참고] HTTP와 REST API이란 무엇인가!! (86) | 2023.12.21 |
[AWS] MSSQL 클러스터 방법 (0) | 2022.10.14 |
[AWS] 트랜잭션 로그 (1) | 2022.09.13 |
[AWS] Route53 도메인 연결 (0) | 2022.08.15 |
[AWS] Route53이란 (0) | 2022.08.12 |
[AWS] Cloud Front의 정의 (0) | 2022.08.12 |
[AWS] 리눅스 파일 시스템 (0) | 2022.08.12 |
댓글