본문 바로가기
Cloud/Amazon Cloud

[ELB] ALB와 NLB 차이

by ganyga 2024. 2. 26.

ALB(Application Load Balancer)

  • L7 로드 밸런서, 즉 HTTP 전용 로드 밸런서
  • 여러 대상 그룹(target groups)의 HTTP 애플리케이션의 라우팅에 사용이 됨
  • 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산함
  • HTTP/2와 WebSocket을 지원함
  • 리다이렉트를 지원하므로 HTTP에서 HTTPS로 트래픽을 자동 리다이렉트하려는 경우 로드 밸런서 레벨에서 가능함
  • 서로 다른 대상 그룹으로 테이블 라우팅 가능
    • URL 대상 경로에 기반한 라우팅이 가능함 : example.com/users, example.com/posts
    • URL의 호스트 이름에 기반한 라우팅이 가능함 : one.example.com, other.example.com
    • 쿼리 문자열과 헤더에 기반한 라우팅이 가능함 : example.com/users?id123&order=false
  • 마이크로 서비스나 컨테이너 기반 애플리케이션에 가장 좋은 로드 밸런서 (ex. Docker & Amazon ECS), 포트 매핑 기능이 있어 ECS 인스턴스의 동적 포트로의 리다이렉션을 가능하게 해 줌

 

Application Load Balancer Target Groups(대상 그룹)

  • EC2 인스턴스
  • ECS tasks
  • Lamda functions
  • private IP Addresses

  • ALB는 여러 대상 그룹으로 라우팅 할 수 있으며, 상태 확인은 대상 그룹 레벨에서 이루어짐

 

NLB(Network Load Balancer)

  • L4 로드 밸런서, TCP와 UDP 트래픽을 다룰 수 있음
  • 성능이 매우 높음, 초당 수백만 건의 요청을 처리할 수 있고 애플리케이션 로드 밸런서에 비해 지연 시간도 짧음
  •  가용 영역별로 하나의 고정 IP를 가짐
    • 탄력적 IP 주소를 각 AZ에 할 당 할 수 있음
    • 여러 개의 고정 IP를 가진 애플리케이션을 노출할 때 유용함

 

Network Load Balancer Target Groupts(대상 그룹)

  • EC2 인스턴스
  • private IP Addresses
  • Application Load Balancer
    • ALB 앞에 NLB를 사용할 수도 있음
    • NLB로 고정 IP 주소를 얻고, ALB로 HTTP 유형의 트래픽을 처리하는 규칙을 만들 수 있기 때문
  • Health Checks 프로토콜 : TCP, HTTP, HTTPS 지원