본문 바로가기

Cloud/AWS

AWS - API Gateway 기반 VPC Link

Today Keys :  API , gateway , vpc , link , 게이트웨이 , nlb , aws , 링크 , 연결 , 가용


  이번 포스팅은 AWS API Gateway에서 VPC 내부의 서비스를 호출하기 위해서 사용 할 수 있는 VPC Link에 대한 예제 포스팅입니다.  사실 VPC Link를 이용하면, NLB에 대한 Target 지정에 따라 인터넷에 노출된 API Gateway를 이용해서 VPC 내부의 서비스 뿐만 아니라, On-Premise 서비스도 호출이 가능합니다.


오늘 포스팅에서 다루게 될 VPC Link 예제에 대한 구성입니다.

VPC 내에 ec2 2대로 각각 SVR#1, 2를 구성하고 각각의 웹서버를 띄웁니다.

NLB에서는 각 서버에 대해서 80, 8080으로 리스너를 만들고 이렇게 만든 NLB를 VPC Link에 연결하고

API Gateway 호출 시에 VPC Link 호출을 합니다.

 

 

       먼저 VPC Link에 연결할 NLB를 미리 생성해둡니다. 

NLB에는 80, 8080 2개의 리스너를 만들어서 각각 다른 Target으로 연결합니다.

각 Target은 Web1과 Web2에 각각 연결되어 있습니다. 
   

 


 API Gateway에서 사용 할 VPC Link를 생성합니다.         

         VPC Link는 해당 Link에 대한 이름과 설명, 그리고 연결할 NLB를 선택합니다.  


        VPC 링크를 생성하면 다음과 같이 연결이 진행됩니다. 
연결이 되는 데 까지는 수 분이 소요됩니다.   

          연결이 완료되면, 상태가 '가용' 으로 되고, 그 때부터 사용 가능합니다. 

 이제 API Gateway를 생성합니다.  


 본 예제에서는 web1과 web2 2개의 리소스를 만들어서 NLB에서 만든 80, 8080 각각 연결 할 예정입니다.  


 API Gateway를 통해 연결된 포인트로  앞서 만든 VPC Link를 선택하고, 엔드포인트 URL(NLB)을 입력합니다.  


  같은 방법으로 web2라는 리소스를 한 개 더 만듭니다. 


 API Gateway를 배포하고 나면, API 게이트웨이를 호출 할 수 있는 URL이 생성됩니다.  



  이제 API Gateway URL로 web1, web2를 각각 호출합니다.


실제 서버는 VPC 내부에 있는 서버이지만, API Gateway를 통해서 정상적으로 호출되는 것을 볼 수 있습니다. 

 web2로 호출하면 NLB에 연결된 2 번째 target인 서버가 열리는 것을 확인할 수 있습니다.    


참고로 API Gateway에서 호출하는 VPC Link에 연결된 NLB(internal)를 보면 실제 VPC 내부임을 알 수 있습니다.