목차

가입 절차

Load Balancer 상품을 사용하려면 네이버 클라우드 플랫폼에서 제공하는 콘솔 및 리소스등을 이용하기 위해 네이버 클라우드 플랫폼의 계정이 필요합니다.

네이버 클라우드 플랫폼에 가입하면 모든 서비스들을 이용하실 수 있으며, 사용한 서비스에 대해서만 요금이 청구됩니다. 이미 계정이 있는 경우에는 해당 단계를 건너뛸 수 있습니다.

  • 포털로 이동합니다.
  • 오른쪽 상단에 회원가입 버튼을 클릭하여 회원가입 페이지로 이동합니다.
  • 서비스 이용 약관 및 개인정보수집이용에 대한 안내 문구를 확인하고 동의합니다.
  • 법인 및 담당자 정보를 입력합니다.
  • 결제수단은 직접입금과 자동이체를 선택하실 수 있습니다.
  • 가입한 ID/PW를 통해 로그인하고 결제수단 선택 및 등록을 완료합니다
  • 콘솔은 포털에 로그인하여 Console 버튼을 클릭하거나, 도메인(https://console.ncloud.com)을 직접 입력하여 접속 후 사용가능합니다.
[포털](https://www.ncloud.com)에서 가입한 계정으로 [콘솔](https://console.ncloud.com/)에서도 동일하게 사용이 가능합니다.

Load Balancer 서비스 사용 절차

VPC 환경에서 이용 가능합니다.

콘솔 접속하기

  • 콘솔에 접속하여 Products & Services > Networking > Load Balancer 메뉴로 이동합니다.

Load Balancer 생성

Load Balancer 생성하기

1. 화면 중앙의 Load Balancer 생성 버튼을 클릭합니다.

2. 네트워크 프록시 로드밸런서 생성 버튼을 클릭합니다.

3. Load Balancer 생성 페이지가 나타나면 사용할 Load Balancer의 이름을 입력합니다.

4. Load Balancer의 네트워크 타입을 선택합니다.

  • Private IP 타입은 VPC 내부 사설 IP를 이용하여 내부 서버로부터의 부하분산을 처리하며 VPC 외부에서는 접근이 불가합니다.
  • Public IP 타입은 VPC 외부 또는 인터넷에서 호출될 수 있도록 공인IP로 설정이 됩니다. 공인IP와 함께 제공되는 임의의 도메인을 이용하여 고객보유의 도메인 또는 CDN 서비스와 연결하여 활용가능합니다.

5. Load Balancer의 성능 타입을 선택합니다.

  • 부하처리 성능에 따라 Small / Medium / Large 중 선택할 수 있으며 각각 초당 연결수 (CPS) 기준 최소 30,000 / 60,000 / 90,000 개의 분산처리를 보장합니다.
  • TLS는 SSL Off-loading에 의해 TCP대비 약 1/10의 성능을 예상할 수 있으나 인증키 방식 및 크기에 따라 다소 차이가 있을 수 있습니다.

6. Load Balancer를 위치시킬 VPC와 Subnet을 선택합니다.

  • Load Balancer는 전용 Subnet을 생성하여 배치해야 하며, 서버와 같은 Subnet에 위치되면 해당 서버로 로드밸런싱이 동작하지 않습니다.
  • 각각의 Load Balancer 마다 별도의 Subnet을 생성할 필요는 없으나 가급적 C 클래스(255.255.255.0) 규모의 Subnet을 권장드립니다.

7. 화면 하단의 다음을 클릭해 리스너 설정으로 이동합니다.

Load Balancer 리스너 설정하기

1. Load Balancer가 동작할 프로토콜을 선택합니다. (TCP/TLS)

2. Load Balancer가 바인드할 포트를 설정합니다.

3. 서버 애플리케이션이 사용할 포트를 설정합니다.

  • Load Balancer 포트와 서버 포트를 반드시 똑같이 설정할 필요는 없습니다.

4. Proxy Protocol 적용 여부를 선택합니다. Proxy Protocol 설정방법은 가이드 하단에 위치합니다.

5. 우측 추가를 클릭하여 리스너를 추가합니다.

6. 연결 타임아웃 값을 설정합니다.

  • Load Balancer와 연결된 Connection을 유지하는 시간으로 해당 시간이 지나면 Connection이 강제로 Close 되어서 연결이 해제됩니다. Long transaction을 지원하는 Application이 필요한 경우 해당 옵션을 조절해서 Connection 연결 시간을 설정하면 됩니다. (Default : 60초, 60 ~ 3,600초로 설정 가능합니다.)

7. 로드밸런싱 알고리즘을 선택합니다.

  • Round Robin, Least Connection, Source IP Hash 중 선택가능 하며, 각각의 특징은 아래와 같습니다.
분산 방식 내용
Round Robin 로드밸런싱으로 지정된 서버들에 대해 공평하게 순차적으로 요청을 전달합니다. 서버 커넥션 수나 응답 시간에 상관없이 그룹 내의 모든 서버를 동일하게 처리해 일반적인 구성에 있어 다른 알고리즘에 비해 가장 빠릅니다.
Least Connection 클라이언트의 요청을 가장 적은 수 의 연결이 이루어진 서버로 할당합니다. 서버의 성능이 비슷하게 구성돼 있을 때 가장 효과적으로 트래픽을 분산할 수 있습니다.
Source IP Hash 클라이언트의 Source IP 정보를 바탕으로 해시한 결과로 로드밸런싱을 실행합니다. SSL 프로토콜을 사용하는 경우에는 Source IP Hash 알고리즘을 사용하는 것을 권장합니다.

8. 화면 하단의 다음을 클릭해 서버 추가 페이지로 이동합니다.

인증서 설정하기 (리스너가 TLS인 경우)

1572263731622

1. Certificate Manager에 등록된 인증서 중에서 서비스에 알맞은 인증서를 선택합니다.

2. TLS Protocol 버전을 선택합니다.

  • TLS v1.0, TLS v1.1, TLS v1.2 중 선택할 수 있으며 각 버전별로 네이버 클라우드 플랫폼에서 제공하는 Ciphers suite이 설정됩니다.

Load Balancer 서버 추가하기

1. 전체 서버 목록 중 애플리케이션이 수행중인 서버를 선택합니다.

2. 가운데 > 버튼을 눌러 원하는 서버를 Load Balancer 적용 서버로 이동합니다.

  • 전체 서버는 VPC내 모든 서버를 대상으로 합니다.

3. 화면 하단 다음 버튼을 클릭해 설정 정보 확인 페이지로 이동합니다.

Load Balancer 설정 정보 확인하기

1. 앞서 설정한 내역들이 맞게 입력되었는지 확인합니다.

2. 화면 하단의 Load Balancer 생성 버튼을 클릭하여 Load Balancer를 생성합니다.

Load Balancer 설정 변경

Load Balancer 설정 변경하기

image-20200408155113690

1. 설정을 변경할 Load Balancer를 선택한 후 화면 상단의 Load Balancer 설정 변경을 클릭합니다.

2. 팝업창이 나타나면 Load Balancer의 설정을 변경합니다.

  • 부하처리 성능을 조절할 수 있습니다.
  • Load Balancer가 위치한 Subnet을 변경합니다.

3. 화면 하단 확인 버튼을 클릭해 Load Balancer 설정 변경을 마칩니다.

리스너 설정 변경하기

image-20200408155300487

1. 설정을 변경할 Load Balancer를 선택한 후, 화면 상단의 리스너 설정 변경을 클릭합니다.

2. 리스너 설정 변경 팝업창이 나타나면 Load Balancer의 리스너를 추가/삭제/변경이 가능합니다.

  • 리스너의 프로토콜 종류, 리스너 포트, 서버 포트, Proxy Protocol 적용 여부 등의 설정을 수정할 수 있습니다.
  • 리스너의 연결 타임아웃 시간을 설정할 수 있으며 설정된 모든 리스너에 동일하게 적용됩니다.
  • 로드밸런싱 알고리즘을 변경할 수 있습니다.

3. 화면 하단 확인 버튼을 클릭해 Load Balancer 리스너 설정 변경을 마칩니다.

적용 서버 변경하기

1. 설정을 변경할 Load Balancer를 선택한 후 적용 서버 변경을 클릭합니다.

2. 사용자 요청에 응답할 애플리케이션 수행중인 서버를 추가/제거 합니다.

  • 적용 서버는 VPC내의 서버 전체가 대상이 되며 리스너에 설정된 포트로 Listening 상태가 아닐 경우, 부하 분산 대상에서는 제외 됩니다.

3. 화면 하단 확인 버튼을 클릭해 Load Balancer 적용 서버 변경을 마칩니다.

Load Balancer 삭제하기

1. 삭제할 Load Balancer를 선택한 후 화면 상단의 Load Balancer 삭제를 클릭합니다.

2. Load Balancer 삭제 팝업창이 나타나면 하단의 삭제 버튼을 클릭해 Load Balancer를 삭제합니다.

※ 주의 Load Balancer를 삭제하면 설정되어 있던 Route Table에 규칙이 같이 삭제되며, 다른 상품에서 이용중인 경우 기능이 정상적으로 동작하지 않을 수 있습니다.

Proxy Protocol 설정하기

Proxy Protocol이란 Load Balancer에서 TCP, SSL 프로토콜 이용 시, Proxy 환경에서 Connection을 요청하는 클라이언트의 IP 주소(Original Client IP address)를 확인할 수 있는 프로토콜입니다.

  • Load Balancer 설정 시 프로토콜별 Client IP 확인은 아래 표를 참고해주세요.

  • Load Balancer rule 설정 시 proxy protocol 사용을 선택하면, Load Balancer에서 아래와 같이 request를 호출합니다.

PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n“
  예제 > PROXY TCP4 125.209.237.10 125.209.192.12 43321 80\r\n
  • Proxy Protocol을 지원하는 apache 및 NginX 버전은 아래와 같습니다.

    • Apache 2.2
    • Apache 2.4
    • NginX 1.11.12
  • Proxy Protocol을 설정하는 방법은 다음과 같습니다.

1. Apache 버전에 따라 다음과 같이 설정합니다.

Apache 2.2

   $ wget --no-check-certificate https://raw.githubusercontent.com/ggrandes/apache22-modules/master/mod_myfixip.c
   $ /{아파치가설치된경로}/bin/apxs -c -i mod_myfixip.c

Apache 2.4

   $ wget --no-check-certificate https://raw.githubusercontent.com/ggrandes/apache24-modules/master/mod_myfixip.c
   $ /{아파치가설치된경로}/bin/apxs -c -i mod_myfixip.c
  • apxs 경로를 확인할 수 없을 경우 http-devel 패키지 설치 후 확인

    /{아파치가설치된경로}/conf/httpd.conf 파일에 아래 설정 추가

    LoadModule myfixip_module modules/mod_myfixip.so
    
    <IfModule mod_myfixip.c>
    RewriteIPResetHeader off
    RewriteIPAllow 10.31.0.0/16  #LB IP 대역으로 설정 (e.g. LB IP가 125.209.197.92인 경우 125.209.0.0/16)
    </IfModule mod_myfixip.c>
    

2. nginx는 다음과 같이 설정합니다.

  • nginx에서 HTTP 모듈이 포함되어 있는지 확인

    $ nginx -V 2>&1 | grep – 'http_realip_module'
    
  • nginx conf 파일에 아래 설정 추가

    http {
    proxy_set_header X-Real-IP         $proxy_protocol_addr;
    proxy_set_header X-Forwarded-For   $proxy_protocol_addr;
    log_format main ' $proxy_protocol_addr - $remote_user [$time_local]'
    #기존 로그 포맷에 추가
                     '"$request" $status $body_bytes_sent'
                     '"$http_referer" "$http_user_agent"';
    server
    { listen 80  proxy_protocol;
      set_real_ip_from LB IP 대역 1(192.168.0.0/16);
      set_real_ip_from LB IP 대역 2(192.168.0.0/16);
      real_ip_header proxy_protocol     }
    }
    

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...