회사가 처음 클라우드를 시작할 땐 VPC 하나면 충분하다. 그러다 보면 dev/stage/prod를 분리하고, 팀별 VPC를 만들고, 인수합병으로 다른 회사의 VPC를 떠안고, 온프레미스 데이터센터와도 연결하게 된다. 어느 순간 운영자는 5개, 20개, 50개 VPC가 어떻게 통신해야 하는지를 결정해야 한다. 그 시점에 만나는 도구들이 Transit Gateway, VPN, Direct Connect, Route 53이다.
이 도구들의 어려움은 각자가 어떤 trade-off를 푸는지를 모르고 시작하면 잘못된 조합으로 끝난다는 점이다. 20개 VPC를 VPC Peering으로 묶으면 190개 연결이 필요하고, 단일 Direct Connect 회선만으로 운영 트래픽을 받다가 회선 장애로 다운타임을 겪는 일이 매년 어딘가에서 일어난다. Route 53의 8가지 라우팅 정책도 비슷한 이름들 사이에서 운영자가 잘못 고르면 사용자 일부가 항상 느린 리전으로 가는 사고가 난다. 이 글은 각 도구가 푸는 문제와 함정을 따라간다.
여러 VPC를 연결하는 방법은 본질적으로 두 가지다.
Mesh 토폴로지 — VPC Peering으로 모든 VPC 쌍을 직접 연결. N개 VPC면 N(N-1)/2개 연결. 5개는 10개, 10개는 45개, 20개는 190개