사용하기 전에

Q. 로드밸런서(Load Balancer, LB)는 몇 개까지 생성할 수 있나요?

  • 생성 가능한 로드밸런서(Load Balancer, LB)의 수는 특별히 한정되어 있지 않습니다.

Q. 하나의 로드밸런서(Load Balancer, LB)에 몇 대 서버를 바인드할 수 있나요?

  • 하나의 로드밸런서(Load Balancer, LB)는 최대 50대의 서버를 바인드할 수 있습니다.

Q. 하나의 로드밸런서(Load Balancer, LB)에 여러 대의 서버를 적용할 수 있나요?

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

Q. 로드밸런서(Load Balancer, LB)에서 지원되는 알고리즘은 어떤 것이 있나요?

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

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

  1. 콘솔에서 로드밸런서(Load Balancer, LB) 생성 후 하단에서 조회되는 LB DNS 이름 확인
  2. DNS에서 CNAME 설정 : 고객의 보유한 서비스 도메인명에 대한 CNAME 레코드로 제공된 로드밸런서 도메인 이름을 등록합니다.

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

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

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

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

Q. 로드밸런서 생성 절차는 어떻게 되나요?

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

step

  1. 콘솔 접속 : 네이버 클라우드 플랫폼에서 제공하는 콘솔에 접속합니다.
  2. 프로모션 선택 : Npac 프로모션(무료) 또는 유료 상품(유료)을 선택합니다.
  3. 로드밸런서 생성 : 로드밸런서 이름과 애플리케이션, 프로토콜, 로드밸런싱 알고리즘을 선택합니다.
  4. 서버 추가 : 로드밸런서에 적용할 서버를 추가합니다.
  5. 설정 정보 보기 : 로드밸런서 설정 정보를 확인하고 생성합니다.

로드밸런서 생성하기

Step1. 콘솔 접속

콘솔에 접속합니다.

① Networking에서 ‘로드밸런서’ 메뉴를 선택합니다.

② 생성한 로드밸런서가 없으므로 다음과 같은 문구가 표시됩니다.

  • 보유중인 로드밸런서가 없습니다. [로드밸런서 생성]을 클릭하여 신규 로드밸런서를 생성합니다.
  • 생성된 서버가 없어도 로드밸런서 생성이 가능합니다.

③ 로드밸런서를 생성하려면 [로드밸런서 생성] 버튼을 클릭합니다.

Step2. 로드밸런서 생성

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

① 로드밸런서 이름을 입력합니다.

② 프로토콜을 선택합니다.

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

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

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

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

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

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

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

로드밸런서 설정 시 주의 사항

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

  1. 하나의 로드밸런서는 최대 5개까지의 애플리케이션을 지원합니다.
  2. 하나의 로드밸런서에 설정한 애플리케이션은 적용 서버에 모두 반영됩니다.
  3. 하나의 로드밸런서에서 로드밸런서 포트는 겹침이 없어야 합니다.
    • 22, 3389, 64000, 65130, 65131, 18080~18095 포트는 로드밸런서 관리용으로 사용되어 이용할 수 없습니다.
  4. 하나의 로드밸런서에서 서버 포트는 겹침이 허용됩니다.
    • 단, HTTP 프로토콜인 경우 서버 포트를 겹쳐서 사용할 수 있으며 이 경우 L7 Health Check 경로가 동일해야 합니다.
  5. 프로토콜이 HTTP/HTTPS인 경우 L7 Health Check를 설정할 수 있습니다.

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

로드밸런서 Proxy Protocol 설정하기

로드밸런서에서 Proxy Protocol 설정하는 방법은 아래와 같습니다.

  1. Proxy Protocol 이란?

    로드밸런서에서 TCP, SSL, HTTPS 프로토콜 이용 시, Proxy 환경에서 Connection을 요청하는 Client IP (Original Client IP address)를 확인할 수 있는 프로토콜입니다.

    • 로드밸런서 설정 시 프로토콜 별 Client IP 확인은 아래 표를 참고해주세요.
      HTTP, HTTPS TCP, SSL
      X-Forwarded for Proxy Protocol
    • 로드밸런서 Rule 설정 시 Proxy Protocol 사용을 체크하면, 로드밸런서에서 아래와 같이 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
  2. Proxy Protocol 지원 Apache 및 NginX 버전

    • Apache 2.2
    • Apache 2.4
    • NginX 1.11.12
  3. Apache 에서 Proxy Protocol 설정 예제

    1. 관리 콘솔에서 로드밸런서 생성 또는 설정 변경 시, [로드밸런서 설정 > 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>
      

사설 로드밸런서

  • 외부에 노출되지 않고 내부에서 로드밸런싱이 필요한 경우 사설 LB를 이용해서 활용 할 수 있습니다.
  • 사설 로드밸런서의 사용법은 공인IP 기반 로드밸런서와 동일하고 접속하는 방법이 도메인을 사용하지 않고 제공된 사설IP를 이용해서 접근하면 됩니다.
  • Global region 환경에서는 사설 기반 로드발랜서를 사용하는 경우 전용망을 사용함으로 안정적이고 빠른 로드밸런싱이 가능합니다.

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

SSL 인증서 추가합니다.

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

① SSL 인증서 Certificate 이름을 입력합니다.

  • 인증서를 구분하기 위한 인증서 명을 입력합니다.

② SSL 인증서의 Private Key를 입력합니다.

  • 인증서 파일에서 BEGIN, END 라인을 포함해서 private key 내용을 전부 입력합니다.
    예)
     -----BEGIN RSA PRIVATE KEY-----
    MIICXQIBAAKBgQDVCm3………
     -----END RSA PRIVATE KEY-----

③ SSL 인증서의 Public Key Certificate 를 입력합니다.

  • 인증서 파일에서 BEGIN, END 라인을 포함해서 public key 내용을 전부 입력합니다.
    예)
     -----BEGIN CERTIFICATE-----
    MIICazCCAdQ………
     -----END CERTIFICATE-----

④ SSL 인증서의 chainca를 입력합니다.

  • chainca는 SSL 인증서 발급이 같이 발급된 파일이며 보통 chainca라는 파일명으로 발급됩니다. SSL 인증서 발급 시 chainca 파일이 같이 발급된 경우, Certification chain를 미입력하면 인증서 검증 시 오류가 발생됩니다. 인증서 발급시 chainca가 없는 경우에는 Certification chainca를 미입력하면 됩니다.

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

⑥ 보유하고 있는 인증서를 선택합니다.

  • 이전에 추가했던 인증서를 재사용 합니다.

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

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

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

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

  • TLSv1 & TLSv1.1 & TLSv1.2 지원

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

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

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

Step5. 서버 추가

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

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

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

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

Step6. 설정 정보 보기

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

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

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

로드밸런서 목록에서 확인

생성한 로드밸런서를 목록에서 확인합니다.

① 생성한 로드밸런서가 목록에 표시됩니다.

  • 도메인 이름(DNS)과 서버 대수를 확인할 수 있습니다.

② 해당 로드밸런서를 선택하고 하단에 [내용보기]를 통해 ACG 로드밸런서(ncloud-load-balancer)를 확인할 수 있습니다.

로드밸런서 관리하기

로드밸런서 상태 변경을 위한 ACG 설정

로드밸런서의 상태가 ‘운영중’이어야 정상 동작하며, ‘운영중’ 상태 변경을 위해 ACG 설정이 필요합니다.

  • 네이버 클라우드 플랫폼에서 제공하는 로드밸런서는 Internal 용도(사설 로드밸런서)의 기능을 제공합니다. (로드밸런서 설정 시 지정된 '로드밸런서 포트'는 Any (0.0.0.0/0) 대역으로 오픈됩니다.)
  • 로드밸런서에 바인드되어 있는 서버들의 ACG에 로드밸런서에 대한 허용 규칙이 적용되어 있어야 합니다.

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

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

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

로드밸런서 상태 변경을 위한 서버 설정

로드밸런서의 상태가 ‘운영중’이어야 정상 동작하며 ‘운영중’ 상태 변경을 위해 서버 설정이 필요합니다.

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

  • 설정 예) 80 포트

② 로드밸런서에서 서버의 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 파일 설정, 로드밸런서 L7 Health Check를 위해 설정한 이름과 동일하게 설정)

로드밸런서 설정 변경

로드밸런서 생성 시, 설정한 내용을 변경합니다.

① 설정 변경할 로드밸런서를 선택합니다.

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

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

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

적용 서버 변경

로드밸런서 생성 시 적용한 서버를 변경합니다.

① 적용 서버를 변경할 로드밸런서를 선택합니다.

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

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

모니터링

로드밸런서의 모니터링을 확인해 보세요.

① 모니터링을 확인할 로드밸런서를 선택합니다.

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

③ 해당 로드밸런서에 대한 모니터링을 확인할 수 있습니다.

SSL Certification 관리

보유하고 있는 SSL Certification를 관리할 수 있습니다.

① 보유하고 있는 SSL Certification 확인하거나 삭제하고자 할 경우, [SSL Certification 관리] 버튼을 클릭합니다.

② SSL Certification 리스트를 확인할 수 있으며, 삭제도 가능합니다.

③ 새 Certification를 추가하고자 할 경우, [Certification 추가] 버튼을 클릭하여 입력합니다.

connection timeout, keep-alive 설정 변경

로드밸런서의 connection timeout 또는 keep-alive 설정을 변경합니다.

① 변경할 로드밸런서를 선택합니다.

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

  • HTTP Keep-alive : 연결된 Connection을 일정시간 동안 유지하면서 다시 연결을 요청할 때 기존에 연결된 Connection을 재사용하는 옵션입니다.
  • connection Idle Timeout : 로드밸런서와 연결된 Connection을 유지하는 시간으로 해당 시간이 지나면 Connection이 강제로 Close 되어서 연결이 해제됩니다. Long transaction을 지원하는 Application이 필요한 경우 해당 옵션을 조절해서 Connection 연결 시간을 설정하면 됩니다.

로드밸런서 삭제

로드밸런서를 삭제합니다.

① 삭제할 로드밸런서를 선택합니다.

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

③ 삭제할 로드밸런서를 확인하시고 [예] 버튼을 클릭합니다.

연관 정보 바로가기

아래 가이드를 통해 보다 다양하고, 풍부한 연관 정보를 확인하실 수 있습니다.

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

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

    처리중...