AWS

AWS 에서 Load Balancer 의 종류(ALB, NLB, GWLB)

박현국 2024. 10. 13. 05:14
ALB(Application Load Balacner)
  • Layer 7 의 HTTP 전용 로드 밸런서로 머신 간 다수 HTTP 애플리케이션의 라우팅에 사용된다.
  • 머신들은 대상 그룹이라는 그룹으로 묶익 된다.
  • 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산한다 (컨테이너와 ECS를 사용)
  • 리다이렉트를 지원하며 HTTP 또는 HTTPS 로 트래픽을 자동 리다이렉트 하려는 경우 로드 밸런서 레벨에서 가능하다는 의미. ->> URL 경로에 기반한 라우팅이 가능하다. ->>> 다른 경로의 URL 을 다른 대상 그룹에 리다이렉트할 수 있다.
  • + 쿼리 문자열과 헤더에 기반한 라우팅도 가능하다.
  • 결론적으로 micro services 와 container 기반 애플리케이션에 가장 좋은 로드 밸런서로 도커와  ECS 경우에는 ALB ㅏ가장 적합한 로드 밸런서가 된다. -->>>> 포트 매핑 기능이 있기 때문. 즉, EC2 인스턴승,; 동적 포트로의 리다이렉션을 가능하게 해준다.

ALB 예시

 

 

 

NLB(Network Load Balancer)
  • NLB 는 Layer 4 계층의 로드밸런서 -> TCP 와 UDP 트래픽을 다룰 수 있다. -> HTTP 를 다루는 L7보다 하위 계층.
  • NLB 는 초당 수백만 건의 요청을 처리할 수 있을 정도로 성능이 매우 높다. + ALB 에 비해 지연시간도 짧다(ALB = 400 ms, NLB = 100 ms)
  • 가용 영역별로 하나의 고정 IP를 갖는다. ->>> Elastic IP 를 각 가용영역에 할당할 수 있다.
  • 즉, NLB 는 고성능, TCP, UDP, 정적 IP
  • 작동 방식은 ALB 와 유사하다. 
    1. 대상 그룹 생성
    2. NLB 가 대상 그룹을 리다이렉트
    3. 백엔드, 프론트엔드 모드 TCP 트래픽을 사용하거나, 백엔드에서는 HTTTP, 프론트엔드에서는 TCP 를 사용할 수 있다.

NLB 예시

  • NLB 의 대상그룹(중요)
    1. NLB 가 TCP 또는 UDP 트래픽을 EC2 인스턴스로 리다이렉트할 수 있다는 뜻
    --> IP 주소를 등록할 수도 있는데, IP 주소는 반드시 하드코딩되어야하고, Private IP 여야 한다.
    ------> 이유: 자체 EC2 인스턴스의 Private IP 를 보낼 수도 있지만 자체 데이터 센터 서버의 프라이빗 IP를 사용할 수도 있다. 즉, 둘 다 같은 NLB 를 앞에 사용할 수 있다.
    2. ALB 앞에 NLB 를 사용할 수도 있다. 
    -> 왜? : NLB 덕분에 고정 IP 주소를 얻을 수 있고, ALB 덕분에 HTTP 유형의 트래픽을 처리하는 규칙을 얻을 수 있다. 즉, 유효한 설정 조합이다.

NLB 대상그룹의 예시

  • NLB 는 대상 그룹이 수행하는 '상태 확인' 이다. 
  • 3가지 Protocols 를 지원 -> TCP, HTTP, HTTPS

 

 

 

GWLB(Gateway Load Balancer)
  • 배포 및 확장과  AWS의 타사 네트워크 가상 어플라이언스의 fleet 관리에 사용된다.
  • 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나, 침입 탐지 및 방지 시스템에 사용한다. 
    -->> 그래서 IDPS 나 심층 패킷 분석 시스템 또는 일부 PayLoad를 수정할 수 있지만, Network 수준에서 가능하다.
  • 예를 들어 애플리케이션에 액세스하는 사용자가 있다고 가정 + 사용자는 ALB 를 사용하여 애플리케이션에 바로 액세스하고 트래픽은 사용자에서 ALB 와 애플리케이션으로 바로 이동한다.
    -> 하지만 애플리케이션으로 이동하기 전에 모든 트래픽을 검사하려면, 어떻게 해야할까?
    ----->>>> 트래픽이 애플리케이션에 도달하기 전에 EC2 인스턴스와 같은 타사 가상 어플라이언스를 배포했고 트래픽의 애플리케이션에 도달 전에 트래픽을 통과하려면 원래는 많이 복잡했지만 GWLB 를 사용하면 매우 간단하다.
    ------>>>>> 1. GWLB 를 생성하면 이면에서는  VPC 에서 Routing Table 이 업데이트되고,
    ------>>>>> 2. 그러면 모든 사용자 트래픽은 GWLB 를 통과한다.
    ------>>>>> 3. 그리고 GWLB는 가상 어플라이언스의 대상 그룹 전반으로 트래픽을 확산한다.
    ------>>>>> 4. 그래서 모든 트래픽은 어플라이언스에 도달하고 어플라이언스는 트래픽을 분석하고 처리한다.
    이것의 예는 방화벽이나 침입 탐지와 같은 것
    ------>>>>> 5. 이상이 없으면 다시 GWLB 로 보내고, 이상이 있으면, 트래픽을 드롭한다.

GWLB 예시

  • GWLB 의 대상 그룹
    1.  EC2 인스턴스 이거나, 인스턴스 ID로 타사 어플라이언스를 등록하게 된 IP 주소는 Private IP 여야 한다.
        ->> 예를 들어, 자체 네트워크나 자체 데이터 센터에서 이런 가상 어플라이언스를 실행하면, IP 로 수동 등록할 수 있다.

  • GWLB 는 모든 로드 밸런서보다 낮은 수준에서 실행된다. (IP 패킷의 네트워크 계층인 Layer 3)