igw가 붙은 외부인터넷용 VPC와 igw가 없는 내부용VPC 구성을 일전에 설명한 바 있다.(참고:https://severalpg.tistory.com/90)
내부용 VPC라 하더라도, 외부로의 outbound 인터넷은 대부분의 경우 필요하다. outbound인터넷을 하려면 nat게이트웨이가 필요할텐데, nat게이트웨이는 public한 subnet에 구성되어야 한다. 즉, public서브넷이 구성 가능한 VPC와 내부 private VPC와의 연동이 필요하다는 것이다. 여기서는 Transit Gateway를 사용할 것이다.
이와 관련된 AWS공식 문서가 있으니, 시간적 여유가 있다면 공식문서를 꼼꼼히 읽어보고 시간이 없다면 이글에서 간단히 어떻게 구축하는 것인지 참고용으로 보면 되겠다. 참고)공식문서
우리가 구성하고자 하는 아키텍처의 구성은 아래와 같다.
언뜻 복잡해 보이지만, 위에서 말한바와 같이 인터넷이 가능한 VPC와 내부VPC 2개의 구성에서 어떻게 내부VPC가 인터넷을 사용할수 있게 하느냐는 것이 핵심이다. 앞으로 편하게 외부VPC, 내부VPC로 부르도록하겠다.
네트워크 구성 절차를 외부VPC와 내부VPC로 나눠 글로 설명하도록 하겠다.
외부용VPC 세팅
1)VPC생성
2)public/private용 2개의 서브넷 및 서브넷 각각의 라우팅테이블생성
3)igw생성 후 public 서브넷 라우팅테이블에 연결
4)EIP생성 및 EIP를 할당한 nat게이트웨이 생성
5)private 서브넷의 라우팅테이블에 0.0.0.0/0 의 경우 nat로 향하도록 세팅
내부VPC 세팅
1)VPC생성
2)private용 서브넷 생성 및 라우팅테이블생성
3)Transit Gateway생성
4)외부용VPC, 내부VPC 용 Transit Gateway Attachment ID 각각 생성
5)Transit Gateway 라우팅테이블 생성 후 0.0.0.0/0의 경우 외부용VPC tgw 연결 ID로 향하도록 라우팅 설정
6)2번에서 생성한 private용 서브넷의 라우팅테이블에서 0.0.0.0/0의 경우 tgw를 향하도록 설정
위와 같이 내부VPC를 세팅하게 되면, 내부VPC에서 발생하는 외부로의 트래픽의 경우 라우팅테이블을 통해 tgw로 향하게 되고, tgw의 라우팅테이블에 매핑된 외부VPC로 해당 트래픽이 전달되게 된다. 해당 트래픽은 외부VPC의 private서브넷으로 향하게 될 것인데, 해당 private라우팅테이블에 의해 nat게이트웨이로 트래픽이 전송되어 외부로의 인터넷이 가능하게 된다.
'프로그래밍 > devops' 카테고리의 다른 글
eks 컨테이너 배포 및 라우팅 절차 (0) | 2023.07.19 |
---|---|
AWS NLB를 활용한 private VPC 구성 (0) | 2023.02.24 |
ecs를 통한 컨테이너 배포와 alb health check (0) | 2023.02.20 |
git conflict 해결 - 명령어와 github UI (0) | 2023.01.29 |
git merge, rebase, squash 차이 (0) | 2023.01.29 |