AWS Elastic Load Balancing

무거운엉덩이·2022년 8월 18일
0

aws

목록 보기
2/2

1. 로드 밸런싱

로드 밸런서는 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 EC2 인스턴스 또는 서버들로 전달하는 역할을 한다.

2. Elastic Load Balancing

둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산하고, 등록된 대상의 상태를 모니터링하면서 상태가 양호한 대상으로만 트래픽을 라우팅 한다.

Elastic Load Balancing은 수신 트래픽의 변화에 따라 로드 밸런서 용량을 자동으로 조정한다.

Elastic Load Balancer는 관리형 로드 밸런서이기도 하다.

AWS가 관리하며, 어떤 경우에도 작동할 것을 보장하며,
AWS가 업그레이드와 유지 관리 및 고가용성을 책임지며, 로그 밸런서의 작동 방식을 수정할 수 있게끔 일부 구성 Knobs도 제공한다.

엘라스틱 로드 밸런서는 무조건 쓰는 편이 좋다!
왜?

  1. 자체 로드 밸런서를 마련하는 것보다 저렴하고,
  2. 자체 로드 밸런서를 직접 관리하려면 확장성 측면에서 굉장히 번거롭기 때문.
  3. 또한, 로드 밸런서는 다수의 AWS의 서비스들과 통합되어 있다.
    (EC2 instance, Amazon ECS, 인증서관리(ACM), CloudWatch, Route 53, WAF Global Accelerator 등,,)

AWS ELB는 CLB , NLB , ALB 와 최근에 합류한 GWLB까지 총 4개의 종류가 있다.

각각의 Load Balancer를 상황에 맞게 사용하여 부하 분산을 해야할 때가 있는데, 어떠한 상황에 어떠한 Load Balancer를 사용하면 좋을지 각각의 특징들에 대해서 정리해보도록 하자.

3. Classic Load Balancer (CLB)

AWS Certified developer associate에서 중요하게 다루는 부분은 아니지만, 짚고 넘어가보자.

  • 이 로드 밸런서는 TCP나 Traffic 아니면 HTTP와 HTTPS를 지원한다.
    여기서 TCP는 4계층, HTTP/HTTPS는 7계층이다.

  • 상태 확인은 TCP 혹은 HTTP 기반으로 이루어지며, 로드 밸런서, 즉 클래식 로드 밸런서로부터 고정 host name을 부여 받는다.

  • CLB는 하나의 URL만 가질 수 있다.

4. Application Load Balancer (ALB)

  • 7계층, 즉 HTTP 전용 로드 밸런서로 머신 간 다수 HTTP 어플리케이션의 라우팅에 사용된다.
    그래서 HTTP/HTTPS 트래픽을 처리하는 로드밸런싱에 최적화 되어 있다.

  • 이러한 머신들은 대상 그룹이라는 그룹으로 묶이게 됨.
    동일 EC2 인스턴스 상의 여러 Applicaion에 부하를 분산하고 컨테이너와 ECS를 사용하게 된다.

  • HTTP/2와 WebSocket을 지원하며 Redirect도 지원하므로,
    HTTP에서 HTTPS로 트래픽을 자동 Redirect하려는 경우, 로드 밸런서 레벨에서 가능하다는 의미가 됨. 그러므로 기존의 CLB 보다 많은 장점을 포함하고 있다.

  • ALB는 Path-based routiong (경로 라우팅)을 지원하여 ALB에 연결된 인스턴스들은 여러개의 URL과 path를 가질 수 있다.

5. Network Load Balancer (NLB)

  • layer 4(L4) 밸런서로, TCP와 UDP 기반의 트래픽을 인스턴스로 전달하는 것이다.
    (낮은 계층의 밸런서이다)

  • 초당 수백만 건의 요청을 처리할 수 있어서 매우 고성능이고, ALB에 비해 지연 시간이 짧다.
    (ALB의 평균 지연시간은 400ms, 반면에 NLB의 지연시간은 약 100ms)

  • NLB는 다른 점이 많다. 외부의 가용 영역 당 1개의 고정 IP를 노출하기 때문이다.
    특정 IP를 화이트리스트에 추가할 때 유용하며 NLB 자체의 IP를 가져오는 대신
    Elastic IP 할당을 지원한다. 이는 Entry Point를 2개 얻고자 할 때 NLB를 사용하면 된다는 것이다.

    엔트리 포인트 (Entry point)

    : 엔트리 포인트 또는 진입점은 제어가 운영 체제에서 컴퓨터 프로그램으로 이동하는 것을 말함

  • NLB는 EC2 인스턴스, IP주소, ALB를 트래픽으로 보낸다.

6. Gateway Load Balancer (GWLB)

  • 가장 최근의 로드 밸런서이다
  • 타사 가상 어플라이언스의 간편한 배포 , 확장성 및 고가용성을 제공해준다.
  • 기존 3rd-party를 이용하여 방화벽을 구축하는 경우에 발생하는 운영 복잡도 증가 및 제약 사항에 대한 문제점들을 해결할 수 있다.
profile
즐겁게 몰두하자. ^-^!

0개의 댓글