Transit Gateway란?
정의
Transit Gateway는 가상 사설 클라우드(VPC)와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 네트워크 전송 허브입니다. 클라우드 인프라가 전 세계적으로 확장됨에 따라 리전 간 피어링은AWS 글로벌 인프라를 사용하여 Transit Gateway를 함께 연결합니다. AWS 데이터 센터 간의 모든 네트워크 트래픽은 물리 계층에서 자동으로 암호화됩니다.
Transit Gateway 개념
- Transit GW는 다음과 같은 리소스와 연결(Attachments)이 가능합니다.
- 하나 이상의 VPC
- SD-WAN/서드 파티 네트워크 어플라이언스
- Direct Connect Gateway
- 다른 TGW와의 피어링 연결
- VPN 연결
- TGW 최대 전송 단위(MTU) :
- MTU는 연결을 통해 전달할 수 있는 최대 크기의 패킷 크기(byte)입니다. 연결의 MTU가 클수록 하나의 패킷으로 전달할 수 있는 데이터의 양이 늘어납니다.
- Transit GW는 VPC, Direct Connect(DX), Transit Gateway Connect 및 피어링 연결 간 트래픽은 8,500 바이트
- VPN 연결을 통한 트래픽은 1,500 바이트
- Transit GW 라우팅 테이블 :
- Transit GW는 기본 라우팅 테이블을 가지고, 추가 라우팅 테이블도 가질 수 있다.
- 라우팅 테이블에는 패킷의 대상 IP 주소를 기반으로 다음 홉을 결정하는 동적 및 정적 라우팅이 포함된다.
- 이런 경로의 대상은 모든 TGW Attachment일 수 있다. 기본적으로 TGW Attachment는 기본 TGW 라우팅 테이블과 연결된다.
- Associations :
- 각 연결은 정확히 하나의 route table과 연결된다. 각 경로 테이블은 0개에서 여러 개의 Attachment과 연결될 수 있다.
- Route propagation :
- VPC, VPN 연결 또는 DX GW는 경로를 TGW Route Table로 동적으로 전파할 수 있다. Attachment에 연결하면 기본적으로 경로가 TGW Route Table로 전파된다.
- VPC를 사용할때 트래픽을 TGW로 보내려면 정적 경로를 만들어야 한다.
- VPN 연결을 사용하면 경로는 BGP를 사용해 TGW에서 온프레미스 라우터로 전파된다. DX GW를 사용하면 허용된 접두사가 BGP를 사용하여 온프레미스 라우터로 시작된다.
- 피어링 연결의 경우 트랜짓 게이트웨이 경로 테이블에 피어링 연결을 가리키도록 정적 경로를 만들어야 한다.
Propagation의 개념이 이해가 안갔었는데 철도를 기준으로 설명 하자면 TGW를 중앙 환승 센터라고 보고 VPC를 마을이라고 비유 해보겠다.
A 마을과 B 마을이 통신하기 위해서는 중앙 환승 센터에서 A 마을과 B 마을에게 갈 수 있는 길을 알아야하고, A 마을과 B 마을에서 중앙 환승 센터로 가는 길을 알아야한다.
A 마을에서 중앙 환승센터로 길을 마구 뚫어 철로를 연결 했다고 가정해보자, 허나 중앙 환승 센터에서는 이 길이 A 마을로 통해 있는지 모른다.
그래서 환승 센터 관리자에게 우리 A 마을인데 너네 쪽으로 길 뚫었는데 철도 하나 놓고 양방향으로 기차 보낼래?? 라고 알려주고 환승 센터에서 기차를 보낼수 있게 끔 해주는 것이 propagation 설정이다.
원래대로 라면 A 마을에서 환승 센터로 가는 철도, 환승 센터에서 A 마을로 가는 철도 하나가 필요할테지만 이를 하나만 설정하고 환승 센터에 알려주게 되면 나중에 철거 할때도 A 마을이 알아서 철거할테니 환승 센터 입장에서는 오히려 편한 것이다.
Transit Gateway 작동 원리
- 아키텍처 다이어그램
위 예시에서는 3개의 VPC 연결이 있는 TGW를 보여준다. 이러한 각 VPC의 라우팅 테이블에는 다른 두 VPC를 대상으로 하는 트래픽을 TGW로 보내는 로컬 경로가 포함된다.
대상 주소 | 대상 | 경로 유형 |
---|---|---|
VPC A CIDR | VPC A 연결 | 전파 |
VPC B CIDR | VPC B 연결 | 전파 |
VPC C CIDR | VPC C 연결 | 전파 |
- 위 다이어그램에 표시된 연결에 대한 기본 TGW 라우팅 테이블의 예이다. 각 VPC의 CIDR 블록이 라우팅 테이블에 전파된다. 따라서 각 연결은 패킷을 다른 두 가지 연결로 경로 지정할 수 있다.
- 리소스 연결
- TGW Attachment는 패킷의 소스이자 대상이다. 다음 리소스를 TGW에 연결할 수 있다.
- 하나 이상의 VPC.
TGW는 VPC 서브넷 내에 ENI를 배포한다. 이 인터페이스는 TGW에서 선택된 서브넷 간에 트래픽을 라우팅하는 데 사용된다.
각 가용 영역에 하나 이상의 서브넷이 있어야 한다.
그러면 트래픽이 해당 영역의 모든 서브넷에 있는 리소스에 도달할 수 있다.
서브넷 라우팅 테이블은 TGW에 대한 경로를 포함하고 트래픽은 동일한 가용 영역의 서브넷에 연결이 있는 경우에만 TGW에 전달된다. - 하나 이상의 VPN 연결
- 하나 이상의 DX GW
- 하나 이상의 TGW Connect Attachment
- 하나 이상의 TGW 피어링 연결
- TGW Attachment 하나가 패킷의 소스이자 대상일 수 있다.
- 하나 이상의 VPC.
- TGW Attachment는 패킷의 소스이자 대상이다. 다음 리소스를 TGW에 연결할 수 있다.
- Equal Cost Multipath 라우팅 (ECMP)
- ECMP는 다수의 경로가 목적지, Distance, Metric, Priority 값이 동일할 경우, 모두 active 되고 모든 경로를 통해 트래픽을 분배하게 된다. 다중경로를 사용하는 주된 이유중 하나는 트래픽 부하 분산(로드 밸런싱)때문이다.
- TGW는 대부분의 연결에 ECMP 라우팅을 지원한다. TGW를 생성하거나 수정할 때 콘솔을 사용해 ECMP 지원을 활성화하거나 비활성화할 수 있다.
- TGW Connect 연결은 자동으로 ECMP를 지원한다.
- DX GW 연결을 여러 DX GW에서 자동으로 ECMP를 지원한다.
- 가용 영역
- TGW에 VPC를 연결할 때 TGW에서 하나 이상의 가용 영역을 사용하여 트래픽을 VPC 서브넷의 리소스로 라우팅해야 한다.
- 각 가용 영역을 활성화하려면 정확히 한개의 서브넷을 지정해야한다. TGW는 서브넷의 IP 주소 하나를 사용해 해당 서브넷에 ENI를 배치한다.
- 가용 영역을 활성화하면 트래픽이 지정된 서브넷 또는 가용 영역 뿐만 아니라 VPC의 모든 서브넷으로 라우팅 가능하다.
- 그러나 TGW가 연결된 가용 영역에 있는 리소스만 TGW에 도달할 수 있다.
- 라우팅
- TGW는 TGW Routing Table을 이용해 연결 간에 IPv4 IPv6 패킷을 라우팅한다. 연결된 VPC, VPN 연결 및 DX GW에 대한 라우팅 테이블의 경로를 전파하도록 이러한 라우팅 테이블을 구성할 수 있다.
- TGW 피어링 연결의 경우 정적 경로만 지원된다.
- 라우팅 테이블
- TGW는 자동으로 기본 라우팅 테이블이 제공된다. 이 라우팅 테이블은 기본 연결 라우팅 테이블과 기본 전파 라우팅 테이블이다.
- 경로 전파 및 라우팅 테이블 연결을 비활성화한 경우 AWS는 TGW에 대한 기본 라우팅 테이블을 생성하지 않는다.
- TGW는 추가 라우팅 테이블을 만들 수 있다. 이렇게 하면 서브넷을 격리할 수 있다. 각 연결은 라우팅 테이블 하나와 연결할 수 있다. 한 연결은 하나 이상의 라우팅 테이블에 해당 경로를 전파할 수 있다.
- 라우팅 테이블 연결
- TGW Attachment를 단일 라우팅 테이블과 연결할 수 있다. 각 라우팅 테이블은 0개 이상의 연결과 연결할 수 있으며, 패킷을 다른 연결에 전달할 수 있다.
- 경로 전파
- 각 연결에는 하나 이상의 TGW 라우팅 테이블에 설치할 수 있는 경로가 있다. 연결이 TGW 라우팅 테이블에 전파되면 이러한 경로가 라우팅 테이블에 설치된다.
- 피어링 연결에 대한 라우팅
- 두 개의 TGW를 피어링하고 두 게이트웨이 간에 트래픽을 라우팅할 수 있다. 이렇게 하려면 TGW에서 피어링 연결을 생성하고 함께 피어링 연결을 생성할 피어 TGW를 지정해야 한다.
- 그 다음 TGW 라우팅 테이블에서 정적 경로를 생성해 트래픽을 TGW 피어링 연결로 라우팅 한다. 피어 TGW로 라우팅된 트래픽은 피어 TGW에 대한 VPC 및 VPN 연결로 라우팅될 수 있다.
Quota
일반
이름 | 기본값 | 조정가능 |
---|---|---|
계정당 Transit Gateway 수 | 5 | 예 |
전송 게이트웨이당 CIDR 블록 수 | 5 | 아니오 |
라우팅
이름 | 기본값 | 조정가능 |
---|---|---|
전송 게이트웨이당 전송 게이트웨이 라우팅 테이블 수 | 20 | 예 |
단일 전송 게이트웨이의 모든 라우팅 테이블(동적 및 정적)을 합친 총 경로 | 10,000개 | 예 |
가상 라우터 어플라이언스에서 Connect 피어로 공개된 동적 라우팅 | 1,000 | 예 |
전송 게이트웨이의 Connect 피어에서 가상 라우터 어플라이언스로 공개된 라우팅 | 5,000 | 아니오 |
단일 연결에 대한 접두사의 정적 경로 수 | 1 | 아니오 |
Transit Gateway Attachment
전송 게이트웨이는 동일한 VPC에 둘 이상의 VPC 연결을 가질 수 없다.
이름 | 기본값 | 조정가능 |
---|---|---|
전송 게이트웨이당 연결 수 | 5,000 | 아니오 |
VPC당 Transit Gateway 수 | 5 | 아니오 |
전송 게이트웨이당 피어링 연결 수 | 50 | 예 |
전송 게이트웨이당 보류 중인 피어링 연결 수 | 10 | 예 |
하나의 Transit Gateway 내에서 또는 두 Transit Gateway 간 피어링 연결 | 1 | 예 |
Connect 연결당 Connect 피어(GRE 터널) | 4 | 예 |
여기서 Connect 피어란 Connect Attachment를 생성한 후 하나 이상의 GRE 터널을 생성하여 트랜짓 게이트웨이와 타사 어플라이언스(온프레미스)를 연결한 것
AWS Direct Connect 게이트웨이
이름 | 기본값 | 조정가능 |
---|---|---|
전송 게이트웨이당 AWS Direct Connect 게이트웨이 수 | 20 | 아니오 |
AWS Direct Connect 게이트웨이당 Transit Gateway 수 | 6 | 아니오 |
비용
- AWS Transit Gateway에서는 시간당 Transit Gateway에 대한 연결 수와 AWS Transit Gateway를 통과하는 트래픽의 양에 대해 요금이 부과
이름 | 기본값 |
---|---|
AWS Transit Gateway 연결당 요금(USD) | 0.05 USD |
처리된 데이터 GB당 요금(USD) | 0.02 USD |
정리
- Transit Gateway는 VPC와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 네트워크 전송 허브이다.
- 트랜짓 게이트웨이는 다음과 같이 Attachment 가능하다.
- 하나 이상의 다른 VPC
- SD-WAN / 서드 파티 네트워크 어플라이언스
- Direct Connect Gateway
- 다른 TGW와의 피어링 연결
- VPN 연결(Site-to-site VPN)
- Transit Gateway 는 라우팅 테이블을 통해서 패킷을 전달함.
- 라우팅 테이블은 기본 라우팅 테이블과 전파 라우팅 테이블이 있음
- 라우팅 테이블에는 패킷의 대상 IP 주소를 기반으로 다음 홉을 결정하는 동적 및 정적 라우팅이 포함된다.
- 경로의 대상은 모든 TGW Attachment일 수 있다.
- Associations 는 정확히 하나의 Route Table과 연결된다. 각 Route Table은 여러 개의 Attachment와 Association될 수 있다.
- Route Propagation은 경로를 TGW Route Table로 동적으로 전파하는 것이다.
- A VPC 있다고 가정했을 때 A VPC 에 Static으로 라우팅이 되어 있다고 가정하면 TGW -> A VPC 로 패킷이 전달되나 A -> TGW로 전달은 안됨
- 이를 양방향으로 하고 경로를 한 곳에서 관리하기 위해서 Propagated (Dynamic) 되게 한다.
- TGW가 통신하는 원리
- VPC 서브넷 내에 ENI를 배포하고, 해당 인터페이스는 TGW에서 선택된 서브넷 간에 트래픽을 라우팅하는 데 사용된다.
- 각 가용 영역에 하나 이상의 서브넷이 있어야 하고, 트래픽은 해당 영역의 모든 서브넷에 있는 리소스에 도달할 수 있다.
- 서브넷 라우팅 테이블은 TGW에 대한 경로를 포함하고 트래픽은 동일한 가용 영역의 서브넷에 연결이 있는 경우에만 TGW에 전달된다.
- 비용은 TGW의 시간당 연결 수에 따라 0.07 USD 처리된 데이터 GB당 0.02 USD 요금이 부과된다.
- 예를 들어 TGW 연결이 5개 되어 있고 100 GB를 처리한다고 가정하면 아래와 같다.
730 시간(1달 기준) x 0.07 USD = 51.10 USD (Transit Gateway Attachment 시간당 비용)
100 월별 GB x 0.02 USD = 2.00 USD (Transit Gateway 데이터 처리 비용)
51.10 USD + 2.00 USD = 53.10 USD (Transit Gateway Attachment당 처리 및 월별 비용)
5 Attachment x 53.10 USD = 265.50 USD(Attachment당 총 Transit Gateway 사용 및 데이터 처리 비용)
총 Transit Gateway Attachment당 사용 및 데이터 처리 비용 (월별): 265.50 USD
[참조] :
https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html