Elastic Load Balancing

개요

4.RESOURCE/KNOWLEDGE/AWS/AWS에서 제공하는 로드 밸런서.
트래픽을 받아서 백엔드로 분산해주는 기본 기능에 충실하나, 다양한 커스텀이 가능하다.

구조

리스너

타겟 그룹

트래픽을 라우팅할 뒷단의 백엔드를 타겟 그룹으로 관리한다.
여러 개의 인스턴스를 하나의 타겟 그룹으로 넣거나 타겟 그룹을 여러 개 두는 것도 가능하다.
대체로 같은 기능을 하는 애플리케이션들을 하나의 타겟그룹으로 묶는 것이 흔할 것이다.

이 타겟 그룹으로 둘 수 있는 대상은 여러 가지가 있다.

인스턴스

EC2 인스턴스를 대상으로 삼는다.

IP

특정 IP를 대상으로 삼는다.
가장 원초적인 방식이라 할 수 있겠으나, 이를 통해 다양한 기능을 넣을 수 있다.

대표적으로 ALB Controller에서는 파드의 IP로 바로 트래픽을 쏠 수 있도록 설정을 할 수 있는데, 이것이 바로 IP를 대상 그룹으로 삼기에 가능한 것이다.

Lambda

람다도 대상으로 삼을 수 있다!
ELB 자체가 이벤트 드리븐 아키텍쳐에 흔하게 쓰이진 않지만, 그래도 사용은 가능하다.

이밖의 AWS 리소스

뭐.. 다양하다..

종류

흔히 많이 쓰는 것은 두 가지이나, 현재로서는 일단 4가지의 로드밸런서 유형이 있다.

Application Load Balancer


L7 계층에서 동작하는 로드밸런서로서 L7의 정보를 읽어서 트래픽을 라우팅할 수 있다.
기본적으로 로드밸런서라 하면 이걸 많이 떠올릴 것이다.
하위 경로가 a면 1 타겟 그룹으로 보내고, 그외에는 2로 보낸다던가..
혹은 어떤 헤더를 가지고 들어왔으면 어디로 보낸다던가 하는 등.

HTTP, gRPC 등의 다양한 프로토콜을 지원한다.
어차피 http/2면 grpc가 가능하니 당연한 거 아니냐 싶을 수도 있는데, grpc로 지정하면 이에 대한 커스텀 기능을 조금 더 제공한다던가 하는 식이다.

한 가지 특징으로, ALB는 고유한 IP를 가질 수 없다.
IP 자체는 AWS 측에서 관리하고 고유한 도메인만을 가질 뿐이다.

Network Load Balancer

L4 계층에서 동작하는 로드 밸런서이다.
ALB처럼 상세한 트래픽 라우팅은 불가능하지만, 대신 훨씬 빠른 트래픽처리를 해낼 수 있다.
TCP 프로토콜만 처리 가능하다고 하나, UDP도 가능은 하다.

이 친구는 설정에 따라 고유한 IP를 할당해줄 수 있다.

Gateway Load Balancer

Classic Load Balancer

참고