로드 밸런싱 : 수많은 사용자의 요청(트래픽)이 한 서버에만 몰려 터지지 않도록, 여러 대의 서버로 골고루 나누어 배달해주는 인프라의 교통정리원이다.
로드 밸런서 : 트래픽을 나눠주는 장치나 프로그램(도구)
→ 로드 밸런서(도구)를 활용하여 트랙픽을 분산하는 로드 밸런싱(기술)을 구현한다.
현대에 모든 정보는 인터넷을 통한다. 전세계적으로 많이 사용하는 유튜브도 시청을 하거나 좋아요를 누르기 위해 인터넷을 사용해야 한다.
이처럼 아무리 성능이 뛰어난 서버라고 해도 모든 트래픽을 감당할 수 없다. 이를 해결하기 위해서 서버를 추가하고 여러 대의 서버에 동일한 데이터를 저장해 수많은 트래픽을 분산한다. 하지만 쏟아지는 트래픽을 여러 대의 서버로 효과적으로 분산해주는 기술이 없다면 한 곳의 서버에 모든 트래픽이 몰리는 상황이 발생할 수 있다. 이때 사용하는 기술이 로드 밸런싱이다.

여기서 로드 밸런서는 한 서버에 몰려 터지지 않도록 부하(로드)를 분산(밸런싱)해주는 장치이다.
만약 서버가 안 터지게 하려고 로드 밸런서(LB)를 뒀는데, LB가 죽으면 전체 서비스가 중단이 된다. 이 문제를 해결하기 위해 로드 밸런서 자체를 2대를 둔다. 이를 이중화라고 하는데 이중화 서비스가 죽지 않기 위해 이중화 관리가 필수이다.
이중화에는 엑티브와 스탠바이 2개가 있다.

평상시에는 Active LB가 혼자서 열심히 일하고, StandBy LB는 아무 일도 안하고 대기한다.
장애 발생 시 Active LB가 죽으면 가상 IP(VIP)를 통해 StandBy LB가 자동으로 Active로 전환되어 서비스를 중단 없이 이어갈 수 있다.
죽은 Active를 살리면 그 StandBy가 된다.
하지만 이런 방식은 대기 중인 StandBy의 자원이 그대로 낭비가 된다.
자원 낭비를 막기 위해 대기 LB를 없애고 LB1과 LB2를 둘 다 Active(작동 중) 상태로 묶어서 운영하면 된다. 이를 클러스터링 방식이다.
개념 : 자원 낭비를 막기 위해 대비 StandBy를 없애고, LB1과 LB2를 둘 다 Active상태로 운영하는 방식이다.
특징
단점 : 두 개의 장비를 상시 동시에 운영해서 인프라 비용이 2배가 든다.
들어온 요청을 어떤 서버로 보낼지 결정하는 방식이 Round Robin, 가중치, Least Connection으로 3가지가 있다.
→ 서버들의 사양(스펙)이 전부 동일할 때 가장 공평하고 단순하게 트래픽을 나눌 수 있는 기본 방식이다.
방식 : 서버들의 하드웨어 컴퓨터 성능이 서로 다를 때 성능 비율에 맞춰 배분 가중치를 조절한다.
동작 예시 : 신형 서버1(가중치 3), 구형 서버2(가중치 1)로 설정하면 → 들어오는 요청 4개 중 3개는 신형 서버1로 가고 1개만 구형 서버2로 가게 비율이 제어된다.
→ 돈을 더 많이 쓴 비싼 서버의 자원을 낭비하지 않고 100% 효율적으로 사용할 수 있다.
→ 사용자가 단순히 페이지를 보는 게 아니라 파일을 다운로드하거나 로그인을 유지하는 등, 서버에 머무는 시간(세션 유지 시간)이 제각각 다를 때 사용하면 서버가 안터지게 잘 방지해준다.
특정 서버에 장애가 나거나 유지보수 중일 때, 로드 밸런서가 이를 자동으로 감지하여 멀쩡한 다른 서버로 트래픽을 돌려준다.
사용자가 갑자기 증가해도 클릭 몇 번으로 서버를 추가(Scale-out)하고 트래픽을 지능적으로 분산시켜 병목 현상을 막는다.
악의적으로 수백만개의 요청을 보내 서버를 마비시키는 DDoS 공격이 들어오면 공격 트래픽을 여러 서버로 쪼개어 충격을 최소화하거나 방화벽을 통해 악성 콘텐츠를 차단한다.
서버의 로드를 균등하게 나누어 전체적인 응답 속도를 높이고, 필요한 경우 사용자와 지리적으로 가장 가까운 데이터 센터로 요청을 보내 연결 지연을 줄인다.
→ 💡핵심 차이점 요약
| 구분 | 로드 밸런서 | 로드 밸런싱 |
|---|---|---|
| 분류 | 장치, 프로그램 | 기술, 방법 |
| 정의 | 트래픽을 나누어주는 "기계/도구" | 트래픽을 골고루 분산시키는 "행동/기술" |
| 역할 | 손님들을 빈자리로 안내해주는 지배인 | 지배인이 손님들을 안 밀리게 이리저리 나눠 앉히는 행위(기술) |
이해하기 쉽게 비유를 하자면 대형 마트에 갑자기 수천 명의 손님이 몰려와 계산하려고 하는데 계산대가 2개밖에 없다면 마트는 비상이 된다. 이를 해결하기 위해 계산대를 늘리는데 이렇게 밀려드는 트래픽(손님)을 감당하기 이해 기존 서버와 똑같은 쌍둥이 서버 컴퓨터를 옆으로 한 대, 두 대 계속 추가해 늘리는 행위를 스케일 아웃(Scale-out)라고한다.
이 스케일 아웃은 서버를 계속 늘릴 수 있고 서버 한 대가 갑자기 고장이 나거나 불이 나도 다른 쌍둥이 서버를 사용하면 되니까 서비스가 멈추지 않는 장점을 가지고 있다.
마트는 새벽에 손님이 거의 없다. 근데 낮에 늘린 계산대 직원들이 그대로 있다면 쓸데 없는 인건비만 빠져나가 돈 낭비가 생긴다. 이를 해결하기 위해 기존에 있던 계산대빼고 다 퇴근시킨다.
이처럼 트래픽이 다시 한산해졌을 때 늘려놓았던 서버 컴퓨터의 개수를 차근차근 줄여서 다시 원래대로 축소하는 행위를 스케일 인(Scale-in)이라고 한다.
이 스케일 인은 서버를 빠르게 반납하면 회사의 인프라 비용을 많이 아낄 수 있는 장점을 가지고 있다.
위의 스케일 아웃과 스케일 인을 24시간 개발자가 수동으로 조작하는 것은 거의 불가능에 가깝다. 이 과정을 시스템이 트래픽을 감시하여 자동으로 처리해주는 기술이 오토 스케일링(Auto Scaling)이다.
사용자가 몰리는 수강신청이나 할인기간에는 알아서 스케일 아웃으로 서버를 늘리고 이벤트가 끝나 트래픽을 줄어들면 알아서 스케일 인으로 서버를 줄여준다.
💡 핵심 정리: "인프라 환경에 로드 밸런서(ALB)라는 도구를 배치하여, 서버가 터지지 않도록 트래픽을 분산하는 로드 밸런싱 기술(라운드 로빈 등)을 구현한다"라고 이해하면 된다.
출처
튜터님의 설명
AWS 로드밸런싱