서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역활을 하는 것이다.
서버에 가해지는 트래픽에 따라 서비스의 작동에 에러가 있을텐데, 이러한 문제해결을 위해서는 크게 두가지 방법이 있다.
서버의 인스턴스 성능을 올리는 SCALE-UP 과 서버를 여러대로 나누어서 트래픽을 처리하는 SCALE-OUT 방식이있다.
💨 로드 밸런서는 SCALE-OUT 방식이다.
또한 지속적으로 IP주소가 바뀌기 때문에 도메인 기반으로 사용해야한다.
⭕ 장점
📍 비용 절감
📍 무중단 서비스 제공
주요 기능
📍 NAT
📍 터널링
서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식 서버와의 연결이 오래 지속되지 않을 경우 적합하다.
가중 라운드 로빈
각 서버에 가중치를 매기고 가중치가 높은 서버에 요청을 우선적으로 배정하는 방식
서버의 트래픽 처리 능력이 다를 경우 사용
최소 연결 방식(Least Connections)
요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 트래픽을 배정하는 방식
서버에 들어온 트래픽들이 일정하지 않은 경우에 적합하다.
IP 해시 방식(Source)
클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식
사용자가 항상 동일한 서버로 연결된다.
타겟그룹이란 EC2인스턴스를 오토스케일링 할 수 있는 단위로 사용된다.
각각의 타겟그룹에 있는 인스턴스들은 정의된 Health Checks(상태 확인)를 수행하게된다.
오토 스케일링은 미리 정의한 용량 정책에 따라 EC2 인스턴스의 용량을 확대하거나 축소할 수 있다. EC2와 토오 스케일링을 결합해 고가용성 아키텍처를 구현할 수 있으며, 언제든 원하는 수만큼의 인스턴스를 운용할 수 있다.
서버의 과부하, 장애 등과 같이 서비스 불능 상황 발생시 자동으로 서버를 복제하여 서버 대수를 늘려주는 작업을 해주는 AWS 서비스라고 생각하시면 된다.
고가용성: 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질, 보통 고가용성을 위해 2개의 서버를 연결하는 방식을 사용한다.
로드밸런서에는 Health Checks를 할 수 있다.
Health Checks는 타겟그룹에 원하는 경로와 포트를 설정하여 HTTP 응답이 정상적으로 오는지 확인하고, 오지 않는다면 비정상 상태의 인스턴스를 제외한 다른 인스턴스로만 트래픽을 분산한다.