부하분산 로드밸런싱(Load

1. 부하 분산이란 무엇입니까?

부하 분산은 중앙 장치에서 리소스를 분산시키는 네트워크 기술입니다.

한 대의 서버에 부하가 집중되면 정전이 발생할 수 있으므로 서버에서 발생하는 부하(=부하)를 분산(=균형)되도록 트래픽을 관리한다.

서비스의 규모가 커지고 사용자가 늘어남에 따라 기존 서버만으로는 원활한 서비스 제공이 불가능합니다.

해결책으로

1. 기존 서버의 Scale-up 방식

2. 기존 서버에 유사한 성능의 서버를 추가하여 Scale-out 방식으로 접근

예를 들어 스케일 아웃 방식으로 이 작업을 수행한 경우 균등하게 분산하려면 로드 밸런서가 필요합니다.

2. 로드밸런서의 종류

로드 밸런싱을 수행하는 두 가지 유형의 로드 밸런서가 있습니다.

L4 로드 밸런서 대 L7 로드 밸런서

L4 로드 밸런서 L7 로드 밸런서
네트워크 계층 계층 4 – 전송 계층 계층 7 – 애플리케이션 계층
특성 TCP/UDP 포트 정보로 구성 TCP/UDP 정보 + 어플리케이션 헤더, 쿠키 정보로 구성
장점 Data Check X, 빠른 속도와 높은 효율성을 위한 패킷 수준 로드 밸런싱
비교적 싸다.
상위 계층의 로드 밸런싱을 통해 세부적인 라우팅 분산이 가능합니다.
캐싱 기능, 비정상 트래픽 사전 필터링 가능
불리 패킷 내용 확인 불가, 단순 라우팅만 가능
사용자의 IP가 자주 변경되면 지속적인 서비스 제공이 불가능합니다.
패킷 내용을 복호화해야 하므로 비용 부담 증가

3. 로드밸런싱의 종류

다양한 유형의 로드 밸런싱 방법이 있습니다.

라운드 로빈
요청을 서버에 재할당하는 방법
서버와의 연결 세션이 오래 지속되지 않는 경우에 적합합니다.

예를 들어 로드 밸런서에 8개의 서버가 연결되어 있고 22개의 서비스 요청을 받았다면 8개의 서버에 2개의 서버가 분배되고 처음부터 순서대로 6개의 서비스가 분배됩니다. 균일한 간격의 세션은 오래 지속되지 않을 수 있습니다.

가중 라운드 로빈
각 서버에 가중치를 부여하여 가중치가 높은 서버에 요청 우선순위를 부여하는 방식입니다.
서버 트래픽 처리 용량이 다를 때 사용합니다.

예) 가장 높은 사양의 서버가 먼저 할당됩니다.

최소 연결
요청을 받았을 때 연결이 가장 적은 서버에 트래픽을 할당하는 방식입니다.
서버로 분산되는 트래픽이 일정하지 않을 때 적합합니다.

IP 해시 방식(IP 해시)
클라이언트의 IP 주소를 특정 서버와 연결하여 요청을 처리하는 방식
사용자는 항상 동일한 서버에 연결됩니다.

-> 세션 쿠키 값을 유지하려면 이렇게 해야 합니다.

최소 응답 시간 방법( 가장 짧은 반응 시간 )

트래픽은 서버의 현재 연결 상태와 응답 시간(서버에 요청을 보낸 후 초기 응답을 받을 때까지 걸리는 시간)을 고려하여 분산됩니다. 연결 상태가 가장 낮고 응답 시간이 빠른 서버에 부하를 우선적으로 주는 방식입니다.

예) 로드밸런서에 8개의 서버가 연결되어 있고 20개의 서버가 들어오면 3개의 추가 서버가 들어오면 3개의 유닛으로 연결된 3개의 서비스와 2개의 유닛으로 연결된 4개의 서비스가 있으므로 연결된 2개의 서버에 부하 분산 .

4. 로드밸런서 실습

L4 서비스 기능 생성 및 사용
로그 확인, 포트 포워딩, 인증서 요청 등

센트OS 7

아파치 httpd 2.4.6 맛있는


4.1 L4 로드 밸런서

로드 밸런서 포트 80

웹 서버의 포트 80에 대한 기본 설정


4.2 포트 포워딩 L4 기능

로드 밸런서 포트 80

웹 서버 포트 8080

두 서버의 청취 포트를 80 -> 8080으로 변경하고 방화벽에서 8080 포트를 열고 httpd를 다시 시작하십시오.

아래 모니터링 대상 페이지는 TCP Direct Input을 통해 라우팅되어 의미가 없습니다.




4.3 L7 로드밸런서 기능

80에서 80

HTTP 프로토콜을 지정하므로 /index.html 또는 /index.php 또는 /index.jsp여야 합니다.



4.4 로드 밸런서에 SSL 인증서 적용

로드 밸런서 포트 443

웹 서버 포트 80

SSL 인증서가 웹 서버에 적용되지 않았습니다.

무료 SSL 인증서 키와 인증서 파일을 받을 수 있습니다. 당신은 당신의 이메일을 확인하고 당신은 그것을받을 것입니다.

https://www.sslforfree.com/


메모장으로 3개의 파일을 엽니다.

메모장으로 파일을 열고 그대로 복사한 후 로드 밸런서에 인증서를 등록합니다.





4.5 감사 기록

부하 분산 장치의 내부 IP만 확인에 사용됩니다.


모듈을 활성화해야 합니다.




#
# 다음 지시문은 다음과 함께 사용할 일부 형식 짧은 이름을 정의합니다.
# CustomLog 지시문(아래 참조).
#
# LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” 결합
# LogFormat “%h %l %u %t \”%r\” %>s %b” 보통

LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %O \”%{Referer}i\” \”%{User-Agent}i\” 결합
LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b” 보통

# LogFormat “%{Referer}i -> %U” 리퍼러
# LogFormat “%{User-agent}i” 에이전트


# %I 및 %O를 사용하려면 mod_logio.c를 활성화해야 합니다.
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %I %O” 결합

#
# 액세스 로그 파일의 위치 및 형식(공통 로그 파일 형식).
# 접속 로그 파일이 없는 경우 정의하다
# 컨테이너, 여기에 기록됩니다. 반대로 *하면*
# 당--액세스 로그 파일 정의, 트랜잭션은
# 로그인했지만 이 파일에 *아닙니다*.
#
#CustomLog “logs/access_log” 공유됨

#
# 액세스, 에이전트 및 리퍼러 정보가 있는 로그 파일을 선호하는 경우
# (통합 로그 파일 형식) 다음 문을 사용할 수 있습니다.
#
CustomLog “logs/access_log” 결합

재부팅 후 로그 IP를 확인하면 일반 클라이언트 IP로 기록됩니다.