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 필요 (추가 비용 발생)