AWS

VPC에 대해 조금 더 자세히 알아보자 (5) - VPC Peering, VPC Endpoint

S_N_Y 2024. 4. 21. 13:29

 

다양한 region과 계정에서 VPC를 생성할 수 있는데 AWS 네트워크를 통해 연결하고 싶을 때 사용한다.

그런데 왜 필요할까?🤔

...

VPC가 모두 같은 네트워크에서 작동되도록 만들기 위해서이다.

그리고 서로 다른 VPC가 통신하려면 VPC 피어링을 활성화해야 한다!

 

#0 VPC Peering

그림으로 더 설명을 해보겠다.

3개의 VPC인 A, B, C가 있다.

A와 B 사이에 피어링 연결을 만들 수 있고 이걸 통해 서로 연결된다.

그리고 B와 C사이에 다른 피어링 연결을 생성한다. (역시 서로 통신할 수 O)

A랑 B, 그리고 B와 C가 연결되어 있더라도 A와 C의 VPC 피어링 연결을 활성화해야 그 둘이 통신을 할 수 있다.

또한 VPC 피어링이 있을 때 VPC 서브넷 상의 루트 테이블도 업데이트해서 EC2 인스턴스가 서로 통신할 수 있게 한다!

 

➕) VPC 피어링에 관해 알아둘 점

1. 내 계정 한정이 아니라 다른 계정 간에도 가능하다. (즉, 계정A - 계정B로 VPC 연결 가능)

2. Region간 연결도 가능하다.

3. 동일 region의 계정 간 VPC에서도 보안 그룹을 참조할 수 있다. (CIDR이나 IP를 소스로 가질 필요 X)

3번 설명 이미지

...

네트워킹 도면으로 돌아가면 지금은 이 부분이다.

VPC 피어링 연결을 추가해서 서로 다른 VPC를 연결한다.

 

#1 VPC Endpoint

AWS에서 DynamoDB와 같은 서비스를 이용한다고 하면 퍼블릭 액세스가 가능한데 이것은 NAT Gateway나 인터넷 게이트웨이 또는 인터넷 게이트웨이를 통해 DynamoDB에 액세스할 수 있다는 것이다.

모든 트래픽은 퍼블릭 인터넷을 거쳐서 온다. 그리고 CloudWatch와 Amazon S3등의 서비스를 이용할 때는 인터넷을 경유하지 않고 프라이빗 액세스를 원할 수도 있다.

=> 이때 VPC Endpoint를 사용하면 퍼블릭 인터넷을 거치지 않고도 인스턴스에 액세스할 수 있다!

(프라이빗 AWS 네트워크만 거쳐서 바로 해당 서비스에 액세스할 수 있는 것이다)

그림으로 더 살펴보면

NAT Gateway가 있는 퍼블릭 서브넷, EC2 인스턴스, 프라이빗 서브넷, 인터넷 게이트웨이가 있다.

이런 경우 SNS 서비스에 2가지 방법으로 액세스할 수 있다.

1️⃣ Option1 :

프라이빗 서브넷과 그 안에 있는 EC2 인스턴스에서 SNS 서비스에 액세스한다고 할 때 먼저 EC2 인스턴스에 NAT Gateway를 거쳐 인터넷 게이트웨이로 향한다. 그리고 SNS 서비스에 퍼블릭으로 액세스하는 것이다.

퍼블릭 서브넷에 있는 EC2 인스턴스의 경우도 마찬가지이다. 인터넷 게이트웨이에서 바로 SNS 서비스로 향한다..!

=> 이 방법도 괜찮긴 하지만 비용이 많이 든다.😰

일단 NAT Gateway를 거칠 때 비용이 발생한다. 인터넷 게이트웨이에서는 비용이 발생하지 않지만 허브가 여러 개 있을테니 효율적이라고 할 수 XX..!!!

 

2️⃣ Option2 :

이번에는 VPC 엔드 포인트를 추가해보자.

이때 VPC 엔드포인트는 VPC 내에 배포된다. 네트워킹을 구성해서 프라이빗 서브넷에 있는 EC2 인스턴스를 VPC 엔드포인트를거쳐 직접 SNS서비스에 연결할 수 있는데 이때 네트워크가 AWS 내에서만 이루어진다는 장점이 있다모든 \

VPC 엔드포인트를 사용하면 AWS PrivateLink를 통해 프라이빗으로 액세스하니 AWS에 있는 모든 서비스에 액세스할 때 퍼블릭 인터넷을 거치지 않고도 프라이빗 네트워크를 사용할 수 있다.

VPC 엔드포인트는 수평적으로 확장이 가능하고 인터넷 게이트웨이나 NAT Gateway 없이도 AWS 서비스에 액세스할 수 있게 해주니 네트워크 인프라를 굉장히 간단하게 만들어주는 특징이 있다.

(문제가 발생하면 VPC에서 DNS 설정을 해석하거나 라우팅 테이블을 확인하면 된다)

 

#2 두 가지 VPC Endpoint 유형 알아보기

1. PrivateLink를 이용하는 Interface Endpoint ☑️

인터페이스 엔드포인트는 ENI를 프로비저닝하는데 ENI는 VPC의 프라이빗 IP 주소이자 AWS의 엔트리포인트이다.

(ENI가 있으니 반드시 보안 그룹은 필수로 연결)

그림과 같이 프라이빗 서브넷에 EC2 인스턴스가 있고 PrivateLink를 사용하는 엔드포인트로 ENI를 통해서 이 서비스에 액세스할 수 있다.

=> 이 방법은 모든 서비스에서 사용할 수 있다.

 

2. Gateway Endpoint ☑️

게이트웨이 엔드포인트는 특이하게 게이트웨이를 프로비저닝하는데 이때 게이트웨이는 반드시 라우팅 테이블의 대상이 되어야 한다.

=> IP 주소를 사용하거나 보안 그룹을 사용하지 않고 라우팅 테이블의 대상이 될 뿐이다!

 

게이트웨이 엔드포인트 대상으로는 S3나 DynamoDB 두 가지가 있고 무료인데다 라우팅 테이블 액세스일 뿐이라 자동으로 확장되는 점이 좋다.