Classic Load Balancer
    • PDF

    Classic Load Balancer

    • PDF

    Article Summary

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

    사용하기 전에

    Q. Load Balancer는 몇 개까지 생성할 수 있나요?

    • 생성 가능한 Load Balancer의 수는 특별히 한정되어 있지 않습니다.

    Q. 하나의 Load Balancer에 몇 대 서버를 바인드할 수 있나요?

    • 하나의 Load Balancer는 최대 50대의 서버를 바인드할 수 있습니다.

    Q. 하나의 Load Balancer에 여러 대의 서버를 적용할 수 있나요?

    • 하나의 Load Balancer에서 여러 존(Zone)에 있는 서버를 모두 적용할 수 있습니다. 다른 Load Balancer에 적용된 서버도 적용 가능합니다.

    Q. Load Balancer에서 지원되는 알고리즘은 어떤 것이 있나요?

                     
    Round Robin- 로드밸런싱으로 지정된 서버들에 대해 공평하게 순차적으로 요청을 전달하는 방식
    - 서버 커넥션 수나 응답시간에 상관없이 그룹 내의 모든 서버를 동일하게 처리하여 일반적인 구성에 있어 다른 알고리즘에 비해 가장 빠름
    Least Connection- 클라이언트의 요청을 가장 적은 수의 커넥션이 붙어있는 서버로 할당해주는 방식
    - 서버들의 성능이 비슷하게 구성되어 있을 때 가장 효과적인 트래픽 분산이 가능
    Source IP Hash- 클라이언트의 Source IP 주소 정보를 바탕으로 hash한 결과에 의해 로드밸런싱
    - SSL 프로토콜을 사용하시는 경우 Source IP Hash 알고리즘을 권장

    Q. 서비스용 도메인에 Load Balancer 도메인 이름을 설정하는 방법을 알려주세요.

    1. 콘솔에서 Load Balancer 생성 후 하단에서 조회되는 접속 정보 확인

    networking-3-1-v2-1011_ko.png

    2. DNS에서 CNAME 설정: 고객의 보유한 서비스 도메인명에 대한 CNAME 레코드로 제공된 Load Balancer 도메인 이름을 등록합니다.

    • 예: 고객이 example.com 도메인을 보유한 경우

    networking-3-1-v2-102_ko.png

    • zone apex(=root domain)에 대한 CNAME 등록은 할 수 없습니다. (RFC1033)

    • 예를 들어 아래와 같은 설정은 불가합니다.

    networking-3-1-v2-103_ko.png

    • Load Balancer DNS 이름에서 조회되는 IP는 고정 IP가 아니며 이후 변동될 수 있습니다. 따라서 제공된 DNS 이름 대신, 조회되는 공인 IP를 직접 서비스에 등록해서 사용하지 않도록 주의가 필요합니다.

    • LB로 제공되는 DNS 이름은 변경되지 않기 때문에, DNS 이름으로 등록한 경우에는 서비스에 영향이 없습니다.

    Q. Load Balancer 생성 절차는 어떻게 되나요?

    콘솔에 접속한 후 다음의 절차를 통해 생성할 수 있습니다.

    networking-3-1-v201_ko.svg

    1. 콘솔 접속 : 네이버 클라우드 플랫폼에서 제공하는 콘솔에 접속합니다.

    2. 프로모션 선택 : Npac 프로모션(무료) 또는 유료 상품(유료)을 선택합니다. (Npac 고객의 경우)

    3. Load Balancer 생성 : Load Balancer 이름과 네트워크 타입, 프로토콜, 로드밸런싱 알고리즘을 선택합니다.

    4. 서버 추가 : Load Balancer에 적용할 서버를 추가합니다.

    5. 설정 정보 보기 : Load Balancer 설정 정보를 확인하고 생성합니다.

    Load Balancer(로드밸런서) 생성하기

    Step 1. 콘솔 접속

    1. 콘솔에 접속한 후, Services > Networking > Load Balancer 메뉴를 차례대로 클릭해주십시오.

    2. 생성한 Load Balancer가 없으므로 다음과 같은 문구가 표시됩니다.

      • 보유중인 Load Balancer가 없습니다. [로드밸런서 생성] 을 클릭하여 신규 Load Balancer를 생성합니다.
      • 생성된 서버가 없어도 Load Balancer 생성이 가능합니다.
    3. Load Balancer를 생성하려면 [Load Balancer 생성] 버튼을 클릭해주십시오.

    Step 2. Load Balancer 생성

    Load Balancer 이름을 입력하고 설정값과 로드밸런싱 알고리즘을 선택합니다.

    loadbalancer-classiclb-classic_create_ko.png

    1. Load Balancer 이름을 입력해 주십시오.

    2. 로드밸런서 리스너의 IP 타입을 선택해 주십시오. 인터넷 서비스에 이용할 경우 Public IP를 선택해 주십시오.

    3. 로드밸런서를 생성할 Zone을 선택해주십시오. Public IP 로드밸런서는 양쪽 존 모두에 생성하여 서비스 가용성을 보다 높일 수 있습니다.

      • 로드밸런서가 위치한 zone과 상관없이 계정이 보유하고 있는 모든 서버를 연결할 수 있습니다.
      • 단, Security Monitoring 서비스 이용자에 한하여 추가비용이 발생할 수 있으니 확인 부탁드립니다.
    4. 프로토콜을 선택하고 Load Balancer 포트, 서버 포트를 입력해 주십시오.

    5. L7 Health Check(옵션)를 입력해 주십시오.

      • 프로토콜이 HTTP/HTTPS인 경우 반드시 슬래쉬(/)로 시작하여야 하며 Health Check 하고자 하는 콘텐츠 경로를 입력합니다.
      • 예: /somedir/index.html
      • 예: /index.html, /dir/index.html
    6. Proxy Protocol은 TCP, SSL 프로토콜 이용 시에만 체크박스가 활성화됩니다.

    7. HTTP/2는 HTTPS 프로토콜 이용 시에만 체크박스가 활성화 됩니다.

    8. HTTPS 프로토콜을 선택한 경우 Server Protocol을 선택해 주십시오.

    참고

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

    1. [추가] 버튼을 클릭하면 설정한 내용을 확인할 수 있으며 수정 또는 삭제가 가능합니다.

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

      • Round Robin과 Least Connection, Source IP Hash 중에 선택합니다.
    3. [다음] 버튼을 클릭해 주십시오.

    Load Balancer 설정 시 주의 사항

    Load Balancer의 프로토콜, Load Balancer 포트, 서버 포트, L7 Health Check(옵션) 설정하는 방법은 아래와 같습니다.

    1. 하나의 Load Balancer에는 프로토콜 20개까지 추가 가능합니다.

    2. 하나의 Load Balancer에 설정한 프로토콜은 적용 서버에 모두 반영됩니다.

    3. 하나의 Load Balancer에서 Load Balancer 포트는 겹침이 없어야 합니다.

      • 22, 3389, 64000, 65130, 65131, 18080~18095 포트는 Load Balancer 관리용으로 사용되어 이용할 수 없습니다.
    4. 하나의 Load Balancer에서 서버 포트는 겹침이 허용됩니다.

    5. 프로토콜이 HTTP/HTTPS인 경우 L7 Health Check를 설정할 수 있습니다.

      • Load Balancer SSL 설정의 경우, SSL Offloading 방식으로 SSL 인증을 처리하고 있기 때문에 Load Balancer와 연결된 서버에는 중복으로 SSL 설정을 할 필요가 없습니다. Load Balancer 포트와 서버포트를 동일하게 '443'으로 설정하지 않고, 서버포트는 '80' 포트로 설정하는 것을 권장합니다.

    Load Balancer Proxy Protocol 설정하기

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

    • Load Balancer 설정 시 프로토콜별 Client IP 확인은 아래 표를 참고해 주십시오.
    HTTP,HTTPSTCP,SSL
    X-Forwarded-ForProxy Protocol
    • 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. 관리 콘솔에서 Load Balancer 생성 또는 설정 변경 시, Load Balancer 설정 > proxy protocol 옵션을 선택하여 기능을 활성화합니다.

    2. 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>
      

    3. 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     }
      }
      

    사설 Load Balancer

    • 외부에 노출되지 않고 내부에서 로드밸런싱이 필요한 경우 사설 Load Balancer를 활용할 수 있습니다.

    • 사설 Load Balancer의 사용법은 공인 IP 주소 기반 Load Balancer와 동일하며 도메인을 사용하지 않고 제공된 사설 IP 주소를 이용해서 접근하면 됩니다.

    • Global Region 환경에서는 사설 기반 Load Balancer를 사용하는 경우 전용망을 사용함으로써 안정적이고 빠른 로드밸런싱이 가능합니다.

    networking-3-102_ko.png

    Step 3. SSL 인증서 추가(프로토콜이 HTTPS/SSL인 경우)

    Certificate Manager에서 등록한 SSL 인증서를 선택합니다.
    인증서 관리 방법은 Certificate Manager 사용 가이드에서 확인할 수 있습니다.
    프로토콜이 HTTP/TCP일 경우는 바로 ‘서버 추가’ 단계로 넘어갑니다.

    1. [다음] 버튼을 클릭해주십시오.

    Step 4. 지원하는 SSL Protocol과 Ciphers suite 확인(프로토콜이 HTTPS/SSL인 경우)

    지원 가능한 SSL Protocol과 Ciphers 적용 템플릿, 적용된 SSL Ciphers를 확인합니다.

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

    Step 5. 서버 추가

    적용할 서버를 선택합니다.

    1. 적용할 서버를 선택해 주십시오.
      • 적용할 서버를 더블 클릭하면 우측 ‘적용 서버’ 테이블로 이동됩니다.
    2. [다음] 버튼을 클릭해주십시오.

    Step 6. 설정 정보 보기

    설정한 내용을 최종 확인합니다.

    1. 설정 정보, 로드밸런싱 알고리즘, 적용 서버가 정상적으로 설정되었는지 확인해주십시오.
    2. 최종 확인 후에는 [로드밸런서 생성] 버튼을 클릭해주십시오.

    Load Balancer 목록에서 확인

    생성한 Load Balancer를 목록에서 확인합니다.

    1. 생성한 Load Balancer가 목록에 표시됩니다.
      • 접속정보(DNS) 서버 대수를 확인할 수 있습니다.
    2. 해당 Load Balancer를 선택하고 하단에 내용보기를 통해 ACG Load Balancer(ncloud-load-balancer)를 확인할 수 있습니다.

    Load Balancer 관리하기

    Load Balancer 상태 변경을 위한 ACG 설정

    Load Balancer는 상태가 운영중이어야 정상 동작 하며 운영중 상태 변경을 위해 ACG 설정이 필요합니다.

    • 네이버 클라우드 플랫폼에서 제공하는 Load Balancer는 Internal 용도(사설 로드밸런서)의 기능을 제공합니다. (Load Balancer 설정 시 지정된 'Load Balancer 포트'는 Any (0.0.0.0/0) 대역으로 오픈됩니다.)
    • Load Balancer에 바인드되어 있는 서버들의 ACG에 Load Balancer에 대한 허용 규칙이 적용되어 있어야 합니다.
    1. Compute > Server > ACG 메뉴에서 해당 ACG를 선택하고 [ACG 설정] 버튼을 클릭해주십시오.

    2. Load Balancer와 바인드 서버와의 네트워크 통신을 위해 아래 프로토콜, 접근소스, 허용포트를 설정해주십시오.

      • 접근 소스: ‘ncloud-load-balancer’를 입력합니다. (Load Balancer 메뉴의 하단 ‘내용보기’에서도 확인 가능합니다.)
      • 프로토콜, 허용포트: Load Balancer의 프로토콜 및 서버포트가 ACG에 적용되어 있어야 합니다.

    Load Balancer 상태 변경을 위한 서버 설정

    Load Balancer는 상태가 운영중이어야 정상 동작하며 운영중 상태 변경을 위해 서버 설정이 필요합니다.

    networking-3-1-v2-3-31_ko.png

    1. 서버에서 Load Balancer 설정 포트 정보와 관련한 설정이 완료되면 상태가 ‘운영중’으로 변경됩니다.

      • 설정 예: 80 포트
    2. [로드밸런서 상태 확인] 버튼을 클릭하면, Load Balancer에서 서버의 80포트로 Health Check한 결과값을 보여 줍니다.

    • 참조

      리눅스 서버에서 HTTP(포트 번호 80) 설정 예

      서버 접속 후
      [root@jsy-s-0522-1525]# service httpd start
      (HTTP 데몬 시작)
      [root@jsy-s-0522-1525]#vi /var/www/html/index.html
      (index 파일 설정, Load Balancer L7 Health Check를 위해 설정한 이름과 동일하게 설정)
    주의

    ncloud-load-balancer 그룹의 경우 ACG 허용 규칙을 추가한 후에 규칙을 삭제하더라도 VM에 대한 LB의 지속적인 헬스체크 요청이 있으면 허용 규칙이 없어도 VM과 통신이 가능한 경우가 있으므로, 통신을 확실히 차단하려면 연결된 LB의 재시작을 권합니다.

    Load Balancer 설정 변경

    Load Balancer 생성 시 설정한 내용을 변경합니다.

    1. 설정 변경할 Load Balancer를 선택해주십시오.

    2. [로드밸런서 설정 변경] 버튼을 클릭해주십시오.

      • 적용 서버의 추가/삭제가 필요한 경우 [적용 서버 변경] 버튼을 클릭하여 이용하시고, 기타 다른 옵션은 내용보기의 옵션 변경기능을 이용합니다.
    3. Load Balancer 이름은 디폴트로 출력되며, Load Balancer 설정과 로드밸런싱 알고리즘을 변경하고 [확인] 버튼을 클릭해주십시오.

    적용 서버 변경

    Load Balancer 생성 시 적용한 서버를 변경합니다.

    1. 적용 서버를 변경할 Load Balancer를 선택해주십시오.

    2. [적용 서버 변경] 버튼을 클릭해주십시오.

    3. 변경할 적용 서버를 ‘전체 서버’ 목록에서 더블 클릭하여 우측의 ‘적용 서버’ 목록으로 이동시킨 후 [확인] 버튼을 클릭해주십시오.

    모니터링

    Load Balancer의 모니터링을 확인해 보세요.

    1. 모니터링을 확인할 Load Balancer를 선택합니다.

    2. [모니터링] 버튼을 클릭해주십시오.
      해당 Load Balancer에 대한 모니터링을 확인할 수 있습니다.

    networking-3-1-v2-3-61_ko.png

    SSL 인증서 관리

    Certificate Manager 메뉴로 이동하여 인증서를 관리할 수 있습니다.

    networking-3-1-v2-3-7_ko.png

    Connection idle timeout, HTTP Keep-alive 설정 변경

    Load Balancer의 Connection idle timeout 또는 HTTP Keep-alive 설정을 변경합니다.

    1. 변경할 Load Balancer를 선택해주십시오.

    2. 변경할 항목을 확인하시고, [EDIT] 버튼을 클릭하여 수정, 저장해주십시오.

      • HTTP Keep-alive: 연결된 connection을 일정시간 동안 유지하면서 다시 연결을 요청할 때 기존에 연결된 Connection을 재사용하는 옵션입니다.
      • Connection Idle Timeout: Load Balancer와 연결 된 connection을 유지하는 시간으로 해당 시간이 지나면 Connection이 강제로 close 되어서 연결이 해제됩니다. Long transaction을 지원하는 application이 필요한 경우 해당 옵션을 조절해서 Connection 연결 시간을 설정하면 됩니다. (Default : 60초, 60 ~ 3,600초로 설정 가능합니다.)

    networking-3-1-v2-3-81_ko.png

    Load Balancer 삭제

    Load Balancer를 삭제합니다.

    1. 삭제할 Load Balancer를 선택해주십시오.

    2. [로드밸런서 삭제] 버튼을 클릭해주십시오.

    3. 삭제할 Load Balancer를 확인하시고 [삭제] 버튼을 클릭해주십시오.


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

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.