아마존 클라우드

[클라우드] Amazon Transit Gateway

트리스탄1234 2023. 9. 12. 05:24
728x90
반응형

이번 포스팅에서는 Amazon의 Transit gatewat의 사용법에 대해서 포스팅 해보겠습니다. 
기본적으로 VPC을 생성을 하고 추가 설정을 해주지 않으면 VPC간의 통신은 불가능하게 설정이 됩니다.
 
이런 VPC간의 통신이 가능하게 해주는 솔루션으로  VPC Peering과  Transit Gatewat가 있습니다. 
오늘 포스팅은 이중 Transit gateway의 설정 방법에 대해서 알아 보도록 하겠습니다. 
 
전체 적인 네트워크 다이어 그램은 아래와 같습니다. 

 

AWS Transit Gateway

 Transit Gateway는 중앙 허브와 같이  여러 VPC 및 온프레미스 네트워크를 허브의 역활로 연결을 해줍니다. 
이렇게 하면 네트워크를 단순화하고 복잡한 피어링 관계를 간단하게 만들어 주는 효과가 있습니다.  
 
AWS Transit Gateway에는 일반 VPC 라우팅 테이블(VPC 피어링 및 AWS Transit Gateway에서 모두 사용) 외에도 자체 라우팅 테이블이 있어 라우팅을 좀더 유연하게 할수 있습니다.  AWS Transit Gateway 라우팅 테이블을 사용하면 여러 라우팅 테이블을 생성하고 Amazon VPC 및 기타 네트워크 연결(예: VPN 및 Amazon Direct Connect)과 연결하여 네트워크를 세분화할 수 있습니다.
 
그럼 이제 Transit gateway를 사용하는 방법에 대해서 알아 보겠습니다.

반응형
Transit Gateway 사용하기. 

AWS Transit Gateway는 VPC와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 네트워크 전송 허브입니다. 이 태스크에서는 AWS Transit Gateway를 통해 3개의 VPC를 연결을 해보겠습니다. 
 
우선 Transit Gateway를 사용하기 위해서 기존에 연결 하였던 VPC Peering을 아래의 절차에 따라서 제거를 합니다. 
우선 오레곤 리즌의 브라우저에서 VPC를 검색 후 화면 오른쪽의 피어링 연결을 클릭을 합니다. 

VPC1-VPC3-Peering을 선택 하고 작업 드랍다운 메뉴를 클릭 후 화면과 같이 피어링 연결 해제를 클릭 합니다. 

위의 화면과 같이 관련 라우팅 테이블 항목 삭제를 클릭 하고, 삭제를 입력 후 삭제 버튼을 클릭을 합니다. 
남아 있는 vpc1-vpc2, vpc2-vpc3도 같은 방법으로 모두 연결을 해제 합니다. 
 
아래는 Transit gateway를 이용해 구성 하려는 네트워크 다이어 그램 입니다. 

관련 주요 용어들을 살펴 보면 아래와 같습니다. 
Attachment: Transit Gateway와 연결될 수 있는 네트워크 리소스(예: VPC, 다른 Transit Gateway와의 피어링 연결, AWS Direct Connect)
 
Association: 각 Attachment는 정확히 하나의 라우팅 테이블과 연결됩니다. 각 라우팅 테이블은 0개 이상의 Attachment와 연결될 수 있습니다.
 
Transit Gateway 라우팅 테이블: Transit Gateway에는 기본 라우팅 테이블이 있으며, 다른 라우팅 테이블도 선택적으로 포함할 수 있습니다. 라우팅 테이블에는 패킷의 대상 IP 주소에 따라 다음 홉을 결정하는 동적 및 정적 경로가 포함되어 있습니다. 이러한 경로의 대상은 모든 Transit Gateway Attachment일 수 있습니다. 기본적으로 Transit Gateway Attachment는 기본 Transit Gateway 라우팅 테이블과 연결됩니다. 
 
경로 전파: VPC, VPN 연결 또는 Direct Connect 게이트웨이는 경로를 Transit Gateway 라우팅 테이블로 동적으로 전파할 수 있습니다. VPC를 사용하는 경우 Transit Gateway로 트래픽을 보내기 위해 정적 경로를 생성해야 합니다. 피어링 연결(2개의 Transit Gateway 간 피어링)을 사용하는 경우, 피어링 연결을 가리키도록 Transit Gateway 라우팅 테이블에 고정 경로를 생성해야 합니다.
 
오레곤 리즌의 브라우저에서 VPC를 검색 후 클릭 합니다. 아래 화면과 같이 Transit gateway를 클릭 하고 transit gateway 생성을 클릭 합니다. 

아래 화면과 같이 설정후 Transit gateway 생성을 클릭 합니다. 

생성을 클릭 하면 아래 화면과 같이 transit gateway가 보여 집니다. 상태가 available로 변경 될때가지 기다립니다. 
Transit Gateway ID를 별도의 메모장에 복사를 해 둡니다. 여기서 asn 번호는 오레곤과 오하이오가 달라야 합니다.
오레곤의 ASN 64513, 오하이오의 ASN은 64513으로 입력 합니다. 

오하이오 리즌의 브라우저로 이동후 위와 같이 vpc를 검색 하고 transit gateway를 클릭 후 생성을 클릭한 다음 아래 값과 같이 입력 하고 생성을 클릭 합니다. 

transit gateway가 available로 변할때까지 대기 합니다. transit gateway id를 별도의 메모장에 복사해 둡니다. 

 AWS Transit Gateway Attachments 구성

Transit Gateway Attachment는 패킷의 원본이자 대상입니다. VPC, VPN, AWS Direct Connect 또는 Transit Gateway 피어링 연결을 연결(Attach)할 수 있습니다. 여기서는 아래의 2가지의 attachment를 이용 해보겠습니다. 

  • VPC Attachment
  • Transit Gateway 피어링 연결

VPC Attachment는 Transit Gateway가 VPC와 패킷을 주고받을 수 있도록 라우팅이 가능하게 해줍니다.
 Transit Gateway peering attachment는 Transit Gateway 간 라우팅을 가능하게 해줍니다.  Transit Gateway를 사용하여 여러 리전으로 트래픽을 라우팅할 때 Transit Gateway 피어링 연결 Attachment가 필요합니다.
 
오레곤 리즌의 브라우저에서 VPC를 검색 후 transit gateway 연결을 클릭 하고 transit gateway attachment 생성을 클릭 합니다. 

 
아래 그림과 같이 각 정보를 입력한 후 생성 버튼을 클릭 합니다. 
이름 태그 : 원하는 이름을 입력 합니다. 
transit gatewat id: 오레곤 리즌에서 만든 transit garteway id를 입력 합니다. 
연결 유형 : 오레곤 지역의 vpc1을 연결을 하므로 VPC를 선택 합니다. 
VPC ID: 오레곤 VPC1번을 선택을 하고 하위에 속해 있는 Public, Private subnet을 모두 선택을 합니다. 

위의 절차를 반복해서 오레곤 VPC2를 Transit gateway에 연결 하기위해 아래와 같이 값을 입력 후 생성 버튼을 클릭 합니다. 

그럼 이제 아래 그림과 같이 오레곤 리즌의 transit gateway에 2개의 vpc가 연결이 되었습니다. 

이제 오하이오 리즌의 브라우저로 이동하여 vpc3를 오하이오 transit gateway에 연결을 합니다. 

위와 같이 값을 입력 후 생성 버튼을 클릭 합니다. 
이제 오하이오 transit gateway에 vpc 3가 연결이 되었습니다. 그럼 이제 오하이오와 오레곤의 transit gateway간 peering을 생성하고 연결을 합니다. 
 
오하이오 리즌의 브라우저에서 vpc를 검색 후 화면 왼족과 같이 transit gateway연결을 클릭 하고 화면 오른쪽의 생성 버튼을 클릭 합니다. 

 
아래의 정보를 입력 후 생성 버튼을 클릭 합니다.
이름 : 입력 하고 싶은 값을 입력 합니다. 
transit gateway id : 오레곤 tgw를 선택 합니다. 
연결 정보 : transit gateway간 연결이므로 peering connection을 선택 합니다. 
피어링 연결: 연결할 transit gateway의 정보를 입력 합니다. 
   - 대상이 내계정에서 생성을 했으면 내계정을 클릭 합니다. 
   - 리전 : 연결한힐 리즌을 선택 합니다. 
   -transit gateway id: 연결할 tgw의 id를 입력 합니다. 

이제 오하이오 리즌의 브라우저로 돌아가 Transit gatewat 연결을 클릭을 하면 오레곤에서 요청한 Peering 상태가 Pending상태로 아래와 같이 보입니다. 

아래와 같이 이름 부분의 편집 버튼을 클릭 하고 원하는 이름을 입력 하고 저장 버튼을 클릭 합니다. 

아래 그림과 같이 작업 드랍 다운 버튼을 클릭 하고 transit gateway attachment 수락을 클릭 합니다. 

그럼 이제 아래와 같이 상태가 available로 바뀔때 까지 대기 합니다. 

AWS Transit Gateway 연결을 통한 네트워크 트래픽 라우팅 구성

VPC를 Transit Gateway에 연결(Attachment)할 때 Transit Gateway를 통해 라우팅할 트래픽에 대한 경로 항목을 VPC 라우팅 테이블에 추가해야 됩니다. 
 
그리고  Transit Gateway를 피어링할 때는 트래픽이 피어 간에 라우팅될 수 있도록 Transit Gateway 라우팅 테이블에 정적 경로 항목을 추가해야 합니다.
 
우선 VPC 1에서 라우팅 테이블을 구성 합니다.  오레곤 브라우저에서 vpc를 검색 하고 VPC를 클릭 합니다. 
왼쪽 메뉴에서 라우팅 테이블을 클릭 합니다. 그리고 화면 오른쪽의 라우팅 편집을 클릭 합니다.

10.0.0.0/8에 대상을 Transitgateway를 선택을 하고

오레곤 지역의 tgw를 선택을 하고 변경 사항 저장을 클릭 합니다. 

다시 라우팅 테이블을 클릭을 하고 vpc1-public-routetable을 클릭을 하고 라우팅텝을 클릭을 한후 라우팅 편집 버튼을 클릭 합니다. 

10.0.0.0/8을 입력 하고 대상에 tgw를 선택 후 vpc1-attachment를 선택 합니다. 그리고 변경사항을 클릭 합니다. 

이제 VPC2에서도 위와 같은 과정을 통해서 Private와 Public 라우팅 테이블에 각각 10.0.0.0/8에 대상은 tgw에 vpc2-attachment를 선택 하고 저장을 해줍니다. 

위의 화면은 vpc2 public routing table에 추가를 하고난 다음 테이블 입니다. 인터넷으로 가는 디폴트 경로는 인터넷 게이트웨이로 설정이 되어 있고 10.0.0.0으로 가는 경로는 transit gateway로 잡혀 있습니다. 
 
이제 VPC2의 라우팅 테이블도 동일한 방식으로 오하이오 웹 브라우저를 통해 설정을 합니다. 

위의 화면은 오하이오 VPC3의 라우팅 테이블 입니다. 그림과 같이 10.0.0.0/8을 VPC3-attachment를 연결을 해주는 라우팅 테이블을 추가 하고 변경사항 저장 버튼을 클릭 합니다. 
 
세 VPC 모두에서 VPC 라우팅 테이블 구성을 완료를 했도 다음으로 Transit Gateway 라우팅 테이블을 구성해보겠습니다. 
기존 네트워크에서 하나의 네트워크 시스템에서  여러 가상 네트워크 또는 라우팅 도메인을 생성하는 데 가상 경로 전달(VRF)이 사용이 됩니다. 
 
AWS Transit Gateway 에서 VRF 기능을 활용하려면 여러 라우팅 테이블을 사용 하고  Transit Gateway 내에 추가 라우팅 테이블을 생성할 수 있습니다. 여러개의 추가 라우팅 테이블을 만들어 VRF를 통해 마치 격리된 네트워크를 만들 수 있는 기능을 제공 합니다.  그럼 한번 만들어 보도록 하겠습니다. 
 

TRANSIT GATEWAY 라우팅 테이블 구성

오하이오 브라우저에서 왼족 메뉴창에서 TRANSIT GATEWAY 라우팅 테이블을 클릭 합니다. 

TRANSIT GATEWAY 라우팅 테이블 생성을 클릭 합니다. 

위와 같이 라우팅 테이블 이름을 입력을 하고 TGW를 오하이오 TGW를 선택을 한후 Transit gateway라우팅 테이블 생성 버튼을 클릭 합니다. 'Ohio-Oregon-peering-route-table’은 이후 단계에서 Transit Gateway peering attachment와 연결됩니다. 
 
다시 transit gateway 라우팅 테이블 생성 버튼을 클릭을 하고 이름은 'vpc3-tgw-Route-Table"로 주고 transit gateway에 Ohio-TGW를 선택 하고 생성 버튼을 클릭 합니다. 
 
이제 오레곤 지역 브라우저로 돌아가서 이름이 'Oregon-Ohio-peering-route-table'인 Transit wateway 라우팅 테이블과 'vpc1-tgw-Route-Table'과 ''vpc2-tgw-Route-Table''인 라우팅 테이블을 오하이오 지역에서 수행했던 과정과 동일하게 수행하여 2개의 transit gateway 라우팅 테이블을 생성 합니다. 
 
이제 오하이오에는 2개의 transit routing table과 오레곤에는 3개의 transit gateway routing table이 생성 되었습니다. 
다음으로 각 attachment를 Transit Gateway 라우팅 테이블과 '연결(Associate)'하면 실제로 'Association’이 생성됩니다. 
 
'Association’은 라우팅 테이블이 네트워크 트래픽을 Attachment로 라우팅할 수 있도록 해 줍니다. 
‘VPC Attachment’를 연결(Associate)하는 경우 경로를 Transit Gateway 라우팅 테이블에 동적으로 전파할 수 있습니다.
 
‘피어링 연결’을 연결(Associate)하는 경우 피어링 Attachment를 가리키도록 Transit Gateway 라우팅 테이블에 고정 경로를 생성해야 합니다.
 

TRANSIT GATEWAY ASSOCIATION 및 경로 전파 구성

 
이제 association을 설정 하고 경로를 전파 하기 위해서 오레곤 지역의 브라우저에서 transit gateway routing table에서 
아래 그림과 같이 'Oregon-Ohio-peering-route-table'dmf'을 선택 하고 액션 버튼을 클릭 후 연결 생성을 클릭 합니다. 

아래 그림과 같이 앞서 만든 Peer-Ohio-attahment Peering을 선택을 하고 연결 생성을 클릭 합니다. 

'Oregon-Ohio-peering-route-table' 테이블을 선택 후 전파 텝을 클릭 하고 전파 생성버튼을 클릭 합니다. 

그럼 이제 Transit gateway table에 전파할 vpc1-attachment를 아래 그림과 같이 선택 하고 전파 생성을 클릭 합니다. 

그럼 이제 vpc2-attachment도 transit gateway 라우팅 테이블을 통해 전파 하기 위해 위의 과정을 반복하고 전파할 연결 선택에 vpc2-attachment를 선택 하고 전파 생성을 클릭 합니다. 

경로 텝을 클릭을 해보면 VPC1과 VPC2의 라우팅 테이블이 있는것을 볼수 있습니다. 
오하이오 리전의 피어링 연결을 위한 고정 경로를 아래와 같이 추가하기 위해서 위의 화면 오른쪽에 있는 정적 경로 생성을 클릭 합니다. 

위의 그림과 같이 cidr에 오하이오의 VPC3의 조소를 입력 하고 유형에 활성을 클릭 한후 연결 선택에 Peer-with -Ohio를 선택을 하고 정적 경로 생성 버튼을 클릭 합니다. 

위의 그림과 같이 vpc1-tgw-routing-table을 클릭을 하고 액션 버튼을 클릭 후 연결 생성을 클릭 합니다. 

연결할 연결 선택에 vpc1-attachment를 선택 하고 연결 생성을 클릭 합니다. 
전파 텝을 클릭 하고 전파 생성을 클릭 합니다. 

이번에는  vpc2를 선택을 하고 전파 생성을 클릭 합니다. 
그리고 아래 그림 처럼 경로 텝을 클릭을 하면 VPC1과 VPC2의 경로가 포함이 되어 있습니다. 

위에 보이는 2개의 경로를 라우팅 광고를 통해 전파 됩니다.  이제 오하이오 피어링 연결을 위해 위의 화면에서 오른쪽의 정적 경로 생성을 클릭 합니다. 아래와 같이 설정을 한후 정적 경로 생성 버튼을 클릭 합니다. 

vpc1-tgw-Route-Table에는 총 3개의 경로 항목이 있습니다.

이제 위의 과정을 vpc2-route-table을 선택 한후 반복 합니다.
 
이제 오하이오 리전에서 경로 전파를 위해 아래 과정을 진행 합니다.  오하이오 브라우저에서 transit gateway table을 클릭 합니다. 'Ohio-Oregon-peering-route-table'을 클릭하고 연결 텝을 클릭 후 연결 생성을 클릭 합니다. 

그리고 아래 그림 처럼 연결한 연결 선택에서 Peer-with-Oregon을 선택한 후 연결 생성을 클릭 합니다. 

아래 그림 처럼 전파텝을 클릭 하고 전파 생성 버튼을 클릭 합니다. 

그리고 아래 그럼 처럼 vpc3 attachment를 선택 하고 생성 버튼을 클릭 합니다. 

이제 경로 텝을 클릭해 보면 vpc3의 cidr이 포함되어 있는 것을 확인할 수 있습니다. 

이제 오레곤 지역을 위해 위의 화면에서 정적 경로 생성 버튼을 클릭 하고 아래와 같이 입력 후 생성 버튼을 클릭 합니다. 

이제 vpc3 라우팅 테이블을 클릭 하고 작업 버튼에서 연결 생성을 클릭 합니다. 

이제 아래와 같이 선택 후 생성 버튼을 클릭 합니다. 

전파 텝을 클릭 후 전파 생성 버튼을 아래 그림과 같이 클릭 합니다.  전파 생성에 vpc3를 선택 하고 생성 버튼을 클릭 합니다.

오레곤 지역을 위한 정적 경로를 생성하기 위해 아래 그럼 처럼 정적 경로 생성 버튼을 클릭 합니다. 

아래와 같이 정보를 입력 후 정적 경로 생성 버튼을 클릭 합니다. 
 

이제 모든 구성이 완료 되었습니다. vpc Peering에서 테스트 방법 처럼 각 VPC의 EC2에서 타 VPC의 EC2로 icmp ping test를 진행 합니다. 
 

AWS Transit Gateway 연결에서 네트워크 트래픽 제어

VPC Peering Test에서 처럼 Transit Gateway 라우팅 테이블을 이용해 네트워크 트래픽을 제어를 할 수 있습니다. 
vpc1 퍼블릭 서브넷과 vpc3 프라이빗 서브넷 간의 연결을 제외한 모든 서브넷의 리소스 간에 네트워크 연결이 허용 되는 경우를 설정해 보겠습니다.  연결이 되지 않아야 하는 경로는 아래와 같습니다. 

  • vpc1-public-ec2와 vpc3-private-ec2

리소스 간의 연결을 제한하는 방법은 여러가지가 있습니다. VPC 라우팅 테이블, 네트워크 ACL 또는 EC2 보안 그룹을 사용할 수 있습니다.  여기서는  Transit Gateway 라우팅 테이블이 Transit Gateway의 VRF 기능을 활용하도록 구성되었습니다.
 
다른 라우팅 테이블의 라우팅 인스턴스에 영향을 주지 않고 특정 라우팅 테이블을 변경할 수 있습니다.
vpc1에 연결(Attach)된 Transit Gateway 라우팅 테이블을 구성하고, vpc3 퍼블릭 서브넷 CIDR(10.30.50.0/24)을 허용하고, 10.30.0.0/16 CIDR을 제거를 하면 위의 예에서 처럼 라우팅 트래픽을 제어를 할 수 있습니다. 
 
우선 오레곤 리전의 브라우저에서 vpc를 검색 후 클릭 하고 transit gateway route table을 클릭 하고 vpc1-tgw-route-table을 클릭 합니다. 

 그리고 아래 그럼 처럼 route 텝을 선택 후 10.30.0.0/16(vpc3 CIDR) 선택한 후 action을 클릭 하고 정적 경로 삭제를 클릭 합니다. 

삭제 후 아래 그럼 처럼 정적 경로 생성을 클릭을 합니다. 

경로 생성에서 vpc3의 cidr을 입력 하고 peer-with를 선택 하고 정적 경로 생성 버튼을 클릭 합니다.
그럼 이제 vpc3의 private로 가는 경로가 없기 때문에 vpc1에서 vpc3의 pritvate로 가는 경로를 막히게 됩니다. 

728x90
반응형