콘텐츠로 건너뛰기

네이버 클라우드 플랫폼 – Load Balancer

Load Balancer는 서버 성능과 부하량을 고려하여 수신 트래픽을 다수의 서버로 분산시키는 서비스입니다. VPC 환경에서는 Application Load Balancer, Network Load Balancer, Network Proxy Load Balancer를 각각 제공하고 있으며 상황에 적합한 Load Balancer를 선택할 수 있습니다. 본 글에서는 Load Balancer 설정 방법에 대해서 알아보도록 하겠습니다.

Load Balancer 사용 목적

저는 HTTP 및 HTTPS 프로토콜을 지원하는 Application Load Balancer을 사용하려고 합니다. 제가 Load Balancer을 사용하는 목적은 다음과 같습니다. :

  1. SSL 인증서 관리 : VPC 내부에서는 HTTP 통신
  2. Host에 따라서 접속하는 페이지 분리 : L7(Application Layer) 기능 제공
  3. 부하 분산

이를 그림으로 도식화 하면 다음과 같습니다. 사용자는 HTTPS로 요청하고 Load Balancer에서 HTTPS를 처리하고 VPC 내부에서는 HTTP로 통신을 수행합니다. 그리고 조건에 따라서 Target Group을 분리하여 Host에 맞게 다른 서비스를 제공할 수 있도록 합니다.

사전 설정

Application Load Balancer를 사용하기 위해서는 다음을 미리 설정해야 합니다. :

  • Load Balancer 용 Subnet
  • HTTPS 사용 시 Certificate Manager
  • DNS 설정
  • Target Group 설정

Target Group 설정

Target Group은 Load Balancer가 수신한 트래픽을 어디로 보낼지 정의하는 개념입니다. Load Balancer가 조건을 확인하고 A 서버의 80 포트, B 서버의 8080 포트로 데이터를 보내는데 그 목적지를 정의하는 것입니다.

서비스 위치

  1. 네이버 클라우드 플랫폼에 로그인 후 관리 콘솔로 이동합니다. :
  2. 왼쪽 메뉴에서 Platform을 VPC로 변경합니다.
  3. Services > Networking > Load Balancer > Target Group 메뉴를 차례대로 클릭합니다.
  4. [Target Group 생성] 버튼을 클릭하여 생성 화면으로 이동합니다.

생성 화면 – Target Group 생성

Target Group 정보 및 목적지 정보를 입력합니다. 쉽게 Target Group이 트래픽을 수신하면 어떻게 동작할지 정의합니다.

아래 그림과 같이 설정할 경우 뒤에서 설정하는 Target 서버 중에서 하나의 서버에 HTTP 프로토콜을 이용하여 8080 포트로 데이터를 전송합니다.

생성 화면 – Health Check 설정

Target 목록에 있는 서버 인스턴스 서비스가 정상적으로 살아 있는데 체크합니다. Health Check 실패한 서버는 로드밸런싱 대상에서 제외됩니다.

생성 화면 – Target 추가

Target Group에 포함시킬 서버를 선택합니다. 적용 Target에 포함된 서버가 로드밸런싱 대상이 됩니다.

Load Balancer 설정

  1. 네이버 클라우드 플랫폼에 로그인 후 관리 콘솔로 이동합니다.
  2. 왼쪽 메뉴에서 Platform을 VPC로 변경합니다.
  3. Services > Networking > Load Balancer 메뉴를 차례대로 클릭합니다.

Load Balancer 생성

[로드밸런서 생성] 버튼을 클릭하고 [애플리케이션 로드밸런서 생성] 버튼을 클릭합니다.

생성 화면 – 로드밸런서 생성

로드밸런서를 생성합니다. Public HTTPS를 처리하기 위한 용도로 Public으로 Network 구성합니다.

생성 화면 – 리스너 설정

Load Balancer에서 트래픽을 수신할 리스너 포트를 설정합니다. 애플리케이션 로드 밸런서로 HTTP 또는 HTTPS 프로토콜과 포트 번호를 선택할 수 있습니다.

HTTP는 처리하지 않을 예정이기 때문에 HTTPS 프로토콜만 추가합니다.

생성 화면 – Certificate설정

이전 단계에서 HTTPS 프로토콜을 추가하면 생성되는 화면으로 SSL 인증서를 추가하면 됩니다.

생성 화면 – Target Group 선택

기본 Target Group을 선택합니다. 앞에서 설정한 포트로 트래픽을 수신하면 Target Group 대상으로 트래픽을 전송합니다.

리스너 조건 추가

최종적인 목적은 아래와 같이 동작하는걸 목적으로 합니다. Host에 따라서 포트를 변경해보겠습니다.

로드 밸런서 목록에서 로드 밸런서를 선택하고 [리스너 설정 변경] 버튼을 클릭합니다.

리스너 설정 변경에서 [규칙 조회/변경] 버튼을 클릭합니다

리스너를 생성 시 우선순위 10000이 기본적으로 생성됩니다. 그리고 아래 그림과 같이 HOST_HEADER가 특정 조건일 경우 Target Group을 변경할 수 있습니다.

[규칙 추가] 버튼을 클릭하여 다음과 같이 규칙을 추가 합니다.

  • api.domain.com 일 경우 Target Group을 web로 변경
  • Target Group (web) : HTTP 포트로 9000번 사용
  • 결론적으로 api.domain.com일 경우 http://{{서버IP}}:9000 으로 이동

참고 자료

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다