이것이 점프 투 공작소

AWS Transit Gateway란? AWS계정간 VPC 통신하기 본문

aws

AWS Transit Gateway란? AWS계정간 VPC 통신하기

겅겅겅 2023. 6. 24. 10:02

AWS인프라를 운영하다 보면 서로 다른 VPC 계정간에 VPC를 이용한 통신이 필요할 일이 종종 발생합니다.

VPC peering을 통해 연결하는것도 좋은 방법이지만, 연결되는 커넥션이 많아질수록 관리도 어렵고

라우팅 테이블이 복잡해지기에더 쉬운 관리와 확장성을 가진 Transit Gateway를 더 많이 사용하는 것 같습니다.

 

Transit Gateway(TGW)란?

VPC 와 VPC , VPC와 온프레미스간에 네트워크를 상호 연결 할 수 있도록 만들어주는 네트워크 전송허브입니다. 

TGW에 여러 네트워크들을 연결하여 각 네트워크간 통신을 시켜주는 일종의 라우터? 라고 이해하시면 편할 것 같습니다

 

구성 요소

Transit Gateway는 크게 3가지의 구성 요소를 가집니다.

한글로 해석해서 쓰게되니 좀 이상한데 개념적인 접근이니 본 포스팅에서는 아래 용어들을 사용하겠습니다..!

Attachment (부착)

VPC, VPN와 Transit Gateway와의 논리적인 연결을 의미합니다.

VPC와 TGW가 Attachment가 되어 있어야 네트워크간 라우팅이 가능합니다.

Association (연결)

TGW에서는 연결 라우팅 테이블과 전파 라우팅 테이블 총 2가지 라우팅 테이블이 존재합니다

연결 라우팅 테이블에 Attachment된 VPC들은 자동으로 전파 라우트 테이블에 반영이 됩니다.

하나의 TGW 라우팅 테이블은 여러 Attachment를 가질 수 있습니다.

Propagation (전파)

전파 라우팅 테이블은 Association에서 전파한 라우팅 정보를 전파하는 테이블입니다. (실질직인 라우팅 기능)

VPC가 Attachment되었다면 AWS-API를 통해, 온프레미스라면 BGP를 통해 전파합니다.

TGW 라우팅 테이블의 실질적 라우팅 결과

 

Transit Gateway의 통신 과정

VPC간 Transit Gateway의 통신과정을 간단하게 순서대로 정리해보면 이렇습니다.

 

1. VPC는 VPC의 로컬 라우팅 테이블을 통해 요청을 Transit Gateway로 라우팅합니다. (이때 각 VPC는 Transit Gateway에 부착Attachment)되어 있어야합니다.)

2. Attachment된 VPC들은 연결 라우팅 테이블에 등록되어 전파 라우팅 테이블로 라우팅정보를 전파합니다.

3. Transit Gateway는 전파 라우팅 테이블에 등록된 경로를 통해 알맞은 위치로 요청을 보냅니다.

 

Transit Gateway Routing Table

TGW에서는 VPC와 다른 별도의 라우팅 테이블을 가집니다.

대상 서브넷과 서브넷과 연결되는 VPC를 지정해주면 요청을 라우팅합니다.

전파된 경로가 아닌 직접 정적경로를 지정해 TGW의 트레픽을 조정 가능하며, active와 blackhole을 설정해 차단여부도 설정 할 수 있습니다.

 

Transit Gateway 생성

별도의 TGW라우팅 테이블을 생성 후 사용하시려면 기본 라우팅 테이블 연결, 전파설정을 하지 않으시면됩니다.

 

VPC와 TGW 부착(Attachment)

오른쪽 상단 버튼을 눌러 VPC와 TGW를 Attachment 시킬 수 있습니다.

제 계정의 VPC와 생성한 TGW를 부착(Attachment)하였습니다.

Attachment를 생성하면 각각의 가용영역마다 TGW와 통신 가능한 ENI가 생성됩니다.

 

VPC와 TGW 2개의 라우팅 테이블 경로 생성 및 확인

TGW의 라우팅 테이블 경로 확인

TGW의 기본설정을 기본 라우팅 테이블로 했기에 연결 라우팅 테이블의 정보가 전파되어 경로에 추가되어 있는걸 확인 할 수 있고,

기본라우팅 테이블이 아닌 다른 경로를 사용하시려면 정적경로 생성에서 서브넷을 추가하여 사용 할 수도 있습니다.

 VPC로컬 라우팅 테이블에서 TGW로 가는 경로 생성

TGW에 연결된 VPC의 라우팅 테이블에도 TGW로 가는 경로를 추가해주었습니다.

 

RAM을 통한 리소스 공유

Resource Access Manager 페이지에서 공유계정을 지정하여 TGW를 만들면

해당계정에서 승낙 후 리소스를 사용 할 수 있게됩니다.

 

공유받은 TGW에 VPC Attachment하기

공유가 완료된 계정에서 TGW를 사용하는 방법도 동일합니다.

먼저 공유 받은 계정에서 TGW를 확인해보면 공유받은 TGW를 확인 할 수 있고

이 TGW에 연결을 원하는 VPC를 Attach하시면 pending Acceptance 상태가 됩니다.

TGW를 공유하는 계정에서 승인해주면 성공적으로 Attach가 됩니다!

 

TGW소유 계정에서 연결 라우팅 테이블 확인

본 계정에서 연결된 vpc와 공유된 계정에서 연결된 vpc ip가 보입니다.

 

TGW를 통해 연결된 VPC끼리 통신 요청

공유한 계정의 VPC내의 인스턴스에서 TGW를 공유받은 계정의 VPC내에 EC2에 nslookup으로 요청하면

해당 계정의 privateIp를 조회하는 모습을 볼 수 있습니다!

 

추후에는 VPC와 온프레미스간의 Transit Gateway연결도 포스팅해보도록 하겠습니닷