네이버 클라우드 플랫폼의 상품 사용 방법을 보다 상세하게 제공하고, 다양한 API의 활용을 돕기 위해 [설명서][API 참조서]를 구분하여 제공하고 있습니다.

Load Balancer API 참조서 바로가기 >>
Load Balancer 설명서 바로가기 >>

사용하기 전에

Q.Load Balancer(로드밸런서) 1.0과 2.0의 차이점은 무엇인가요?

구분 Load Balancer(1.0) Load Balancer(2.0)
Zone - 멀티 존 (Multi-Zone)제공으로 여러 Zone의 서버에 Load Balancer 적용가능 (현재 Zone은 1개, 추후 확대 예정)
- 여러 Zone에 분산되어 있기 때문에 Zone 장애 시에도 연속적인 서비스 제공 가능
이용방식 Virtual IP 방식으로 Load Balancer 이용 DNS(도메인 이름)로 Load Balancer 이용
설정방식 동일한 Load Balancer 설정 내에서 Load Balancer 포트와 서버 포트 중에 하나라도 같은 경우 설정 불가 - 동일한 Load Balancer 설정 내에서 Load Balancer 포트가 동일한 경우는 어떤 경우에도 설정 불가
- 동일한 Load Balancer 설정에서 Load Balancer 포트는 다르고, 서버포트가 같은 경우는 설정 가능
서버가 이미 하나의 Load Balancer에 반영된 경우, 다른 Load Balancer에는 적용 불가 이미 Load Balancer에 반영된 서버도 다른 Load Balancer에 추가 가능

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 생성 후 하단에서 조회되는 접속 정보 확인

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

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

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

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

      ※ Load Balancer DNS 이름에서 조회되는 IP는 고정 IP가 아니며 이후 변동될 수 있습니다. 따라서 제공된 DNS 이름 대신, 조회되는 공인 IP를 직접 서비스에 등록해서 사용하지 않도록 주의가 필요합니다. LB로 제공되는 DNS 이름은 변경되지 않기 때문에, DNS 이름으로 등록한 경우에는 서비스에 영향이 없습니다.

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

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

step

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

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

  3. Load Balancer 생성: Load Balancer 이름과 애플리케이션, 프로토콜, 로드밸런싱 알고리즘을 선택합니다.

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

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

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

Step 1. 콘솔 접속

콘솔에 접속합니다.

① Networking에서 ‘Load Balancer’ 메뉴를 선택합니다.

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

  • 보유중인 Load Balancer가 없습니다. [로드밸런서 생성]을 클릭하여 신규 Load Balancer를 생성합니다.

  • 생성된 서버가 없어도 Load Balancer 생성이 가능합니다.

③ Load Balancer를 생성하려면 [Load Balancer 생성] 버튼을 클릭합니다.

Step 2. Load Balancer 생성

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

① Load Balancer 이름을 입력합니다.

② 프로토콜을 선택하고 Load Balancer 포트, 서버 포트를 입력합니다.

③ L7 Health Check(옵션)를 입력합니다.

  • 프로토콜이 HTTP/HTTPS인 경우 반드시 슬래쉬(/)로 시작하여야 하며 Health Check 하고자 하는 콘텐츠 경로를 입력합니다.
    • 예: /somedir/index.html
    • 예: /index.html, /dir/index.html

④ Proxy protocol은 TCP, SSL 프로토콜 이용 시에만 체크박스가 활성화됩니다.

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

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

  • Round Robin과 Least Connection, Source IP Hash 중에 선택합니다.

⑦ [다음] 버튼을 클릭합니다.

Load Balancer 설정 시 주의 사항

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

  1. 하나의 Load Balancer는 최대 5개까지의 애플리케이션을 지원합니다.

  2. 하나의 Load Balancer에 설정한 애플리케이션은 적용 서버에 모두 반영됩니다.

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

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

    • 단, HTTP 프로토콜인 경우 서버 포트를 겹쳐서 사용할 수 있으며 이 경우 L7 Health Check 경로가 동일해야 합니다.
  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,HTTPS TCP,SSL
X-Forwarded-For Proxy 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

Apache에서 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>
    

사설 Load Balancer

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

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

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

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

Certificate Manager에서 등록한 SSL 인증서를 선택합니다.

인증서 관리 방법은 Certificate Manager 사용 가이드에서 확인할 수 있습니다.

프로토콜이 HTTP/TCP일 경우는 바로 ‘서버 추가’ 단계로 넘어갑니다.

① [다음] 버튼을 클릭합니다.

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

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

① SSL과 TLS로 지원 가능한 버전을 확인합니다.

  • TLSv1, TLSv1.1, TLSv1.2 지원

② 적용된 SSL Ciphers를 확인합니다.

  • 전체 Ciphers 중, 체크된 항목이 SSL 통신 시 LB에서 연결을 허용하는 Ciphers입니다.

③ [다음] 버튼을 클릭합니다.

Step 5. 서버 추가

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

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

  • 적용할 서버를 더블 클릭하면 우측 ‘적용 서버’ 테이블로 이동됩니다.

② [다음] 버튼을 클릭합니다.

Step 6. 설정 정보 보기

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

① 설정 정보, 로드밸런싱 알고리즘, 적용 서버가 정상적으로 설정되었는지 확인합니다.

② 최종 확인 후에는 [로드밸런서 생성] 버튼을 클릭합니다.

Load Balancer 목록에서 확인

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

① 생성한 Load Balancer가 목록에 표시됩니다.

  • 접속정보(DNS) 서버 대수를 확인할 수 있습니다.

② 해당 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에 대한 허용 규칙이 적용되어 있어야 합니다.

① ACG 메뉴에서 해당 ACG를 선택하고 [ACG 설정] 버튼을 클릭합니다.

② Load Balancer와 바인드 서버와의 네트워크 통신을 위해서는, 아래 프로토콜, 접근소스, 허용포트를 설정해주셔야 합니다.

  • 접근 소스: ‘ncloud-load-balancer’를 입력합니다. (Load Balancer 메뉴의 하단 ‘내용보기’에서도 확인 가능합니다.)

  • 프로토콜, 허용포트: Load Balancer의 프로토콜 및 서버포트가 ACG에 적용되어 있어야 합니다.

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

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

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

  • 설정 예: 80 포트

② [로드밸런서 상태 확인] 버튼을 클릭하면, 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 생성 시 설정한 내용을 변경합니다.

① 설정 변경할 Load Balancer를 선택합니다.

② [로드밸런서 설정 변경] 버튼을 클릭합니다.

  • 적용 서버의 추가/삭제가 필요한 경우 [적용 서버 변경] 버튼을 클릭하여 이용하시고, 기타 다른 옵션은 내용보기의 옵션 변경기능을 이용합니다.

③ Load Balancer 이름은 디폴트로 출력되며, Load Balancer 설정과 로드밸런싱 알고리즘을 변경하고 [확인] 버튼을 클릭합니다.

적용 서버 변경

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

① 적용 서버를 변경할 Load Balancer를 선택합니다.

② [적용 서버 변경] 버튼을 클릭합니다.

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

모니터링

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

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

② [모니터링] 버튼을 클릭합니다.

③ 해당 Load Balancer에 대한 모니터링을 확인할 수 있습니다.

SSL 인증서 관리

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

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

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

① 변경할 Load Balancer를 선택합니다.

② 변경할 항목을 확인하시고, [EDIT] 버튼을 클릭하여 수정, 저장합니다

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

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

Load Balancer 삭제

Load Balancer를 삭제합니다.

① 삭제할 Load Balancer를 선택합니다.

② [로드밸런서 삭제] 버튼을 클릭합니다.

③ 삭제할 Load Balancer를 확인하시고 [삭제] 버튼을 클릭합니다.



연관 정보 바로가기

아래 가이드에서 연관 정보를 확인할 수 있습니다.

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

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

    처리중...