Load Balancer 생성 및 관리
  • PDF

Load Balancer 생성 및 관리

  • PDF

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

Classic 환경에서는 Proxy 기반의 Load Balancer를 제공합니다.

Load Balancer 생성

Load Balancer를 생성하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
  2. Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  3. Load Balancer 메뉴를 클릭해 주십시오.
  4. [로드밸런서 생성] 메뉴를 클릭해 주십시오.
    loadbalancer-classiclb-classic_button_ko
  5. 로드밸런서 생성 화면이 나타나면 다음 단계를 차례대로 진행해 주십시오.
참고

2. Certificate 설정 단계와 3. Cipher 설정 단계는 1. 로드밸런서 생성 단계에서 HTTPS 또는 SSL 프로토콜을 추가한 경우에만 나타나는 단계입니다.
HTTP 또는 TCP 프로토콜만 추가한 경우, 2. Certificate 설정 단계와 3. Cipher 설정 단계는 제외하고 차례대로 진행해 주십시오.

1. 로드밸런서 생성

생성할 Load Balancer의 정보를 입력한 후 [다음] 버튼을 클릭해 주십시오.

loadbalancer-classiclb-classic_create_ko

  • 네트워크: Load Balancer의 네트워크 유형을 선택해 주십시오.

    • 인터넷 서비스에 이용할 경우, Public IP를 선택해 주십시오.
    • 외부에 노출하지 않고 내부에서 부하 분산 처리가 필요한 경우, Private IP를 선택해 주십시오.
      • Private IP Load Balancer의 사용법은 Public IP 주소 기반 Load Balancer와 동일하며, 도메인을 사용하지 않고 제공된 Private IP 주소를 이용하여 접근할 수 있습니다.
      • Global 리전에서 Private IP Load Balancer를 사용하는 경우, 전용망을 사용함으로써 안정적이고 빠르게 부하 분산을 처리할 수 있습니다.
  • Load Balancer를 생성할 Zone을 선택해 주십시오.

    • 한국 리전에서 네트워크 유형으로 Public IP을 선택한 경우, 지원되는 2개의 Zone을 모두 선택하면 서비스 가용성을 보다 높일 수 있습니다.

    • Load Balancer가 위치한 Zone과 상관없이 계정이 보유하고 있는 모든 서버를 연결할 수 있습니다.

      주의

      네이버 클라우드 플랫폼의 Security Monitoring 서비스 사용자의 경우, 추가 비용이 발생할 수 있으니 반드시 확인해주십시오.

  • 로드밸런서 설정에 알맞은 값을 입력한 후 [추가] 버튼을 클릭해 주십시오.

    • 20개까지 추가할 수 있으며, 추가한 설정값은 모든 적용 서버에 반영됩니다.
    • 프로토콜을 선택해 주십시오.
    • 로드밸런서 포트 번호와 서버포트 번호를 입력해 주십시오.
      • 로드밸런서 포트 번호는 중복될 수 없으나, 서버포트 번호는 중복이 허용됩니다.
      • 22, 3389, 18080~18095, 64000, 65130, 65131 포트는 Load Balancer 관리용으로 사용되어 로드밸런서 포트로 사용할 수 없습니다.
    • HTTP 또는 HTTPS 프로토콜을 선택한 경우, L7 Health Check를 입력해 주십시오.
      • 반드시 슬래시(/)로 시작해야 하며, Health Check 하고자 하는 콘텐츠 경로를 입력해 주십시오.
        <예시> /somedir/index.html
        <예시> /index.html, /dir/index.html
      • Proxy ProtocolTCP, SSL 프로토콜을 선택한 경우에만 체크 박스가 활성화됩니다. Proxy Protocol 설정에 관한 자세한 내용은 Proxy Protocol을 참고해 주십시오.
    • HTTP/2HTTPS 프로토콜을 선택한 경우에만 체크 박스가 활성화됩니다.
    • HTTPS 프로토콜을 선택한 경우, Server Protocol을 선택해 주십시오.
    • 추가한 설정을 삭제하려면 [삭제] 버튼을 클릭해 주십시오.
    참고

    SSL 설정의 경우, SSL Offloading 방식으로 SSL 인증을 처리하고 있기 때문에 Load Balancer와 연결된 서버에는 중복으로 SSL 설정을 할 필요가 없습니다. Load Balancer 포트와 서버 포트를 동일하게 443으로 설정하지 않고, 서버 포트는 80 포트로 설정하는 것을 권장합니다. 만약 서버에서도 HTTPS로 서비스를 해야 하는 경우, Server ProtocolHTTPS로 선택하여 구성할 수 있습니다.

  • 로드밸런싱 알고리즘을 선택해 주십시오.

2. Certificate 설정

참고

Certificate 설정은 1. 로드밸런서 생성에서 HTTPS 또는 SSL 프로토콜을 추가한 경우에만 나타납니다.

Certificate Manager에 등록된 인증서 중 서비스에 알맞은 인증서를 선택한 후 [다음] 버튼을 클릭해 주십시오.

3. Cipher 설정

지원 가능한 SSL Protocol과 Ciphers 적용 템플릿, 적용된 SSL Ciphers를 확인한 후 [다음] 버튼을 클릭해 주십시오.

  • SSL과 TLS로 지원 가능한 버전을 확인해 주십시오.
    • TLSv1, TLSv1.1, TLSv1.2를 지원합니다.
  • 적용된 SSL Ciphers를 확인해 주십시오.
    • 전체 Ciphers 중, 체크된 항목이 SSL 통신 시 Load Balancer에서 연결을 허용하는 Ciphers입니다.

4. 서버 추가

loadbalancer-classiclb-classic_addserver_ko

  1. 필요한 경우, 서버를 검색한 후 전체 서버 영역에서 Load Balancer에 적용할 서버를 선택해 주십시오.
  2. [>] 버튼을 클릭하여 적용 서버 영역으로 이동해 주십시오.
    • 적용 서버 영역에 포함된 서버를 제거하려면 제거할 서버를 선택한 후 [<]을 클릭해 주십시오.
  3. [다음] 버튼을 클릭해 주십시오.

5. 설정 정보 보기

Load Balancer의 설정 정보를 확인한 후 [로드 밸런서 생성] 버튼을 클릭해 주십시오.

  • Load Balancer가 정지 상태로 생성됩니다.

Proxy Protocol

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

Load Balancer 설정 시 프로토콜별 클라이언트 IP 확인 방법은 다음과 같습니다.

프로토콜 방법
HTTP, HTTPS X-Forwarded-For
TCP, SSL Proxy Protocol

Load Balancer 규칙 설정 시 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 설정

Proxy Protocol을 설정하는 방법은 다음과 같습니다.

  1. Load Balancer 생성 시 1. 로드밸런서 생성 단계에서 TCP 또는 SSL 프로토콜을 선택한 후 Proxy Protocol 체크 박스를 클릭하여 선택해 주십시오.
  2. 버전에 따라 다음 단계를 확인하여 설정해 주십시오.

Apache 2.2

Apache 2.2 버전에서 Proxy Protocol을 설정하는 방법은 다음과 같습니다.

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

Apache 2.4

Apache 2.4 버전에서 Proxy Protocol을 설정하는 방법은 다음과 같습니다.

$ 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>
    

Nginx 1.11.12

Nginx 1.11.12 버전에서 Proxy Protocol을 설정하는 방법은 다음과 같습니다.

  1. Nginx에서 HTTP 모듈이 포함되어 있는지 확인해 주십시오.
$ nginx -V 2>&1 | grep – 'http_realip_module'
  1. 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     }
}

Load Balancer 관리

생성한 Load Balancer의 상태를 변경하고 확인할 수 있으며, Load Balancer 설정을 변경할 수 있습니다.

Load Balancer 상태 변경

Load Balancer의 상태가 운영중이어야 정상 작동하며, 상태를 운영중으로 변경하기 위해서는 ACG와 서버 설정이 필요합니다.

ACG 설정

네이버 클라우드 플랫폼에서 제공하는 Load Balancer는 Private IP Load Balancer 기능을 제공합니다. Load Balancer 설정 시 지정된 Load Balancer 포트는 Any 대역(0.0.0.0/0)으로 오픈됩니다.

Load Balancer에 적용된 서버들의 ACG에는 Load Balancer에 대한 허용 규칙이 적용되어 있어야 합니다.

ACG에 생성한 Load Balancer에 대한 허용 규칙을 적용하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
  2. ACG 메뉴를 클릭해 주십시오.
  3. Load Balancer에 적용한 서버의 ACG를 선택한 후 [ACG 설정] 버튼을 클릭해 주십시오.
  4. 생성한 Load Balancer의 프로토콜, 접근 소스, 허용 포트를 입력한 후 [추가] 버튼을 클릭해 주십시오.
    • 접근 소스에 'ncloud-load-balancer'를 입력해 주십시오.(Load Balancer 상제 정보의 AccessControlGroup소스 항목에서 확인할 수 있습니다.)
    • 허용 포트에 Load Balancer 생성 시 입력한 서버 포트 번호를 입력해 주십시오.
    • 추가한 규칙을 삭제하려면 [X] 버튼을 클릭해 주십시오.
  5. [적용] 버튼을 클릭해 주십시오.

서버 설정

Load Balancer의 상태를 운영중으로 변경하려면 Load Balancer에 설정한 서버포트와 바인드된 서버의 Listening 포트가 일치해야 합니다.

서버포트를 서버의 Listening 포트로 변경하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  2. 서버 포트를 변경할 Load Balancer를 클릭한 후 [로드밸런서 설정 변경] 버튼을 클릭해 주십시오.
  3. 서버포트를 서버의 Listening 포트와 동일하게 수정한 후 [추가] 버튼을 클릭해 주십시오.
  4. [확인] 버튼을 클릭해 주십시오
    • 설정이 완료되면 상태가 운영중으로 변경됩니다.

    • [로드밸런서 상태 확인] 버튼을 클릭하면, Load Balancer에서 서버의 포트로 Health Check한 결과값을 확인할 수 있습니다.

      주의

      ncloud-load-balancer 그룹의 경우, ACG 허용 규칙을 추가한 후 규칙을 삭제하더라도 VM에 대한 Load Balancer의 지속적인 Health Check 요청이 있으면 허용 규칙이 없어도 VM과 통신이 가능한 경우가 있습니다. 통신을 확실히 차단하려면 연결된 Load Balancer을 재시작해 주십시오.

Load Balancer 설정

Load Balancer 설정 정보를 확인하고 설정을 변경하는 방법은 다음과 같습니다.

참고

Load Balancer에 적용된 서버는 [적용 서버] 버튼을 클릭하여 변경할 수 있습니다. 자세한 내용은 적용 서버 변경을 참고해 주십시오.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.

  2. Load Balancer 메뉴를 클릭해 주십시오.

  3. 설정 정보를 확인하거나 변경할 Load Balancer를 선택한 후 [로드밸런서 설정 변경] 버튼을 클릭해 주십시오.

    • 로드밸런서 설정 변경 팝업 창이 나타나며, Load Balancer의 설정 정보를 확인할 수 있습니다.
  4. 변경 사항을 적용한 후 [확인] 버튼을 클릭해 주십시오.

    loadbalancer-classiclb-classic_edit_ko

    • 로드밸런서 설정을 변경할 수 있습니다.
    • 로드밸런싱 알고리즘을 변경할 수 있습니다.

적용 서버 변경

Load Balancer에 적용된 서버를 확인하고 추가/제거하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.

  2. Load Balancer 메뉴를 클릭해 주십시오.

  3. 적용 서버를 변경할 Load Balancer를 선택한 후 적용 서버 변경 버튼을 클릭해 주십시오.

    • 적용 서버 변경 팝업 창이 나타나며, Load Balancer에 적용된 서버를 확인할 수 있습니다.

    loadbalancer-classiclb-classic_server_ko

  4. 서버를 추가하려는 경우, 전체 서버 영역에서 추가할 서버를 선택한 후 [>] 버튼을 클릭해 주십시오.

  5. 적용된 서버를 제거하려는 경우, 적용 서버 영역에서 제거할 서버를 선택한 후 [<] 버튼을 클릭해 주십시오.

  6. [확인] 버튼을 클릭해 주십시오.

SSL 인증서 관리

Certificate List 메뉴에서 SSL 인증서를 관리할 수 있습니다.

Certificate List 메뉴로 이동하려면 [SSL 인증서 관리] 버튼을 클릭한 후 [Certificate Manager로 바로가기]를 클릭하거나 Services > Security > Certificate Manager > Certificate List 메뉴를 차례대로 클릭해 주십시오.

SSL 인증서 관리에 관한 자세한 내용은 Certificate Manager 사용 가이드를 참고해 주십시오.

Load Balancer 상태 확인

Load Balancer와 서버의 연결 상태를 확인하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  2. 상태를 확인할 Load Balancer를 클릭한 후 [로드밸런서 상태 확인] 버튼을 클릭해 주십시오.
    • 로드밸런서 상태 보기 팝업 창이 나타나며, Load Balancer와 서버의 연결 상태를 확인할 수 있습니다.

Load Balancer 모니터링

선택한 기간에 따라 일정 주기로 수집한 Concurrent connection과 Connection per Second, Traffic In, Traffic Out 정보를 각각 그래프로 확인할 수 있습니다.

참고

선택한 기간에 따라 수집 주기가 달라지며, 부하 분산을 처리하여 수집된 모니터링 정보는 최소 1분부터 최대 최근 1년까지 설정하여 확인할 수 있습니다.

집계 주기(Interval) 조회 기간
1분 주기 최대 6시간
5분 주기 최대 1일
30분 주기 최대 1주일
2시간 주기 최대 1달
1일 주기 1달 초과

Load Balancer의 모니터링 정보를 확인하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  2. Load Balancer 메뉴를 클릭해 주십시오.
  3. 모니터링할 Load Balancer를 선택한 후 [모니터링] 버튼을 클릭해 주십시오.
    • Load Balancer 기본 모니터링 팝업 창이 나타나며, 모니터링 정보를 그래프로 확인할 수 있습니다.
    • 기간을 선택하여 선택된 기간 동안 수집된 모니터링 정보를 확인할 수 있습니다.
    • [새로고침] 버튼을 클릭하면 조회된 그래프가 새로고침 됩니다.

HTTP Keep-alive 적용 여부 수정

HTTP Keep-alive는 연결된 connection을 일정 시간 동안 유지하면서 다시 연결을 요청할 때 기존에 연결된 connection을 재사용하는 옵션입니다.

HTTP Keep-alive 적용 여부를 수정하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  2. 적용 여부를 수정할 Load Balancer를 클릭해 주십시오.
    • 해당 Load Balancer의 상세 정보가 표시됩니다.
  3. HTTP Keep-alive 적용i_loadbalancer_edit을 클릭해 주십시오.
  4. 적용 여부를 수정한 후 [수정] 버튼을 클릭해 주십시오.

Connection Idle Timeout 설정

Connection Idle Timeout은 Load Balancer와 연결된 connection을 유지하는 시간으로, 해당 시간이 지나면 connection이 강제로 close되어서 연결이 해제됩니다. Long transaction을 지원하는 애플리케이션이 필요한 경우, 해당 옵션을 조절하여 connection 연결 시간을 설정하면 됩니다. Default는 60초이며, 60~3,600초로 설정할 수 있습니다.

Connection Idle Timeout을 설정하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  2. 설정할 Load Balancer를 클릭해 주십시오.
    • 해당 Load Balancer의 상세 정보가 표시됩니다.
  3. Connection Idle Timeout 설정 (default : 60초)i_loadbalancer_edit을 클릭해 주십시오.
  4. 설정값을 수정한 후 [수정] 버튼을 클릭해 주십시오.

Load Balancer 삭제

Load Balancer를 삭제하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
  2. 삭제할 Load Balancer를 선택한 후 [로드밸런서 삭제] 버튼을 클릭해 주십시오.
  3. 로드밸런서 삭제 팝업 창의 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.
    • 선택한 Load Balancer가 삭제됩니다.

이 문서가 도움이 되었습니까?