본문으로 바로가기

[AWS] GWLB란?(Gateway LoadBalancer) - 패턴별 GWLB 구축

category IT/AWS 2021. 10. 27. 02:58
반응형

GWLB란?

AWS GWLB(Gateway Load Balancer)는 AWS 로드밸런서 서비스 타입중 하나로 외부에서 유입돼는 트래픽과 외부로 나가는 트래픽을 다른 네트워크(VPC)의 게이트웨이 역할로 가상어플라이언스로 라우팅할 수 있도록 해주는 서비스 입니다.

AWS GWLB를 사용하면 가상어플라이언스를 제공하는 파트너사들은 방화벽, 침입 탐지 및 방지 시스템의 배포, 확장 및 관리가 용이 해지며 사용자들은 가상 어플라이언스의 관리 영역을 구분할 수 있기 때문에 운영의 이점을 가져갈 수 있습니다.

트래픽 흐름을 보면 이해가 빠를 것 같습니다. 아래 그림과 같으며 파란색이 외부에서 Client가 서비스를 호출할때이고 주황색이 서비스에서 외부로 나갈때의 트래픽입니다.

GWLB를 이용한 아키텍처에 필요한 서비스

위와 같은 구조로 GWLB를 구현하기위해서 반드시 사용해야하는 서비스가 있습니다. 바로 GWLB EnpointGWLB Endpoint Service 입니다.

가상어플라이언스가 있는 오른쪽 VPC에 GWLB와 GWLB Endpoint Service를 생성하며 왼쪽의 사용자 VPC에 GWLB Endpoint를 생성하게 됩니다.

또 하나는 Ingress Route Table 입니다. 이는 기존 서브넷에만 적용되던 라우팅을 Ingternetgateway 나 Virtual Private Gateway에 적용할 수 있는 기능입니다. AWS Route Table생성 후 Edge Association 탭에서 설정 할 수 있습니다.

GWLB를 이용한 아키텍처 패턴은 다음 기준으로 정해지게 됩니다

또한 이 패턴은 Route Table 설정을 통해 구현이 가능합니다. 각 패턴에 대한 Route Table 설정은 아래에 자세히 설명 하도록 하겠습니다.

  • Inbound 트래픽이 GWLB를 거치는 경우
  • Outbound 트래픽이 GWLB를 거치는 경우
  • Inbound트래픽이 GWLB를 거치지 않는 경우
  • Outbound 트래픽이 GWLB를 거치지 않는 경우

AWS Routing Table 해석 방법

Route Table 설정하는 방법을 설명하기에 앞서 Route Table에 설정된 내용을 해석하는 방법을 알려드리도록 하겠습니다.

해당 Routing Table이 설정된 서브넷에 있는 리소스의 ENI가 트래픽이 시작되는 시작점인 Source 가 되고 Routing Table의 Destination 이 목적지, Target 은 시작점이 목적지를 갈수 있게해주는 수단이 됩니다.

이를 쉽게 해석하면 "Source에서 Destination으로 가는데 Target을 통해서 갈 수 있어" 라고 해석할 수 있습니디ㅏ. 만약 Destination이 0.0.0.0/0이라면 이는 Anywhere를 뜻하며 "Source는 Target을 통해서 어디든 갈 수 있어" 라고 해석할 수 있습니다.

또한 Public 또는 Private Routing Table에 GW Endpoint를 사용하려면 Ingress Routing을 추가하여 사용할 Public또는 Private 서브넷을 GW Endpoing로 할당 시켜야합니다. 아래 그림을 참고 하면 이해가 쉽습니다.

GWLB패턴을 조합 하면 4가지 케이스가 나옵니다

이 4가지 케이스 중 2가지 구성을 Cloudformation으로 만들었으며 해당 블로그를 참고하였습니다. https://whchoi98.gitbook.io/aws-gwlb

case1

Inbound 트래픽이 GWLB를 거치고, Outbound 트래픽도 GWLB를 거치는 경우

case2

Inbound 트래픽이 GWLB를 거치지 않고, Outbound 트래픽은 GWLB를 거치는 경우

case3

Inbound 트래픽이 GWLB를 거치고, Outbound 트래픽은 GWLB를 거치지 않는 경우

case4

Inbound 트래픽이 GWLB를 거치지 않고, Outbound 트래픽은 GWLB를 거치지 않는 경우

  • 이 케이스는 GWLB를 사용하지 않아도 되므로 생략합니다.

트래픽 테스트 방법

outbound test

  • VPC01 서버에서 ping www.aws.com
  • GWLB 서버에서 sudo tcpdump -nvv port 6081 | grep ICMP

Inbound test

  • 웹브라우저에 생성된 alb DNS주소 입력
  • GWLB 서버에서 sudo tcpdump -nvv port 6081 | grep elb

case01테스트 결과

  • outbound traffic

  • inbound traffic

case02 테스트 결과

  • outbound traffic
  • inbound traffic

반응없음

case03 테스트 결과

  • outboud traffic

반응없음

  • inbound traffic
반응형