Today Key : aws, privatelink, vpc, regipn, endpoint, 엔드포인트, private, cross, 교차, 리전
이번 포스팅에서는 지난 11월 26일 공개된 'AWS PrivateLink 교차 리전(Cross Region) 지원' 에 대한 내용입니다.
기존의 Interface VPC Endpoint는 동일 리전의 VPC Endpoint Service에 대해서만 연결이 가능 했지만, 동일한 AWS Partition에 속한 AWS Regions 에서 호스팅 되는 VPC Endpoint Service를 Interface Endpoint를 통해서 지원합니다.
본 포스팅에서는 PrivateLink 교차 리전 구성을 통해, VPC Endpoint Service가 구성된 리전이 아닌 다른 리전에서 PrivateLink를 통해 서비스 접근하는 것을 진행해봅니다.
오늘 다루게 될 구성입니다.
us-west-2에 Web서비스를 하나 띄우고, Network Load Balancer를 연결합니다.
NLB를 이용해서, Endpoint Service를 만듭니다.
us-east-1에서는 Endpoint Service를 연결하는 Interface Endpoint를 생성하여,
us-east-1의 서버에서 us-west-2의 웹서버 접속을 진행합니다.
us-west-2와 us-east-1의 서버는 모두 구성이 된 상태이고,
us-west-2에는 Network Load Balancer에 ZIGI-Web까지 연결된 상태입니다.
Endpoint Service 만들기
이제 Network Load Balancer를 이용해서 Endpoint Service를 만들어 보겠습니다.
Name 입력하고, Load Balancer Type은 Network로 한 후
현재 생성되어 있는 Load Balancer를 선택합니다.
그 아래에 보면, Service Regions이라는 메뉴가 추가 된 것을 볼 수 있습니다.
메뉴 아래 설명에도 있지만 Application이나 Service를 Cross-Region에서 접근 가능하게 할 때
접근 가능한 Regions를 선택 하는 것입니다.
Drop Box 메뉴를 펼쳐보면, AWS의 리전 정보를 확인 할 수 있습니다.
여기에서 공유를 원하는 Region을 모두 선택하시면 됩니다.
다만, 현재 Cross-Region 기능이 모든 리전에 적용되는 것이 아니기 때문에
지원되지 않는 Region을 선택하여 Endpoint Service를 생성하려고 하면
아래와 같은 오류 메시지가 뜨는 것을 볼 수 있습니다.
여기에서는 us-east-1에서 서비스를 접근 할 수 있도록 하기 위해서,
us-east-1를 선택하고, 나머지 설정을 기본 값으로 두고, Endpoint Service를 생성합니다.
생성된 Endpoint Service를 보면,
하단의 Service Regions 탭 메뉴에서 현재의 Endpoint Service를 접근 가능한 f리전 정보를 볼 수 있습니다.
Endpoint Service를 생성한 us-west-2와 생성 시에 설정한 us-east-1이 설정된 것을 볼 수 있습니다.
Endpoint Service 생성 이후에, 접근 가능한 리전을 변경하려면
'Modify supported Regions' 에서 수정하면 됩니다.
Interface Endpoint 만들기
us-east-1에서 Interface Endpoint를 만들어 보겠습니다.
Network Load Balancer로 만든 Endpoint Service에 대한 Interface Endpoint를 선택합니다.
하단에 Service settings에서, Endpoint Service의 이름을 입력하고 'verify service'를 클릭합니다.
현재 다른 리전의 Endpoint Service이기 때문에 아래와 같이
'Service name could not be verified.' 오류가 뜨는 것을 확인 할 수 있습니다.
다른 리전의 Endpoint Service 이므로,
'Enable Cross Region endpoint' 속성을 체크하고 난 이후에 다시 verify serice를 하면
아래와 같이 정상적으로 Verified 된 것을 볼 수 있습니다.
나머지 값은 모두 기본 값으로 두고, Interface Endpoint를 만듭니다.
생성된 Interface Endpint DNS Name을 웹 서비스 접근을 시도하면
아래와 같이 정상적으로 서비스가 열리는 것을 확인 할 수 있습니다.