로드밸런서 기본 개념
로드밸런서란?

서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 장치/서비스
-> 이를 활용한 기술이 로드 밸런싱
- 사용자의 요청을 여러 대의 서버들에게 균등하게 배정
- 문제가 발생한 서버로 트래픽이 전달되는 것을 방지
- 성능을 높이는 Scale Out을 할 때 필요
- 가용성 · 확장성 · 보안 · 성능 등 많은 이점
동작 방식
클라이언트가 DNS 서버에 IP를 요청
→ DNS 서버가 로드 밸런서의 IP 주소를 전송
→ 클라이언트가 해당 주소로 요청을 보냄
→ 로드 밸런서가 요청을 받아 적절한 서버로 전달
→ 서버가 작업 처리 후 나온 결과를 로드 밸런서가 클라이언트에게 전달
ELB

- AWS에서 제공하는 로드 밸런서
- 운영 중인 서비스로 유입되는 트래픽을 자동 분산 처리해주는
완전 관리형 서비스
- Health Check
- Auto Scaling 기능과 결합하여 인스턴스 추가/제거
ALB vs NLB

Target Group
- 트래픽을 분배할 대상을 정의하고 관리
- 클라이언트의 요청이 어떤 서버 또는 서비스로 전달될지 결정

- 지원대상 : EC2, IP Address,Lambda, ALB, ECS
- HealthCheck : 대상 상태 확인 및 트래픽 분배
- 모니터링 : CloudWatch 연동 및 성능 모니터링
분배 알고리즘
서로 다른 목적과 적합한 케이스 → 유형을 선택하여 사용
1. 정적
- 라운드 로빈(Round Robin)
- 가중치 기반 라운드 로빈(Weighted Round Robin)
- IP 해시 방식(IP Hash)
2. 동적
- 최소 연결(Least Connection)
- 최소 응답 시간(Least Response)
Listener

로드 밸런서로 들어오는 요청을 처리
- 리스너 포트와 프로토콜 설정
- 모든 로드 밸런서는 리스너가 최소 1개 필요
- 최초 생성 시 Default rule을 포함
- -> 다른 룰로 처리되지 않고 남은 모든 요청 처리
Listener Rule
리스너와 타겟 그룹 사이 트래픽 분배를 위한 라우팅 규칙
- 우선순위, 액션, 조건 등의 정보를 담고 조건이 만족됐을 때 지정된 액션을 수행
- path, host HTTP header, source IP, query parameter 등의 다양한 조건 제공