
이제 로드밸런스의 종류를 GCP에서 알아보자!

→ 애플리케이션 부하분산기를 선택하면 공개 또는 내부 설정으로 연결된다.
→ application layer의 부하분산기이기 때문에 공개 여부만 설정하면 된다.
→ application layer의 부하분산기이기 때문에 Layer 7에서 동작한다.

→ 네트워크 부하분산기를 선택했더니 프록시와 패스 스루 중 선택하라는 단계가 나온다.
→ 네트워크 부하분산기이기 때문에 Layer4 에서 동작한다.
→ 애플리케이션 부하분산기보다 가볍기 때문에 더 빠르게 만들어진다.

→ 프록시 부하분산기를 사용하면 client의 IP는 보이지 않음 → 프록시(LB)의 IP 주소가 보임!
→ client의 IP를 확인하기 위해 X-frowarded for 사용!
→ 패스 스루 부하분산기를 이용하면 client의 IP 주소가 보임!
HTTP 요청 헤더의 하나로, 웹 서버나 로드 밸런서 앞단의 프록시 서버를 통해 웹 서버에 접근한 클라이언트의 원본 IP 주소를 식별하는 데 사용
GET /index.html HTTP/1.1
Host: example.com
X-Forwarded-For: 192.0.2.1, 203.0.113.195
💡 나의 언어로 정리하자면,
프록시로 만든 부하분산기를 사용하게 되면 클라이언트의 IP는 보이지 않는다.
이를 해결해줄 수 있는 것은 X-Forwarded-For !!! 이것의 헤더에 클라이언트 IP가 포함되어 있다.
이제 이렇게 부하분산기의 종류에 대해서 알아봤다면,
각 부하분산기 종류의 실제 동작을 보자!!
//web1과 web2
sudo yum install -y nginx
sudo systemctl start nginx
sudo su
echo "This is web1" > /usr/share/nginx/html/index.html
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
web1과 web2에는 nginx로 This is web1, This is web2 나오게 만들어주고,
nginx에 심볼릭 링크까지 걸어주기!

→ unmanaged ig으로 web1과 web2 선택해서 만들기
→ 인스턴스 그룹 명은 web-ig
[애플리케이션 유형으로 부하 분산기 만들기]

애플리케이션 유형으로 만든 부하 분산기에서 누구의 IP가 찍히는지 확인해보기!
💡 무엇을 확인해야할까?
[root@web1 nginx]# tail -f access.log 를 통해
애플리케이션 부하분산기를 통해 ngnix로 접근하는 IP를 확인할 수 있다.
→ 애플리케이션 부하분산기이니까 부하분산기의 IP 주소가 보여야 한다!
[chohyeon1208@web1 ~]$ sudo su //root 권한으로 바뀌는 명령어
[root@web1 chohyeon1208]# clear
[root@web1 chohyeon1208]# cd /var/log/nginx/
[root@web1 nginx]# ls
[root@web1 nginx]# cat access.log
[root@web1 nginx]# head access.log
[root@web1 nginx]# tail access.log
**[root@web1 nginx]# tail -f access.log
//Nginx 웹 서버의 접근 로그(access.log)를 실시간으로 모니터링**
//위 명령어의 결과는 아래에서 확인하기

→ 애플리케이션 유형으로 만든 부하분산기이니까 부하분산기의 IP가 보임
→ 부하분산기 삭제 (백엔드도 삭제)



[root@web1 nginx]# tail -f access.log

→ 패스스루로 로드밸런스를 만들어주니까 클라이언트 IP가 그대로 찍히는 것을 확인할 수 있음!
프록시 부하분산기로 만들면 프록시 즉 로드밸런스의 IP주소가 찍힘!!