
✏️ 로드 밸런싱이란?
- 로드밸런싱 (Load Balancing) 은
'부하분산'이라고도 하며 해석 그대로 일을 밸런스 있게 맞추는 기능입니다.- 로드 밸런싱(Load Balancing)은 여러 서버에 네트워크 트래픽을 균등하게 분산하여 성능을 최적화하고, 가용성을 높이며, 장애 발생 시 서비스 중단을 방지하는 기술입니다. 웹 서비스, 데이터베이스, 애플리케이션 서버 등 다양한 환경에서 사용됩니다.
✏️ 적용 예시
모든 사람들이 12월 31일 23시 59분 59초에 메신저로 친구들을 포함한 지인들에게 새해 인사를 한다고 가정해봅시다.
한낱 한시에 메신저를 보내면 한꺼번에 많은 트래픽이 몰리게 되고 서버는 그 트래픽을 감당해내기가 어려워 부하를 받게 됩니다.
이를 방지하기 위해 우리는 동일한 서버를 여러 대 구비해놓고 트래픽을 분산해서 처리하게 됩니다.
그러나, 단순히 여러대의 서버를 구비해 놓는다고 해서 모든 서버에 적절하게 트래픽을 분산시킬 수 있는 것은 아닙니다.
여러대의 서버 중 트래픽이 몰리는 서버가 존재할 수 있고 이렇게 되면 서비스 장애가 일어날 가능성이 커집니다.
즉, 한 곳의 서버에 트래픽이 몰리는 것을 방지하고 여러 서버에 적절히 분산시켜주는 기술이 바로 로드 밸런싱 입니다.

✏️ 트래픽 분산
✏️ 장애 대응
✏️ 성능 향상
✏️ 확장성
로드 밸런싱은 크게 소프트웨어 기반과 하드웨어 기반으로 나눌 수 있으며, 트래픽을 분산하는 방식에 따라 다양한 알고리즘을 사용할 수 있습니다.
서버의 부담을 줄이기 위해 서버를 확장할 때 아래와 같은 2가지 방법을 사용할 수 있습니다.

서버 자체의 성능을 높이는 것
서버의 자체 사양을 높이는 것을 말합니다.하드웨어적으로는 서버에 디스크를 추가하거나 CPU나 RAM과 같은 자원을 업그레이드 시키는 것을 의미합니다.소프트웨어적으로는 AWS와 같은 클라우드 서비스의 인스턴스 사양을 높일 수 있습니다.Vertical scaling이라고 부릅니다.장점
서버의 자원 늘릴 수 있음관리 비용이나 운영 이슈가 적고 확장 방식이 비교적 간단데이터의 일관성이 유지됨단점
하드웨어적인 비용 부담이 크고 업그레이드 범위가 정해져 있기 때문에 성능 향상에 한계점이 존재서버가 터진다면 바로 서비스 장애로 이어질 수 있음여러 대의 서버를 두는 것
서버의 개수를 늘리는 것을 말합니다.비슷한 사양의 서버를 추가로 연결해 트래픽을 분산시켜 기존 서버의 부하를 줄이는 로드 밸런싱 기술을 사용할 수 있습니다.장점
나머지 서버로 서비스를 운용/유지단점
병렬 컴퓨팅 환경을 구성해야 하기 때문에 관련 아키텍처에 대한 높은 이해도가 요구됨데이터 일관성이 깨질 수 있음(아키텍처 설계 과정이 중요)로드 밸런싱은 단순히 "트래픽을 여러 서버에 나눠서 성능을 최적화하는 기술"
MSA는 "애플리케이션을 여러 개의 작은 서비스로 나누어 관리하는 설계 방식"
| 로드 밸런싱 | 마이크로서비스 아키텍처 (MSA) | |
|---|---|---|
| 개념 | 여러 서버에 트래픽을 분산하여 부하를 균등하게 조절하는 기술 | 애플리케이션을 여러 개의 독립적인 서비스(마이크로서비스)로 나누어 운영하는 아키텍처 |
| 목적 | 성능 최적화, 가용성 향상, 장애 대응 | 확장성 증가, 유지보수 용이, 독립적 배포 가능 |
| 작동 방식 | 사용자의 요청을 여러 서버에 분산 (L4, L7 로드 밸런싱) | 하나의 애플리케이션을 여러 개의 작은 서비스로 분리하여 각각 독립적으로 실행 |
| 주요 기술 | Nginx, HAProxy, AWS ELB, Kubernetes Ingress | Spring Boot, Docker, Kubernetes, Eureka, API Gateway |
| 확장성 | 서버 개수를 늘려 부하를 줄임 (수직·수평 확장) | 서비스 단위로 개별 확장 가능 (각 서비스별 독립 확장) |
| 예제 | 동일한 웹 서버 3대에 트래픽을 분산 (예: Nginx + 3대의 웹 서버) | 사용자 서비스, 결제 서비스, 상품 서비스가 각각 독립적으로 동작 |
결론
로드 밸런싱이 필수적참고자료