1. 로드밸런서는 트래픽을 백엔드나 다운스트림 EC2 인스턴스로 전달하는 역할을 한다.
2. 애플리케이션에 단일 액세스 지점(DNS)을 노출한뒤 뒤단에서는 여러 인스턴스로 연결하여, 장애가 발생한 인스턴스를 숨길 수 있다.
3. ELB에는 4개 종류의 Load Balancer가 있다.
CLB(Classic Load Balancer) : HTTP, HTTPS, TCP, SSL (secure TCP)
ALB(Application Load Balancer) : HTTP, HTTPS, WebSocket
- ALB는 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산한다.
- HTTP/2와 WebSocket을 지원하며, 리다이렉트를 지원하므로 HTTP에서 HTTPS로 트래픽을 자동 리다이렉트 하려는 경우 ALB에서 처리가 가능하다.
- URL 대상경로에 기반한 라우팅이 가능하다. 예를 들면, example.com/users나 example.com/posts를 다른 대상그룹에 리다이렉트 할 수 있다. 마이크로서비스나 컨테이너 기반 애플리케이션에 가장 좋은 로드밸런스이다.
- 포트 매핑기능이 있어 ECS 인스턴스의 동적 포트로의 리다이렉션도 가능하다.
- CLB와 비교하면 로드밸런서 뒤에서 다수의 애플리케이션을 사용하는경우라면 여러개의 CLB가 필요할테지만, ALB는 하나로 모두 처리가 가능하다.
- ALB를 사용하는경우 애플리케이션 서버는 클라이언트의 IP를 직접보지못하며, 클라이언트의 IP는 X-Forwarded-For라는 헤더에 삽입된다. X-Forwared-Port와 X-Forwarded-Proto도 얻게된다.
NLB(Network Load Balancer) : TCP, TLS (secure TC), UDP
GWLB(Gateway Load Balancer) : 3계층 (Network Layer) - IP Protocol
4. 일부 로드밸런스들은 내부에 설정이 가능해서 네트어ㅜ크에 프라이빗 접근이 가능하고, 웹사이트와 애플리케이션 모두에 사용이 가능한 외부 공공 로드밸런서도 있다.
5. 상태확인(Health Checks)란 로드밸런스가 EC2 인스턴스의 작동이 올바르게 되고 있는지 여부를 확인하기 위한 행위를 말한다. 인스턴스가 제대로 작동하지 않는다면 해당 인스턴스로는 트래픽을 보내면 안되므로 상태확인은 아주 중요하다.
6. 상태확인은 포트와 라우트에서 이루어진다.