TGW (Transit Gateway)
Transit Gateway란?
AWS에서 여러 VPC와 온프레미스 네트워크를 중앙 허브 하나로 연결하는 네트워크 서비스다.
TGW 없이 VPC끼리 연결하려면 VPC Peering을 각 쌍마다 설정해야 한다. VPC가 많아질수록 연결 수가 폭발적으로 늘어난다.
VPC Peering과의 차이
VPC Peering (TGW 없을 때)
VPC가 N개면 최대 N*(N-1)/2 개의 Peering이 필요하다.
graph LR A[VPC-A] --- B[VPC-B] A --- C[VPC-C] A --- D[VPC-D] B --- C B --- D C --- D
4개 VPC → 최대 6개 Peering 필요. 10개면 45개.
TGW 사용
모든 VPC를 TGW 하나에 연결하면 끝.
graph LR A[VPC-A] --> TGW B[VPC-B] --> TGW C[VPC-C] --> TGW D[VPC-D] --> TGW E[VPC-E] --> TGW TGW --> OP[온프레미스]
N개 VPC → N개 연결만 필요. 관리가 단순해짐.
핵심 개념
Attachment
TGW에 무언가를 연결하는 단위. VPC, VPN, Direct Connect Gateway, 다른 TGW 등을 붙일 수 있다.
graph TD TGW[TGW] TGW --> VA[VPC Attachment\nVPC-A] TGW --> VB[VPC Attachment\nVPC-B] TGW --> VPN[VPN Attachment\n온프레미스] TGW --> PA[Peering Attachment\n다른 리전 TGW]
Route Table
TGW 내부의 라우팅 테이블. 어떤 트래픽을 어느 Attachment로 보낼지 결정한다.
기본적으로 모든 Attachment는 동일한 Route Table을 공유하지만, 격리가 필요하면 Route Table을 분리할 수 있다.
TGW Route Table
Destination Target
10.0.0.0/16 → VPC-A Attachment
10.1.0.0/16 → VPC-B Attachment
192.168.0.0/16 → VPN Attachment
Association vs Propagation
- Association: Attachment가 어느 Route Table을 사용할지 지정
- Propagation: Attachment의 CIDR을 Route Table에 자동으로 등록
주요 사용 사례
멀티 VPC 연결 (계정 내)
dev, staging, prod VPC를 TGW로 연결하되, Route Table을 분리해 dev ↔ prod 직접 통신은 차단.
graph LR dev[dev VPC] --> RTA[TGW Route Table A] prod[prod VPC] --> RTB[TGW Route Table B] shared[shared VPC\nDNS, 모니터링] --> RTA shared --> RTB
멀티 계정 연결 (AWS Organizations)
AWS Resource Access Manager(RAM)로 TGW를 다른 계정과 공유해서 여러 AWS 계정의 VPC를 하나의 TGW로 연결.
온프레미스 연결
Site-to-Site VPN 또는 Direct Connect를 TGW에 붙이면 온프레미스 네트워크와 모든 VPC가 연결됨.
비용 구조
- Attachment 비용: 연결된 Attachment 수 × 시간당 요금
- 데이터 전송 비용: TGW를 통해 전송된 데이터 GB당 요금
VPC Peering은 같은 AZ 내 트래픽은 무료지만, TGW는 모든 트래픽에 요금이 발생한다. VPC 수가 적다면 Peering이 더 저렴할 수 있다.
주의사항
- CIDR 중복 불가: TGW에 연결된 VPC들의 IP 대역이 겹치면 라우팅이 불가능함. VPC 설계 시 CIDR을 겹치지 않게 계획해야 함
- 전이적 라우팅 불가 (VPC Peering과 달리): TGW는 전이적 라우팅을 지원하지만, VPC Peering은 A-B, B-C가 연결돼 있어도 A-C는 직접 통신 불가. TGW는 이 문제를 해결함
- 리전 간 연결: 다른 리전의 TGW와 연결하려면 TGW Peering Attachment 필요 (추가 비용 발생)
댓글 (0)