본문 바로가기
AWS/AWS Cloud School

[AWS] Transit Gateway 구성

by parkkingcar 2023. 11. 30.

 

여러 수준의 복잡성으로 Transit Gateway를 통해 라우팅을 구축 및 구성합니다. Transit Gateway는 동일한 계정 내 혹은 서로 다른 계정 간 attachment(VPC 및 VPN)를 상호 연결하는 네트워크 전송 허브입니다. 실습을 통해 아래 내용을 확인 할 수 있습니다.

 

- Transit Gateway 구성 

- Transit Gateway에 VPC 연결 

- AWS Transit Gateway로 라우팅 제어 및 사용자 지정 

- 두 리전 간 Transit Gateway 피어링 

 

 

아래 다이어그램은 이 실습을 위해 프로비저닝된 리소스 환경입니다. 같은 리전의 다른 4개의 VPC에 각각 EC2인스턴스가 실행중입니다. Transit Gateway에 연결하지 않아 통신이 불가능한 상태입니다.

 

 

먼저 콘솔 상단 검색창에서 EC2를 검색하고 선택합니다. 

 

 

좌측 인스턴스 탭을 클릭한 후 실행중인 4개의 인스턴스 중 Command Host 인스턴스를 선택하고 연결을 클릭합니다.

 

 

 

Session Manager탭을 클릭하고 연결을 클릭합니다.

 

 

실행된 터미널에 호스트 B, C, D에 ICMP 프로토콜을 이용하여 테스트합니다. 각 인스턴스마다 프라이빗 IP 주소의 ping을 테스트합니다. 통신이 불가능한 것을 확인했습니다.

 

 

이제 프라이머리 리전에 Transit Gateway를 만든 후 각 VPC의 인스턴스를 연결합니다. 먼저 콘솔 상단 검색창에서 VPC를 검색하고 클릭합니다.

 

 

왼쪽 탐색 창에서 Transit gateway를 클릭하고, Transit Gateway 생성을 클릭합니다.

 

 

 

이름 태그를 입력하고 ASN에 65001을 입력합니다. 이 번호는 경계 게이트웨이 프로토콜(BGP) 세션의 AWS 측에 대한 ASN이어야 합니다. 16비트 ASN의 경우 범위는 64512~65534입니다. 아래의 기본구성과 다르게 DNS 지원만 선택하여 나머지 구성은 그대로 Transit Gateway 생성을 클릭합니다.

 

 

Transit gateway가 성공적으로 생성되었으면, 연결을 위해 Transit Gateway attachment을 생성합니다. 좌측에서 Transit gateway attachment을 선택한 후 Transit gateway attachment 생성을 클릭합니다.

 

 

네임태그를 입력하고 생성한 Transit Gateway 의 Transit Gateway ID를 선택하고 연결 유형을 VPC로 선택합니다. 아래 VPC ID에서 vpc-a를 선택하고 Transit Gateway Attachment 생성을 클릭합니다. vpc-b, vpc-c, vpc-d에 대해서도 동일하게 생성합니다.

 

 

이번에는 Transit Gateway 라우팅 테이블을 사용하여 Transit Gateway attachment의 라우팅을 구성합니다. 라우팅 테이블은 연결된 모든 attachment의 트래픽 흐름 방식을 제어합니다. 좌측의 Transit Gateway 라우팅 테이블을 선택하고 Transit Gateway 라우팅 테이블 생성을 클릭합니다.

 

 

 

이름 태그를 입력하고 생성한 Transit Gateway의 Transit Gateway ID를 선택하고 Transit Gateway 라우팅 테이블 생성을 클릭합니다.

 

 

 

생성한 Transit Gateway 라우팅 테이블을 선택하고 아래 연결 탭을 클릭하고 연결 생성을 클릭합니다. 

 

 

연결할 연결 선택에 이름 태그가 vpc-a인 Attachment ID를 선택하고 연결 생성을 클릭합니다. vpc-b, vpc-c, vpc-d에 대해서도 동일하게 생성합니다.

 

 

이번에는 전파를 생성합니다. 경로 전파를 사용하여 라우팅 테이블의 경로를 attachment에 추가합니다. 경로 전파를 추가하면 attachment에서 대상 Transit Gateway 라우팅 테이블로 경로를 전파할 수 있습니다. 전파탭에서 전파 생성을 클릭합니다.

 

전파할 연결 선택에서 이름 태그가 vpc-a인 Attachment ID를 선택하고 전파 생성을 클릭합니다. vpc-b, vpc-c, vpc-d에 대해서도 동일하게 생성합니다.

 

이번에는 VPC 라우팅 테이블을 업데이트 합니다. Transit Gateway를 대상으로 가리키도록 각 VPC의 서브넷에 대한 경로를 추가합니다. 이렇게 하면 로컬 서브넷이 아닌 프라이빗 서브넷으로 향하는 모든 트래픽이 Transit Gateway로 라우팅됩니다. 좌측의 라우팅테이블을 클릭하고 vpc_a-public인 라우팅 테이블을 선택합니다. 좌측 상단의 작업에서 라우팅 편집을 클릭합니다.

 

 

라우팅 추가를 클릭하여 대상을 10.0.0.0/8로 입력하고 Transit Gateway를 클릭하여 생성한 Transit Gateway를 선택합니다. 이후 변경 사항 저장을 클릭합니다. 

 

위 과정을 반복하여 각 경로마다 동일한 대상을 사용해 vpc_b-private, vpc_c-private 및 vpc_d-private 라우팅 테이블에 이 경로를 추가합니다. 이후 Session Manager로 연결한 터미널 탭으로 돌아옵니다. vpc-a에서 각 vpc의 인스턴스에 ping 명령이 잘 도달하여 통신이 가능해진 것을 확인합니다.

 

 

그러면 아래와 같은 다이어그램의 구성을 완료했습니다.

 

 

 

이번에는 다른 리전에 인스턴스와 통신하기 위해 원격 리전 Transit Gateway과 프라이머리 리전 Transit Gateway를 피어링하겠습니다. 리전을 원격 리전으로 변경합니다. 이후 콘솔 상단 검색창에서 VPC를 검색하고 클릭합니다.

 

 

좌측에 Transit Gateway를 클릭하고 Transit Gateway ID를 확인하고 따로 기록해둡니다.

 

 

이제 원격 리전 Transit Gateway와의 피어링 연결을 추가합니다. 프라이머리 리전에서 피어링 연결을 구성합니다. 다시 리전을 프라이머리 리전으로 변경합니다.  이후 콘솔 상단 검색창에서 VPC를 검색하고 클릭합니다.

 

 

 

 

좌측에서 Transit gateway attachment을 선택한 후 Transit gateway attachment 생성을 클릭합니다.

 

 

이름 태그를 입력하고 Transit Gateway ID에서 프라이머리 Transit Gateway를 선택합니다. 연결유형은 Peering Connection를 선택합니다. 아래 피어링 연결 섹션에서 내 계정을 선택하고 리전은 원격리전을 선택합니다. Transit gateway (수락자)는 위에서 기록해둔 원격 리전의 Transit Gateway ID를 복사하여 붙여넣습니다. 이후 연결 생성을 클릭합니다.

 

 

대상 Transit Gateway는 피어링 연결 요청을 승인해야 합니다. 이제 프라이머리 리전에서 원격 리전까지의 피어링 연결을 허용합니다. 상단의 리전을 원격 리전으로 변경한 후 피어링을 선택하여 작업에서 수락을 클릭합니다.

 

 

이제  Transit Gateway attachment를 라우팅 테이블에 연결합니다. 이렇게 하면 attachment에서 대상 라우팅 테이블로 트래픽을 전송할 수 있습니다. 좌측의 Transit Gateway 라우팅 테이블을 선택하고 remote-rt 라우팅테이블을 선택하고 연결탭에서 연결 생성을 클릭합니다. 

 

 

연결할 연결 선택에서 peering인 Attachment ID를 선택하고 연결 생성을 클릭합니다.

 

 

이제 피어링 Transit Gateway를 가리키도록 원격 리전 Transit Gateway의 기본 경로를 수정합니다. 이렇게 하면 트래픽을 로컬 서브넷이 아닌 피어링 Transit Gateway로 라우팅할 수 있습니다. 하단 경로 탭을 클릭하고 CIDR이 0.0.0.0/0인 경로를 선택합니다. 작업 메뉴에서 정적 경로 대체를 클릭합니다.

 

유형을 활성으로 선택하고 연결 선택에서 peering인 Attachment ID를 선택하고 정적 경로 대체를 클릭합니다. 블랙홀을 선택하는 경우 해당 CIDR에 트래픽을 필터링할 수 있습니다.

 

 

이제 Transit Gateway를 가리키도록 VPC 라우팅 테이블의 기본 경로를 추가합니다. 이렇게 하면 HostE가 비로컬 트래픽을 Transit Gateway로 보낼 수 있습니다. 좌측에 라우팅 테이블을 클릭하고 vpc_e-private 라우팅 테이블을 선택합니다. 

 

 

라우팅 추가를 클릭하고 대상에 0.0.0.0/0, 원격 리전의 Transit Gateway ID를 복사하여 붙여넣고 변경 사항 저장을 클릭합니다.

 

 

이제 프라이머리 리전의 라우팅 테이블 연결을 업데이트합니다. 리전을 프라이머리 리전으로 변경한 후 좌측의 Transit Gateway 라우팅 테이블에서 해당 라우팅 테이블을 선택하고 연결탭에서 연결 생성을 클릭합니다.

 

 

이름 태그가 remote-vpc-e인 Attachment ID를 선택하고 연결 생성을 클릭합니다.

 

 

 

이제 원격 리전의 VPC E 서브넷을 추가하여 피어링 Transit Gateway association으로 향하도록 정적 라우팅 테이블을 수정합니다. 이렇게 하면 Transit Gateway가 트래픽을 VPC E로 라우팅할 수 있습니다. 경로 탭을 클릭하고 정적 경로 생성을 클릭합니다.

 


CIDR를 10.0.0.0/16으로 입력하고 연결 선택에서 remote-vpc-e인 피어링을 선택하고 정적 경로 생성을 클릭합니다.

 

 

 

이후 Session Manager로 연결한 터미널 탭으로 돌아옵니다. 프라이머리 리전의 vpc-a에서 원격 리전의 vpc-e의 인스턴스에 ping 명령이 잘 도달하여 통신이 가능해진 것을 확인합니다.

 

 

 

최종적으로 아래와 같은 다이어그램의 아키텍쳐를 구성하였습니다.

댓글