Transit Gateway 이용해 중앙집중형 VPC에서 인터넷 이용하기
Transit Gateway는 클라우드용 중앙 집중식 라우터(Hub)이다
예전에는 VPC Peering을 통해서 VPC 간에 하나하나 연결을 다 했어야 했는데 이제는 Transit Gateway를 이용해서 전이적 통신이 가능해졌다.
암튼 Transit Gateway 설명은 그렇고, 얘는 VPC와 VPN, Peering, Direct Connect와 연결 가능하다.
내가 얘기하고 싶은 건 하나의 리전 안에 VPC가 두 개가 있을 때 A VPC에만 인터넷 게이트웨이와 NAT 게이트웨이가 있고 B VPC는 외부와 통신 가능한 망이 하~나도 없을 때 Transit Gateway를 이용해 어떻게 할 수 있는지다.
A VPC
- Internet Gateway 있음
- NAT Gateway 있음
- Public Subnet 있음

B VPC
- Internet Gateway 없음
- NAT Gateway 없음
- Private Subnet만 존재

이런 상황이라면 B VPC의 인스턴스에는 접근도 외부에서 뭔가 다운로드 하는 것조차도 불가능하다.
근데 상식적으로 그럴 순 없으니까 우리는 외부와 연결 가능한 A VPC를 이용해서 인터넷을 사용할 거다.
그렇게 하기 위해선 VPC Peering도 할 수 있겠지만, 여기에선 Transit Gateway를 사용하고자 한다.

Transit Gateway 생성하기
- VPC > Transit Gateway 페이지에서 tgw를 생성한다.
- 기본 라우팅 테이블 연결과 전파는 체크 해도 되고 체크 안 해도 된다. 자동으로 라우팅테이블을 만들 것이냐 아니냐의 차이여서 크게 상관없다. 어차피 우리는 라우팅만 잘 잡아주면 됨

Transit Gateway Attachment 생성하기
1. A VPC의 Transit Gateway Attachment 생성하기
- 1번에서 생성한 TGW 선택
- VPC에서 A VPC 선택하기
- Private Subnet 둘 다 선택해주기. 아무 서브넷이나 상관 없다고는 함. 나는 Private2 서브넷 선택했음

2. B VPC의 Transit Gateway Attachment 생성하기
- 1번에서 생성한 TGW 선택
- VPC에서 B VPC 선택하기
- Private Subnet 둘 다 선택해주기. 어차피 Private Subnet 뿐이라 선택의 폭이 없음

Transit Gateway Route Table 생성하기
- Transit Gateway 라우팅 테이블 생성할 때는 간단히 Transit Gateway만 지정해주면 된다.
- 만약 Transit Gateway 생성할 때 기본 라우팅 테이블을 지정했다면 자동으로 만들어져있을 것이고, 아니라면 수동으로 만들면 된다.

라우팅 테이블의 <연결>과 <전파>에 Transit Gateway Attachment를 각각 생성해준다.


그러면 자동으로 <경로>에 A와 B VPC CIDR 대역으로 향하는 TGW ID가 지정되어 있을텐데 여기에 추가로 0.0.0.0/0 인터넷으로 향하는 경우에 A VPC로의 TGW ID가 잡히도록 넣어주면 된다.
- 0.0.0.0/0 CIDR의 연결이 TGW가 되도록 설정하기


라우팅 테이블 제어하기
이젠 VPC 서브넷의 라우팅 테이블을 수정하면 된다.
1. A VPC의 Public Subnet의 라우팅테이블
- 0.0.0.0/0 → IGW
- 10.1.0.0/16(B VPC대역) → TGW
- 10.10.0.0/16 → local

2. B VPC의 Private Subnet의 라우팅테이블
- 0.0.0.0/0 → TGW
- 10.1.0.0/16 → local

결론
- B VPC에 NAT, IGW가 없어도 A VPC의 NAT를 이용해서 B VPC의 EC2에서 인터넷이 가능하게 할 수 있다.
- 사진은 B VPC의 EC2 인스턴스에서 인터넷으로 ping 날린 것

- Regional NAT는 왜인지 되지 않았다 왜 ? 안되는지 이유는 모르겠으나 Zonal NAT를 사용하니까 잘 됨
참고 문서
- https://dev.to/hugothomaz/centralizing-internet-output-in-multiple-aws-accounts-with-the-aws-transit-gateway-1ad5
- https://yoo11052.tistory.com/170
- https://bigco-growth-diary.tistory.com/33\
끝