운영&개발 개인 노트/Cloud (AWS)

[ELB & ASG] 로드밸런서(Loadbalancer) 종류

페더러 2024. 1. 10. 16:47
반응형

ALB (Application Load Balancer)
- ALB 는 Layer7 (HTTP)
- 다수의 HTTP 응용 프로그램으로 라우팅 할 수 있게 해줌
- 같은 EC2 인스턴스에서 다중 앱에 부하 분산을 할 수 있음
- static DNS name 은 지원하지만 static IP 는 지원하지 않음
- 클라이언트 IP 주소를 얻으려면, 'X-Forwarded-For' 라는 부가적인 헤더를 추가해야 함
- HTTP/2 와 WebSockets 지원
- 리다이렉트 지원 (HTTP -> HTTPS)
- Routing 기준
    1) path in URL
    2) Hostname in URL
    3) Query String, header
- 마이크로 서비스와 컨테이너 기반 어플리케이션에 적합
- 타겟그룹
    1) EC2 인스턴스
    2) ECS task
    3) Lambda function
    4) private IP 주소
    5) ALB는 multiple 타겟그룹으로 라우팅 가능
    6) health check 는 타겟그룹 레벨에서 수행

 

 

NLB (Network Load Balancer)
- NLB는 Layer4 (Transport Layer)
- TCP & UDP를 다룰 수 있음
- ALB 에 비해 대기시간이 줄어듦(low latency)
- NLB 는 각 AZ 당 하나의 static IP를 가지고, Elastic IP 할당 기능을 지원
- 오직 static DNS name 과 static IP 만 제공함
- 타겟그룹
    1) EC2 인스턴스
    2) private IP 주소
    3) Application Load Balancer (ALB)
    4) 헬스체크는 3가지 프로토콜 지원 (TCP / HTTP / HTTPS)  -> 중요
- 보안그룹을 정의하지 않아도 됨 -> 모든 트래픽이 네트워크 부하 분산장치를 통해 EC2 인스턴스로 가기때문
- High performance & Low latency
- ALB vs NLB 비교

<ALB>

  1. ALB는 L7단의 로드 밸런서를 지원합니다.
  2. ALB는 HTTP/HTTPS 프로토콜의 헤더를 보고 적절한 패킷으로 전송합니다.
  3. ALB는 IP주소 + 포트번호 + 패킷 내용을 보고 스위칭합니다.
  4. ALB는 IP 주소가 변동되기 때문에 Client에서 Access 할 ELB의 DNS Name을 이용해야 합니다.
  5. ALB는 L7단을 지원하기 때문에 SSL 적용이 가능합니다.

<NLB>

  1. NLB는 L4단의 로드 밸런서를 지원합니다.
  2. NLB는 TCP/IP 프로토콜의 헤더를 보고 적절한 패킷으로 전송합니다.
  3. NLB는 IP + 포트번호를 보고 스위칭합니다.
  4. NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 DNS Name과 IP주소 모두 사용이 가능합니다.
  5. NLB는 SSL 적용이 인프라 단에서 불가능하여 애플리케이션에서 따로 적용해 주어야 합니다.

 

GLB (=GWLB, Gateway Load Balancer)
- Layer3 (Network Layer) 에서 동작
- 투명한 네트워크 게이트웨이 역할 및 Load Balancer 의 역할
- GENEVE 프로토콜 사용 (on 6081 포트)
- 타겟그룹
    1) EC2 인스턴스
    2) private IP 주소

반응형