Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
이전 글에서는 VPC 간의 Peering을 해보았다.
VPC 피어링은 적은 개수의 VPC 간에는 세팅이 수월하다.
하지만 전이적 피어링을 지원하지 않기 때문에, VPC가 수십, 수백 개로 늘어나면 관리가 불가능할 정도로 피어링이 늘어난다.
따라서 Transit Gateway를 통해 중앙 집중형으로 피어링을 관리할 수 있다.
모두 동일한 라우팅 테이블을 적용할 수도 있지만, VPC 마다 다른 라우팅 테이블을 적용시킬 수 있다.
예를 들어 VPC1과 2는 외부의 트래픽을 VPC 3로 보내고, VPC3에서만 IGW의 경로를 세팅해주면,
하나의 IGW로 모든 트래픽을 외부로 보내는 관리를 할 수 있다.
이제 Transit Gateway를 사용해서 다음과 같이 두 개의 리전 사이에 5개의 VPC를 연결해 보자.
일단은 각 리전에 Transit Gateway가 없기 때문에, VPC에 있는 EC2로 ping이 가지 않는다.
이제 리전 A에서 Transit Gateway를 생성해 보자.
Transit Gateway 생성
라우팅 테이블을 직접 새팅해볼 것이므로 아래 세팅은 disable 해주자.
이대로 TGW는 생성하고, TGW의 Attachment를 생성해 보자.
생성한 게이트웨이를 선택하고 연결할 VPC를 선택한다.
이것을 vpc b, c, d도 생성을 반복한다.
이제 연결 흐름을 세팅하기 위해서 TGW에서 사용하는 라우팅 테이블을 생성하자.
별다른 설정 없이 생성하고,
생성한 라우팅 테이블을 Transit gateway attachment에 연결하자.
attachment 한 VPC들을 모두 연결해 주자.
이제 경로 전파를 생성한다.
전파를 추가하면 연결에서 대상 Transit Gateway 라우팅 테이블로 경로가 전파될 수 있다. 연결은 여러 라우팅 테이블로 전파할 수 있습니다.
이 또한 4가지 VPC에서 모두 진행한다.
이제 경로가 모두 생성되었다.
전파 기능을 통해 attach 된 VPC 정보를 각각의 VPC의 라우팅 테이블에 세팅해주지 않더라도,
TGW의 라우팅 테이블을 자동으로 등록하게 된다.
VPC 라우팅 테이블 업데이트
Transit Gateway를 대상으로 가리키도록 각 VPC의 서브넷에 대한 경로를 추가합니다. 이렇게 하면 로컬 서브넷이 아닌 프라이빗 서브넷으로 향하는 모든 트래픽이 Transit Gateway로 라우팅 됩니다.
10.0.0.0/8 대역(자신의 10.1.0.0/16이 아닌 VPC 들의 대역)은 transit GW로 보내도록 설정한다.
이를 모든 VPC의 라우팅 테이블에 세팅한다.
이제 같은 리전의 VPC A, B, CD 인스턴스에게 핑이 간다.
다른 리전의 TGW 세팅
TGW는 리전 단위의 리소스이기 때문에 다른 리전의 VPC는 해당 리전의 TGW를 생성해서,
TGW 간의 피어링을 진행하면 된다.
연결할 다른 리전에도 TGW를 생성해 주자.
이를 원래 리전의 TGW와 피어링 하자. (원래 리전에서 새로운 리전과 피어링을 진행)
이 또한 attachment로 생성한다.
연결 유형이 Peering Connection이어야 한다.
피어링 대상의 리전과 TGW ID를 입력해 주고 생성한다.
새로운 리전에서 attachment에서 피어링 요청을 수락한다.
이제 라우팅 테이블의 연결이 필요한다.
Region A의 TGW를 연결한다.
0.0.0.0/0 대상은 Region A의 TGW로 보내주도록 정적인 경로를 생성해 주자.
기존에 존재하는 경로를 대체한다.
Region B의 VPC E가 TGW 사용하도록 설정한다.
이제 Resion B에서 Resion A로 도달할 수 있지만, Resion A의 TGW에서는 Resion B의 VPC E에 대한 정보를 못 든다.
따라서 Resion A의 TGW에서는 새로운 TGW와 연결을 생성한다.
Resion A의 TGW 에서 VPC E에 대한 정적 경로를 생성해 준다.
이제 Resion A의 VPC A에서 Resion B의 VPC E로 연결이 된다.
TGW 블랙홀 만들기
VPC를 연결하더라도 특정 자원으로의 접근은 차단하고 싶을 수 있다.
이럴 때는 블랙홀 기능을 사용해서 해당 경로의 패킷을 TGW에서 드롭시킬 수 있다.
10.4.4.0/24도 동일하게 블랙홀 처리하자.
이제 해당 대역의 연결이 차단된다.
Network Manger로 VPC 연결 시각화
VPC의 연결이 굉장히 많아지면, 도달성을 확인하기 힘들어진다.
Network Manger를 통해서 연결된 VPC를 시각화할 수 있고, VPC 간의 도달성도 확인할 수 있다.
VPC의 맨 아래에 있는 Network Manger에 들어간다.
이대로 생성한다.
VPC 내부의 인스턴스의 도달성 확인
도달성이 확인되었다.
이외에도 시각적인 연결성도 확인이 된다.
'Cloud > AWS' 카테고리의 다른 글
AWS CloudFront로 동적 페이지 제공하기 (0) | 2024.04.02 |
---|---|
AWS Database Migration Service (DMS)로 MySQL 마이그레이션하기 (1) | 2024.04.01 |
AWS DataSync & Storage Gateway로 하이브리드 환경 구성 (0) | 2024.03.28 |
AWS VPC 엔드포인트로 S3와 Session Manager 연결 (0) | 2024.03.28 |
AWS EC2로 NAT instance 만들어서 사용하기 (0) | 2024.03.27 |