서버나 네트워크 트래픽을 분산시켜 성능과 가용성을 최적화하는 인프라 구성요소
Load (부하) Balancer (분산)
Load Balancer
단순히 서버를 많이 운영해도 트래픽이 몰리지 않도록 적절히 분산해줄 필요가 있다.
클라이언트로부터 오는 요청을 여러 서버로 분산하여 [가용성, 확장성, 고가용성, 보안]을 보장할 수 있다.
- 가용성: 트래픽을 분산함하여 특정 서버의 과부하를 방지한다.
- 확장성: 서버를 추가하여 성능을 확장한다.
- 고가용성: 장애가 발생한 서버를 감지, 요청을 다른 정상인 서버로 전달
- 보안: SSL/TLS 종료, DDos 방어, 방화벽을 통한 보안계층 제공
주요 기능
- 트래픽 분산
부하를 여러 서버로 나눈다 - Health Check
서버의 상태를 지속적으로 모니터링하여 비정상 서버로의 요청 전달 방지 - SSL/TLS 종료
로드 밸런서에서 암호화/복호화를 처리하여 백엔드 서버의 부하 감소 - 세션 지속성
특정 클라이언트의 요청을 동일 서버로 보냄 (쿠키 기반, IP 기반) - 자동 스케일링 지원
서버 추가/제거 시 동적으로 트래픽 분배 - DDos 방어
트래픽을 분산하여 대규모 공격의 영향을 최소화
주요 유형
네트워크 레벨 로드 밸런서 (Layer 4 Load Balancing)
- 전송 계층 (TCP/UDP) 에서 작동
- 클라이언트이 IP와 port를 기반으로 트래픽을 분산
애플리케이션 레벨 로드 밸런서 (Layer 7 Load Balancing)
- 애플리케이션 계층 (HTTP/HTTPS)에서 작동
- 요청의 내용(header, cookie, url..)을 기반으로 분산
- SSL/TLS 처리, HTTP 리다이렉션, 캐싱, 인증 등을 지원
글로벌 로드 밸런서
- DNS 기반 트래픽 관리
사용자 지리적 위치에 따른 가장 가까운 지역으로 트래픽을 라우팅
로드 밸런서의 다양한 알고리즘
다양한 알고리즘을 통해 요청을 분산한다.
- Round Robin
요청을 서버에 순차적으로 분배, 균등한 트래픽 분산에 적합하지만 서버 부하 고려를 하지 않음. - Least Connections
현재 활성 연결 수가 가장 적은 서버로 요청 전달. 동적 트래픽 환경에서 효율적 - Weighted Round Robin
서버의 처리 능력에 따라 가중치를 부여하여 요청 분산 - IP Hash
클라이언트의 IP 주소를 해시하여 특정 서버로 요청 전달, 세션 지속성 유지에 유용 - Random
무작위로 요청을 서버에 전달
'BackEnd' 카테고리의 다른 글
| 소프트웨어 아키텍처 (Software Architecture) (0) | 2025.01.16 |
|---|---|
| 디자인 패턴 (0) | 2025.01.14 |
| [bcrypt] 비밀번호가 관리되는 방식 (0) | 2024.12.27 |
| 파일 송수신[1] (feat. S3, ws) (2) | 2024.12.19 |
| Amazon Elastic Container Service 공략 (0) | 2024.12.11 |