- 인쇄
- PDF
Target Group 생성 및 관리
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
Target Group은 하나 이상의 등록된 대상에 요청을 분배하는데 사용됩니다. 즉, 요청을 처리할 대상(서버)에 대한 집합이며 이는 Load Balancer 서비스에서만 사용됩니다. Load Balancer의 리스너를 생성할 때 동작에 대한 Target Group을 지정하고, 조건에 따라 트래픽을 분배하게 됩니다.
- Target Group은 등록 대상에 대하여 정의한 헬스체크를 수행합니다. 서비스를 수행하는 대상의 프로토콜에 따라 L4, L7 수준으로 상태를 확인합니다.
- Target Group은 Zone과 Subnet에 상관없이 동일 VPC내 모든 대상(서버)을 등록할 수 있습니다.
- Target Group은 연결된 로드밸런서의 추가 리스너에서는 재사용이 가능하지만 다른 로드밸런서와 중복 연결은 지원되지 않습니다.
Target Group 생성
Target Group을 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
- Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- [Target Group 생성] 버튼을 클릭해 주십시오.
- Target Group 생성 화면이 나타나면 다음 단계를 차례대로 진행해 주십시오.
1. Target Group 생성
생성할 Target Group의 정보를 입력한 후 [다음] 버튼을 클릭해 주십시오.
Target 유형 : 일반 VPC 서버와 Transit VPC 서버를 선택해 주십시오.
VPC: 등록할 Target(서버)이 포함된 VPC를 선택해 주십시오.
프로토콜: Target의 역할에 따라 프로토콜을 선택해 주십시오.
선택한 프로토콜에 따라 연결할 수 있는 Load Balancer 유형이 달라지며, 프로토콜별 Load Balancer 유형은 다음과 같습니다.
프로토콜 로드밸런서 TCP, UDP Network Load Balancer PROXY_TCP Network Proxy Load Balancer HTTP, HTTPS Application Load Balancer IP Inline Load Balancer
포트: 각 Target이 서비스(Listen) 중인 포트 번호를 입력해 주십시오.
- 입력된 포트로 트래픽을 전달합니다.
- Transit VPC Server 유형을 선택하면 비활성화 됩니다.
2. Health Check 설정
Target Group의 Health Check 정책을 설정한 후 [다음] 버튼을 클릭해 주십시오.
- 프로토콜: Target의 상태를 확인할 수 있는 프로토콜을 선택해 주십시오.
- Target Group의 프로토콜이 TCP/PROXY_TCP/IP인 경우 TCP만 선택할 수 있으며, HTTP/HTTPS인 경우 HTTP 또는 HTTPS를 선택할 수 있습니다.
- 포트: Target의 상태를 확인할 수 있는 포트 번호를 입력해 주십시오.
- 상태를 확인할 수 있다면 1. Target Group 생성에서 입력한 포트 번호와의 일치하지 않아도 됩니다.
- 1. Target Group 생성에서 HTTP 또는 HTTPS 프로토콜을 선택한 경우, 다음 내용을 확인하여 URL Path와 HTTP Method을 입력해 주십시오.
- URL Method: Target의 상태를 확인할 URL 경로를 입력해 주십시오.
- HTTP Method: Target의 상태를 확인할 HTTP Method(HEAD/GET)를 선택해 주십시오.
- Health Check 주기 (초): Health Check 주기를 5~300초 사이로 입력해 주십시오.
- Target의 상태가 변경되는 임계값을 입력해 주십시오.
- 정상 임계값: 비정상 상태의 Target이 다시 서비스에 투입되기 위해 성공해야 하는 상태 확인 횟수
- 실패 임계값: 정상 상태의 Target이 실패하면 비정상 상태로 전환되어 부하 분산 Target에서 제외되는 횟수
3. Target 추가
- 전체 Target 영역에서 Target Group에 포함시킬 Target을 선택해 주십시오.
- 전체 Target은 VPC 내 모든 서버를 대상으로 합니다.
- Transit VPC Server 유형의 Target Group은 3rd Party 이미지로 생성된 서버만 보입니다.
- [>] 버튼을 클릭하여 적용 Target 영역으로 이동해 주십시오.
- 적용 Target 영역에 포함된 Target을 제거하려면 제거할 Target을 선택한 후 [<] 을 클릭해 주십시오.
- [다음] 버튼을 클릭해 주십시오.
4. 설정 정보 보기
Target Group의 설정 정보를 확인한 후 [Target Group 생성] 버튼을 클릭해 주십시오.
Target Group 관리
생성한 Target Group은 설정을 변경하거나, Target을 추가/제거하거나, Health Check 설정을 변경할 수 있으며, 모니터링 정보를 그래프로 확인할 수 있습니다.
Target Group 설정
Target Group 설정 정보를 확인하고 설정을 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- 설정 정보를 확인하거나 변경할 Target Group을 선택한 후 [TargetGroup 설정] 버튼을 클릭해 주십시오.
- Target Group 설정 팝업 창이 나타나며, Target Group의 설정 정보를 확인할 수 있습니다.
- 변경 사항을 적용한 후 [확인] 버튼을 클릭해 주십시오.
- Sticky Session 설정 여부, Proxy Protocol 적용 여부, 로드밸런싱 알고리즘을 변경할 수 있습니다.
- Sticky Session은 헤더에 서버 고유 아이디를 추가하여 다음 요청이 발생하여도 같은 서버로만 전달되도록 하는 기능입니다.
- Target Group의 프로토콜이 TCP/UDP/HTTP/HTTPS인 경우에만 체크 박스가 활성화됩니다.
- Proxy Protocol은 Target Group의 프로토콜이 PROXY_TCP인 경우에만 활성화됩니다.
- Proxy Protocol 설정에 관한 자세한 내용은 Proxy Protocol을 참고해 주십시오.
- 로드밸런싱 알고리즘은 Round Robin/Least Connection/Source Ip Hash 중에 선택할 수 있습니다.
- Target Group의 프로토콜이 TCP, UDP 및 IP인 경우, Least Connection은 옵션에서 제외됩니다.
- 로드밸런싱 알고리즘에 관한 자세한 설명은 네이버 클라우드 플랫폼 포털의 서비스 > Networking > Load Balancer 또는 본 가이드의 FAQ에서 확인해 주십시오.
Health Check 설정
Target Group에 설정된 Health Check 정책을 확인하고 설정을 변경하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- Health Check 정책을 설정할 Target Group을 선택한 후 [Health Check 설정] 버튼을 클릭해 주십시오.
- Health Check 설정 팝업 창이 나타나며, Health Check 정책을 확인할 수 있습니다.
- 변경 사항을 적용한 후 [확인] 버튼을 클릭해 주십시오.
- Health Check 정책 설정의 각 항목에 대한 자세한 설명은 2. Health Check 설정을 참고해 주십시오.
Target 설정
Target Group에 포함된 Target을 확인하고 추가/제거하는 방법은 다음과 같습니다.
Load Balancer에 적용된 서버를 변경하고자 할 경우, Load Balancer에 추가한 Target Group의 Target을 변경해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- Target을 설정할 Target Group을 선택한 후 [Target 설정] 버튼을 클릭해 주십시오.
- Target 설정 팝업 창이 나타나며, Target Group에 포함된 Target을 확인할 수 있습니다.
- Target을 추가하려는 경우, 전체 Target 영역에서 추가할 Target를 선택한 후 [>] 버튼을 클릭해 주십시오.
- 전체 서버는 VPC 내 모든 서버를 대상으로 합니다.
- Transit VPC Server 유형의 Target Group은 3rd Party 이미지로 생성된 서버만 보입니다.
- 포함된 Target을 제거하려는 경우, 적용 Target 영역에서 제거할 Target을 선택한 후 [<] 버튼을 클릭해 주십시오.
- [확인] 버튼을 클릭해 주십시오.
Target 상태 확인
Target 상태를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- Target 상태를 확인할 Target Group을 선택한 후 [Target 상태 확인] 버튼을 클릭해 주십시오.
- Target 상태 팝업 창이 나타나며, 설정된 Health Check 정책에 따라 Target Group 내 Target 상태를 확인할 수 있습니다.
Target Group 모니터링
일정 주기로 수집한 Available Host Count와 Unavailable Host Count 정보를 각각 그래프로 확인할 수 있습니다.
선택한 기간에 따라 수집 주기가 달라지며, 부하 분산을 수행하여 수집된 모니터링 정보는 최소 1분부터 최대 최근 1년까지 설정하여 확인할 수 있습니다.
집계 주기(Interval) | 조회 기간 |
---|---|
1분 주기 | 최대 6시간 |
5분 주기 | 최대 1일 |
30분 주기 | 최대 1주일 |
2시간 주기 | 최대 1달 |
1일 주기 | 1달 초과 |
Target Group의 모니터링 정보를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- 모니터링할 Target Group을 선택한 후 [모니터링] 버튼을 클릭해 주십시오.
- Target Group 모니터링 팝업 창이 나타나며, 모니터링 정보를 그래프로 확인할 수 있습니다.
- 기간을 선택하여 선택된 기간 동안 수집된 모니터링 정보를 확인할 수 있습니다.
- [새로고침] 버튼을 클릭하면 조회된 그래프가 새로 고침이 됩니다.
- 을 클릭하면 확대된 그래프를 확인할 수 있으며, [X] 버튼을 클릭하여 수집된 모니터링 정보를 엑셀 파일로 다운로드할 수 있습니다.
Target Group 삭제
Target Group이 Load Balancer에 연결되어 있는 경우, Target Group을 삭제할 수 없습니다. Load Balancer를 먼저 삭제한 후 Target Group을 삭제해 주십시오.
Target Group을 삭제하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > Load Balancer 메뉴를 차례대로 클릭해 주십시오.
- Target Group 메뉴를 클릭해 주십시오.
- 삭제할 Target Group을 선택한 후 [삭제] 버튼을 클릭해 주십시오.
- Target Group 삭제 팝업 창의 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.
- 선택한 Target Group이 삭제됩니다.
Proxy Protocol
Proxy Protocol은 Load Balancer에서 TCP, SSL 프로토콜 이용 시 Proxy 환경에서 연결을 요청하는 클라이언트의 IP 주소(Original Client IP address)를 확인할 수 있는 프로토콜입니다.
Load Balancer 설정 시 프로토콜별 클라이언트 IP 확인 방법은 다음과 같습니다.
프로토콜 | 방법 |
---|---|
HTTP, HTTPS | X-Forwarded-For |
TCP, TLS | 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을 설정하는 방법은 다음과 같습니다.
- Load Balancer 생성 시 1. 로드밸런서 생성 단계에서 TCP 또는 SSL 프로토콜을 선택한 후 Proxy Protocol 체크 박스를 클릭하여 선택해 주십시오.
- 버전에 따라 다음 단계를 확인하여 설정해 주십시오.
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을 설정하는 방법은 다음과 같습니다.
- 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 }
}