아마존 클라우드

[클라우드] VPC Peering 사용하기

트리스탄1234 2023. 9. 10. 07:46
728x90
반응형
VPC 피어링이란

VPC 피어링 연결은 두 VPC 간의 네트워킹 연결로, 프라이빗 IPv4 주소 또는 IPv6 주소를 사용하여 이들 간에 트래픽을 라우팅을 해줍니다.  VPC는 다르지만 마치 같은 네트워크에 있는 것과 같은 환경으로 만들어 줍니다.
자신의 VPC 간 또는 다른 AWS 계정의 VPC와 VPC 피어링 연결을 할수 있고,  서로 다른 리전간에도 Peering이 가능 합니다.  
 
아래는 VPC Peering을 위한 다이어 그램 입니다. 

리전간 VPC Peering 설정

이 단계에서는 VPC 피어링 연결을 사용하여 풀 메시 네트워크 토폴로지를 구성을 합니다.  이 토폴로지는 리전 간 및 리전 내부 VPC 피어링 연결로 구성됩니다. VPC를 만드는 과정은 아래의 글을 참고 하시기 바랍니다. 
https://ppp0183.tistory.com/470

 

[클라우드] Amazon VPC 사용하기

이번 포스팅에서는 Amazon VPC를 생성을 하고, 인터넷에 접속할 수 있는 Public Subnet 1개, Private Subnet 2개를 생성을 하고, WEB Server는 Public에 MySQL RDS는 Private Subnet에서 호스팅을 하고 테스트를 해보겠습

ppp0183.tistory.com

아래 절차는 2개의 개별 AWS 리전에 있는 3개의 Amazon VPC 간에 네트워크 라우팅을 구성합니다. 각 VPC에는 Amazon EC2 인스턴스가 2개 있습니다. EC2 인스턴스를 사용하여 VPC 간의 네트워크 연결을 테스트 해봅시다.

반응형


Amazon 콘솔창에서 VPC를 검색하고 VPC를 클릭을 합니다. 

위의 그림과 같이 피어링 연결을 클릭을 합니다. 아래 그림 처럼 피어링 연결 설정을 클릭 합니다. 

피어링 연결 설정에서 아래와 같이 값들을 입력을 하고 피어링 연결 생성을 클릭을 합니다. 
이름: 기억하기 좋은 값을 입력 합니다.
피어링할 로컬 VPC선택: VPC Peeing을 요청할 VPC를 드랍 다운 메뉴를 클릭 후 선택을 합니다.(요청자)
피어링할 로컬 VPC 선택: VPC Peering 요청을 수락할 대상 VPC를 선택을 합니다. 
    - 내계정 선택 : 대상 VPC가 내 AWS에서 만든 계정인 경우 선택
    - 다른 계정 : VPC가 다른 AWS 계정으로 만들어진 경우 선택
    - VPC 수락자 : Peering을 맺을 대상 VPC를 선택 후 클릭을 합니다. 

그럼 아래 그림과 같이 VPC Peering 요청되었습니다. 다른 메세지가 표시가 됩니다. 

아래 그림과 같이 작업 드롭다운 버튼을 클릭을 하고 요청 수락을 클릭 합니다. 

그럼 아래 그림과 같이 VPC Peering이 설정 되었습니다 라는 메세지가 출력 됩니다. 


여기까지가 오레곤 Region내의 두개의 VPC에서 서로 Peering을 맺었습니다. 
이제 오레곤과 오하이오 Region의 VPC간 Peering을 설정을 해보겠습니다. 

위의 화면과 같이 왼쪽에서 피어링 연결을 클릭 하고 피어링 연결 생성을 클릭 합니다. 
다른 브라우저 창을 하나더 열고. 아래의 주소를 클릭하고 오하이오 AWS Region으로 로그인을 한후 AWS 서비스 콘솔창에서 VPC를 검색을 하고, 아래 그림과 같이 Peering을 할 VPC의 ID를 별도의 메모장에 복사를해 둡니다. 

다시 오레곤 AWS 콘솔창으로 돌아 옵니다. 아래 그림과 같이 값들을 입력을 하고 피어링 연결 생성 버튼을 클릭을 합니다.
이름 :원하는 이름을 입력 합니다. 
피어링할 로컬 VPC 선택: VPC Pering 요청을 생성할 VPC를 선택 합니다. (오레곤 Region)
피어링할 다른 VPC 선택 : 다른 지역에 있는 VPC의 정보를 입력 합니다.
   - 계정: 해당 VPC가 내 계정에서 생성된 경우 '내 계정 생성' 내 계정이 아닌 경우 '다른 계정' 선택
   - 리전 : Peering 하려를 VPC가 오레곤이 아닌 오하이오 Region에 있으므로 다른 리전 선택 후 오하이오 리전 선택
   - VPC ID : 앞서 오하이오 AWS Web에 로그인 하루 복사해 두었던 VPC ID를 입력을 합니다. 

그럼 이제 아래 그림과 같이 Peering이 요청 되었습니다 라는 메세지가 나옵니다. 

이제 오레곤 리전에서 요청한 VPC Peering 요청을 수락 하기 위해서 오하이오 WEB으로 로그인을 하고 VPC를 검색하고클릭 후 화면 왼족의 피어링 연결을 클릭을 합니다. 

피어링 연결을 클릭 하면 위의 화면과 같이 오레곤 리전에서 요청한 VPC Peering 요청 정보가 보입니다. 

위의 그림과 같이 작업 드롭다운 메뉴를 클릭 하고 요청 수락을 클릭 합니다. 그럼 이제 오레곤 리즌의 AWS WEB 브라우저로 돌아 갑니다. 새로고침을 클릭을 하면 아래와 같이 VPC Peering이 Active 상태로 변환이 된것을 확인할 수 있습니다. 

이제 오레곤 리즌의 VPC 2번과 오하이오의 VPC를 아래의 절차에 따라 Peering을 합니다.  오레곤 웹브라우저에서 
왼쪽 하단의 피어링 연결을 클릭 후 화면 우측 상단의 피어링 연결 생성을 클릭 합니다. 


요청 VPC(오레곤 VPC 2)와 수락 VPC(오하이오 VPC)의 정보를 앞에서 진행했던 절차와 같이 입력 후 피어링 연결 생성을 클릭 하고, 요청을 수락 하기 위해 오하이오 리전 브라우저 창으로 돌아 갑니다. 

그럼 오하이오 리전 브라우저 창에서 화면 왼쪽의 피어링 연결을 클릭 하면, 위의 그림와 같이 조금전에 요청한 내용을 볼수 있습니다. 해당 요청을 클릭 한 후 위의 그림와 같이 작업 드랍 다운 메뉴에서 요청 수락을 클릭을 합니다. 

오레곤 리즌 브라우저 창으로 돌아와 새로 고침을 클릭을 하면 위의 화면과 같이 Peering 연결이 Active상태로 변경된 것을 확인할 수 있습니다.  이제 세 VPC간 Full Mesh를 구성을 완료 하였습니다. 

Peering 라우팅 테이블 설정

이제 Full mesh구조로 연결된 VPC간의 트래픽을 보내기 위해 라우팅 테이블을 설정을 해보겠습니다. 
라우팅 테이블에는 사용자 지정 라우팅 테이블과,  기본 라우팅 테이블이 있습니다. 기본 라우팅 테이블은 VPC내의 별도의 라우팅 테이블과 연결되지 않은 서브넷을 정의하는 라우팅 테이블 입니다. 

위의 화면과 같이 라우팅 테이블을 클릭 후 VPC1-PRIVATE-ROUTETABLE을 클릭을 하고 라우팅 텝을 클릭을 합니다.

vpc1-private-routetable은 VPC1의 Private 서브넷에서 사용을 하는 라우팅 테이블 입니다. 

위의 화면과 같이 2개의 라우팅 테이블이 존재를 하는데, 10.10.0.0/16은 기본 항목이고 이 라우팅 테이블은 VPC내의 모든 서브넷간 통신이 가능하게 해줍니다. 같은 VLAN에 있게 해주는 라우팅 테이블이라고 생각을 하면 될것 같습니다.
두번째 라우팅 테이블을 로컬이 아닌 다른 모든 트래픽은 nat gatewat로 보내는 라우팅 테이블 입니다. 
 
이제 라우팅 테이블을 추가 하기 위해 위의 화면 오른족 상단의 '라우팅 편집'버튼을 클릭 합니다.

라우팅 추가 버튼을 클릭을 하고 VPC3의 CIDR을(10.30.0.0/16) 입력 후 대상에서 피어링 연결을 선택을 하고 앞서 만들었던 vpc1-vpc3피어링을 선택을 합니다. 
 
라우팅 추가 버튼을 다시 클릭 후 VPC2의 CIDR을(10.20.0.0/16)을 입력 후 대상에서 피어링 연결을 선택 하고 앞서 만들었던 vpc1-vp2 peering을 선택을 합고 변경 사항 저장 버튼을 클릭을 합니다. 

그럼 이제 위의 그림처럼 라우팅 테이블이 추가가 된것을 확인할 수 있습니다. 그럼 이제 VPC1의 Private 서브넷에서 VPC 3로 경로가 연결이 됩니다. 

이제 다시 화면 왼쪽의 라우팅 테이블을 클릭을 하고 화면과 같이 VPC1-PUBLIC-ROUTETABLE을 선택을 하고 라우팅 텝을 클릭을 합니다. 

Private 라우팅 테이블과 같이 2개의 항목이 있는데, 10.10.0.0/16은 VPC내의 로컬간의 통신에 사용되는 라우팅 테이블이고 0.0.0.0/0 IGW는 다른 모든 트래픽을 인터넷 통신을 위해 igw로 보내는 라우팅 테이블 입니다. 

Private 라우팅 테이블 설정하는 방법과 같이 vpc3와 vpc2의 CIDR을 각각 입력 해주고 대상에 각각 vpc1-vpc3 피어링과 vpc1-vpc2 피어링 연결을 선택 후 변경 사항 저장을 클릭 합니다.


이제 VPC1의 Private과 Public 라우팅 테이블 설정을 완료 하였습니다. 위와 같은 방법으로 VPC2에 대한 라우팅 테이블을 을 아래와 같이 설정을 합니다.

vpc2 private router table을 선택을 하고 라우팅 텝을 클릭을 하고 라우팅 편집 버튼을 클릭 합니다. 

vpc2에서 vpc1으로 가는 라우팅 테이블 하나를 추가를 하고, 같은 방법으로 vpc1에서 vpc3로 가는 라우팅 테이블을 추가 후 변경 사항 저장을 클릭 합니다. 

위의 그림과 같이 라우팅 테이블이 추가된 것을 확인할 수 있습니다. 
이제 VPC2 Public 라우팅 테이블을 클릭을 하고 위와 같이 vpc1, vpc 3에 대한 라우팅 테이블을 아래의 그림과 같이 추가 를 하고 변경 사항 저장 버튼을 클릭 합니다. 

그럼 아래와 같이 VPC2의 라우팅 테이블을 확인할 수 있습니다. 

이제 VPC 3의 라우팅 테이블 설정을 위해 오하이오 리즌 브라우저로 이동후 위와 같은 방법으로 VPC1, VPC2로 가는 Private, Public 라우팅 테이블을 아래 그림과 같이 추가 해줍니다. 
VPC3의 Private 라우팅 테이블을 아래와 같이 추가해 줍니다. 

그리고 아래와 같이 VPC3의 Public 라우팅 테이블을 추가 후 변경사항 저장을 클릭 합니다. 

그럼 이제 Peering을 위한 라우팅 테이블이 모두 설정이 되었습니다.
그럼 이제 아래의 절차를 통해 VPC간 연결 테스트를 진행해 봅시다. 

VPC간 연결 테스트

오레곤 리즌의 브라우저 창에서 서비스 검색창에 EC2를 입력 후 클릭 합니다. 테스트용 EC2는 미리 생성이 되어 있는 상태 입니다. 

EC2는 그림과 같이 Private에 2개, Public에 2개가 실행이 되고 있습니다. 

그림과 같이 vpc1-publci-ec2를 클릭한 후 화면의 우측 상단에 있는 연결 버튼을 클릭 합니다.

세션 매니저 템을 클릭 후 연결을 선택 합니다.  그럼 아래 그림과 같이 콘솔창이 열립니다. 

이제VPC 1에서 VPC2의 private ec2와 public ec2의 연결 상태를 점검 하기 위해 ping을 이용하여 테스트를 진행 합니다. 

모두 정상임을 확인 할수 있습니다 .같은 방법으로 VPC2에서 VPC 3와 VPC1으로, 그리고 VPC3에서 VPC 1과 VPC2로 연결 테스트를 진행 합니다. 

VPC 피어링 연결에서 네트워크 트래픽 제어

vpc1 퍼블릭 서브넷과 vpc3 프라이빗 서브넷 간의 연결을 제외한 모든 서브넷의 리소스 간에 네트워크 연결이 허용하는 트래픽 제어 방법에 대해서 알아 보겠습니다. 

오레곤 리즌 브라우저 창에서 VPC를 검색 후 클릭을 하고 화면 왼쪽의 라우팅 테이블을 클릭 후 vpc1-public-routetable을 선택 하고 라우팅 텝을 클릭 하고 라우팅 편집 버튼을 클릭 합니다. 

위의 그림과 같이 VPC3로 가는 라우팅 테이블 10.30.0.0/16(VPC 3전체 경로)를 VPC3의 Public CIDR로 변경을 하고 변경 사항 저장 버튼을 클릭 합니다. 

이제 vpc1에서 vpc3로의 경로는 오직 VPC3의 public으로만 통신이 가능하고 private는 통신이 불가능 해집니다. 

위의 그림과 같이 의도된 대로 트래픽이 제어가 되는것을 확인할 수 있습니다. 

728x90
반응형