온프레미스 환경과 AWS 클라우드를 안정적으로 연결하기 위해
많은 기업에서 AWS Direct Connect(DX) 를 사용한다.
특히 멀티계정 구조에서는
여러 VPC, 여러 계정, 여러 네트워크 환경을 DX + Transit Gateway(TGW) 기반으로 통합하는 형태가 일반적이다.
최근 프로젝트에서
“여러 계정이 하나의 DXGW를 공유하면서 각 계정별 TGW를 연결하는 구조”를 시도했다가
AWS의 중요한 제약 조건에 부딪힌 경험이 있다.
이 글에서는
DXGW와 TGW가 어떤 방식으로 동작하는지,
왜 리전당 하나의 TGW만 DXGW와 정상적으로 연결되는지,
그리고 결국 어떤 아키텍처로 운영하게 되었는지를 정리한다.
1. DXGW와 TGW는 어떻게 동작할까?
Direct Connect (DX)
온프레미스–AWS 간 전용회선을 제공하며 BGP로 라우팅 정보를 교환한다.
Direct Connect Gateway (DXGW)
DX와 AWS 내부 네트워크(VPC 또는 TGW)를 연결해주는 중앙 관문(gateway) 역할이다.
특징:
- 여러 계정에서 하나의 DXGW를 공유 가능
- 온프레–AWS 간 라우팅(prefix propagation) 을 처리
- TGW와 연결하여 AWS 전체 네트워크를 온프레미스와 묶을 수 있음
Transit Gateway (TGW)
AWS 내 여러 VPC·온프레미스·VPN 환경을 하나로 묶는 대규모 라우팅 허브.
DXGW ↔ TGW 구조를 통해 온프레에서 여러 AWS 계정의 VPC로 접근할 수 있다.
2. AWS 문서를 보면… “DXGW는 TGW를 3개까지 연결 가능”
AWS 공식 문서에는 이렇게 적혀 있다:
DXGW는 최대 3개의 TGW와 Association 가능하다.
이 문구만 보면 누구라도 이렇게 설계하고 싶어진다:
DXGW
├─ TGW-A (계정 A)
├─ TGW-B (계정 B)
└─ TGW-C (계정 C)
실제로 콘솔에서도 TGW-A/B/C 모두 연결된다.
문제는…
3. 문제 발생: “연결은 되는데 통신은 TGW 하나만 된다”
현장에서 실제로 테스트해 보면:
- TGW-A: 온프레미스 ↔ AWS 통신 정상
- TGW-B: 연결됨(Available)으로 표시되지만 온프레미스 통신 X
- TGW-C: 마찬가지로 통신 X
라우팅 테이블도 전파되지 않고, prefix도 교환되지 않는다.
처음엔 계정 문제인가? 권한 문제인가? 회선 문제인가? 의심했지만, 근본 원인은 AWS의 리전 기반 제약이었다.
4. 원인: DXGW는 리전당 TGW 1개만 실제로 활성화할 수 있다
AWS 공식 문구 중 가장 중요한 문장:
A DX Gateway cannot be associated with more than one Transit Gateway per AWS Region.
의역하면:
같은 리전(ap-northeast-2 등)에 있는 TGW는
DXGW와 동시에 ‘실제로’ 사용할 수 없다.
연결은 여러 개 할 수 있지만, 동작하는 것은 한 개뿐이다.
즉,
- 계정이 달라도
- TGW가 몇 개 있어도
- 동일 리전이라면
→ DXGW는 TGW 하나만 prefix propagation을 활성화한다.
UI에서는 “3개 모두 연결됨”으로 보이기 때문에 헷갈리지만
실제 라우팅 계층에서 동작하는 TGW는 하나뿐이다.
이 제약을 처음 보면 당황스럽지만, AWS는 이를 통해 TGW 간 라우팅 루프나 prefix 충돌을 방지한다.
5. 결국 적용한 솔루션
초기 구상:
각 계정마다 TGW를 두고 이를 모두 DXGW에 연결해 멀티계정 온프레 통신을 구성하려고 했다.
하지만 DXGW–TGW 제약 때문에 이 방식은 불가능했다.
✔ 최종 운영 구조는 이렇게 정리되었다:
- 리전 내에서 DX와 직접 연결되는 TGW는 환경별로 하나만 존재
- 다른 계정들은 자체 TGW를 DXGW에 연결하는 대신
→ 해당 TGW에 VPC Attachment로만 연결 - DX 회선은 VLAN별로 PROD / EVENT 등 환경에 배치
- 전체 네트워크 라우팅이 단순해지고 안정화됨
실제 운영 중인 구조는 아래와 같다.

이 구조의 장점:
- DXGW 제약과 완벽히 호환
- 멀티계정에서도 통신 흐름이 명확
- 관리 포인트가 줄어 운영성이 증가
- 라우팅 혼선 및 장애 가능성 감소
멀티계정 DX 아키텍처에서는 “리전당 TGW 1개”를 기본 가정으로 설계해야 한다
정리하면:
| 항목 | 현실 |
|---|---|
| DXGW는 TGW를 3개까지 연결 가능 | O |
| 실제로 라우팅되는 TGW 수 | 리전당 1개 |
| 여러 계정이 DX를 공유하는 방법 | 단일 TGW에 VPC Attach |
처음에는 “연결은 되는데 왜 통신이 안되지?”라고 생각하기 쉬운 문제였지만
AWS의 리전 기반 제약을 정확히 이해하면 오히려 아키텍처가 단순해지고 유지보수가 편해진다.
멀티계정·DX·TGW 조합을 설계하는 모든 엔지니어에게 꼭 알고 있어야 하는 포인트라고 생각해 정리해본다.