적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

컴퓨터시스템

로드밸런스 헬스체크

hongssup_ 2024. 10. 1. 08:58
반응형

운영 서버 5개 쓰고 있는데

api 하나 쳐도 서버 3개에 돌아서 트랜잭션 어쩌구 저쩌구 그래서 안되는 문제

 

 

로드밸런싱 (Load Balancing)

로드밸런싱은 여러 서버로 들어오는 트래픽을 효율적으로 분산하여 서버의 부하를 줄이고, 애플리케이션의 가용성과 성능을 높이는 기술

 

주요 역할:

1. 트래픽 분산:

클라이언트 요청을 여러 서버로 균등하게 분산하여 특정 서버에 과부하가 걸리지 않도록 함.

2. 장애 허용:

하나의 서버가 장애가 발생하면 나머지 서버로 트래픽을 재분배하여 서비스 중단을 방지.

3. 스케일링 지원:

서버 수를 유동적으로 늘리거나 줄이는 스케일링 작업에서 필수적으로 사용됨.

 

로드밸런싱 방식:

1. 라운드 로빈 (Round Robin): 요청을 순차적으로 각 서버에 분배.

2. 가중 라운드 로빈 (Weighted Round Robin): 서버마다 부하 처리 능력에 따라 가중치를 부여하여 요청 분배.

3. Least Connections: 현재 연결 수가 가장 적은 서버로 요청 전달.

4. IP 해싱 (IP Hash): 클라이언트의 IP를 기반으로 요청을 특정 서버에 고정적으로 전달.

 

헬스체크 (Health Check)

헬스체크는 서버의 상태를 주기적으로 모니터링하여 정상적으로 동작하는지 확인하는 작업입니다.

 

주요 역할:

1. 서버 상태 확인:

서버가 정상적으로 응답하는지 여부를 확인하여 트래픽을 전달할 대상 서버를 결정.

2. 비정상 서버 격리:

헬스체크 결과 비정상 서버로 판정되면 로드밸런서는 해당 서버로 트래픽을 전달하지 않음.

3. 복구 시 자동 추가:

비정상 서버가 다시 정상 상태로 복구되면 자동으로 트래픽 전달 대상에 포함.

 

헬스체크 방식:

1. Ping Check:

서버에 Ping 요청을 보내 응답 확인.

2. HTTP/HTTPS Check:

특정 URL 또는 엔드포인트에 HTTP/HTTPS 요청을 보내 응답 상태 코드 확인(예: 200 OK).

3. TCP Check:

특정 포트에 대한 TCP 연결 성공 여부 확인.

4. 애플리케이션 수준 체크:

서버의 특정 기능(예: 데이터베이스 연결)을 실제로 테스트하여 헬스 상태를 확인.

 

 

로드밸런싱과 헬스체크의 관계

로드밸런서는 헬스체크를 통해 서버의 상태를 지속적으로 모니터

비정상 서버는 트래픽 분배 대상에서 제외하고, 정상 서버만 대상으로 삼아 부하를 분산

두 기술은 함께 사용되어 안정성과 성능을 보장

728x90
반응형

'컴퓨터시스템' 카테고리의 다른 글

Bearer Token 이란?  (0) 2024.12.22
DNS 와 도메인에 대하여  (0) 2024.09.30
스케일링 Scaling  (0) 2024.08.20
.env 파일이란? + 생성하기  (0) 2023.12.15
command line 명령어  (0) 2023.09.12