brunch
매거진 NCP

5. 네이버 클라우드 Load Balancer 생성하기

by Master Seo

# 로드 밸런서는 서버를 이중화 하기 위해 사용한다.

# 성능을 극대화 하기 위해서도 로드밸런서를 사용한다.



<1> NLB 로드밸런서 생성하기

<2> ALB 로드밸런서 생성하기

<3> 클라이언트 IP 확인을 위한 X-Forwarded-For 설정- ALB 사용 서버 설정 필요

<4> 로드밸런서 테스트용 user 서버 1대 생성




<1> NLB 로드밸런서 생성하기




1

# 사전작업

슬라이드2.JPG
슬라이드3.JPG






Private Subnet에 내서버 이미지로 서버 nlb 서버 1대 생성 - 서버 이름 nlb1

Private Subnet에 내서버 이미지로 서버 alb 서버 1대 생성 - 서버 이름 alb1



2

타겟 그룹 생성

TCP 프로토콜



3

Ncp-Nlb 로드밸런서 생성

Public IP 네트워크

TCP 프로토콜

nlb1 서버 추가


4

[root@s107113338 conf]# tail -f /var/log/httpd/access_log


NLB는 클라이언트 IP가 확인된다.

따로, x-forwarded-for 설정이 필요없다.





<2> ALB 로드밸런서 생성하기


1

타겟 그룹 생성

HTTP 프로토콜



2

Ncp-Alb 로드밸런서 생성

Public IP 네트워크

HTTP 프로토콜

alb1 서버에 대해 URL로 분기



3

ALB는 클라이언트 IP가 확인이 안된다.

서버 로그에는 로드 밸런서 IP로 확인이 된다.

서버 로그에 클라이언트 IP가 찍히도록 하려면 X-Forwarded-For 설정을 해야 한다.









<3> 클라이언트 IP 확인을 위한 X-Forwarded-For 설정- ALB 사용 서버 설정 필요


Apach에서 X-Forwarder-For 설정하여 사용자 IP 확인 하기



1


[root@s107113338 httpd]# cd /etc/httpd/conf

[root@s107113338 conf]# vi httpd.conf

[root@s107113338 conf]# systemctl restart httpd

[root@s107113338 conf]# tail -f /var/log/httpd/access_log



2

set number

201



X-Forwarder-For 설정

%h 를 %{X-Forwarded-For}i 로 변경



변경전

# LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined



LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined



3

서버 로그에서 확인

tail -f /var/log/httpd/access_log


[root@s107113338 conf]# tail -f /var/log/httpd/access_log





<4> 로드밸런서 테스트용 user 서버 1대 생성


기존에 만든서버가 있으면 만든서버 활용

내서버 이미지 생성

NLB 테스트용 웹서버 2대 생성 - pub1에 생성



1

user-vpc

192.168.0.0/16


user-pub1

192.168.0.0/24



2

서버 생성

로키9

user1

pub ip

init-script 사용



3

디폴트 ACG에 80 허용


user-vpc-default-acg

0.0.0.0/0 80 추가

내ip 1~65535 추가



작업

0.0.0.0 22 - 삭제 필요

0.0.0.0 2206 - 삭제 필요


110 삭제.png
120 acg.png





5

nlb2 로드밸런서용 웹서버 2대 생성

pub1에 생성

공인IP 할당으로 생성

타켓 그룹 생성- nlb2

로드밸런서 생성 - nlb2




6

# user 웹서버에서 테스트


nlb2 로드밸런서 웹 접속



# 서버 로그인해서 분산 테스트

// 수정 예정


vi 5.sh


[root@ip-10-2-1-128 ~]# vi 5.sh

nlb=http://nlb2-108143357-347687ba89ae.kr.lb.naverncp.com

for i in {1..20}; do curl $nlb -s -q ; done | sort | uniq -c | sort -nr



:wq!



chmod 700 5.sh

[root@ip-10-2-1-128 ~]# chmod 700 5.sh


./5.sh





다음

https://brunch.co.kr/@topasvga/4937


keyword
매거진의 이전글4. 네이버 클라우드 서버 Operation