AWS ELB

임상규·2023년 9월 9일
1

AWS

목록 보기
15/33
post-thumbnail

ELB 란

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

예를 들어, 위 그림과 같이 사용자의 요청을 받아 각 EC2로 전달하는 역할을 한다.

ELB에는 4가지 종류가 있다.

ELB 종류

CLB

Classic Load Balancer로 2009년에 출시되었고
HTTP, HTTPS, TCP, SSL을 제공하였다.

현재 AWS에서 더이상 지원을 하지 않고 AWS 콘솔에서도 이용할 수 없다.

ALB

Application Load Balancer로 2016년 출시되었다.

Layer 7, HTTP 전용 로드밸런서이며 머신 간 다수의 HTTP 애플리케이션 라우팅에 사용한다.
컨테이너와 ECS를 사용하여 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산한다.

HTTP/2, WebSocket, 리다이렉트도 지원하므로 HTTP에서 HTTPS로 트래픽을 자동 리다이렉트 하려는 경우 로드벨런서 레벨에서 가능하다.

경로 라우팅도 지원한다.

마이크로서비스, 컨테이너 기반 애플리케이션에 가장 좋은 로드밸런서이다.
포트매핑 기능이 있어 ECS 인스턴스의 동적 포트로의 리다이렉션을 가능하게 해준다.

NLB

Network Load Balancer로 2017년 출시되었다.

Layer 4, TCP와 UDP 트래픽 전용으로 사용한다.
초당 수백만건의 요청을 처리할 수 있으며 지연시간도 매우 낮다.
ALB: 400 밀리초 / NLB: 100 밀리초

특성으로 AZ별로 하나의 고정IP를 가진다.
Elatic IP 주소를 각 AZ에 할당할 수 있다.

Target Group으로는 EC2 인스턴스, 하드코딩이 된 프라이빗 IP 주소, ALB가 있다.

또한 Target Group에서 Health Check 기능도 수행한다.
TCP, HTTP, HTTPS 프로토콜을 지원한다.

GWLB

Gateway Load Balancer로 2020년 출시되었다.

배포 및 확장, AWS의 타사 네트워크 가상 어플라이언스의 플릿관리에 사용되며 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용한다.

Layer3, IP packets 에서 실행된다.

기능으로는 투명 네트워크 게이트웨이와 로드밸런서가 있다.
투명 게이트웨이는 VPC의 모든 트래픽이 GWLB가 되는 단일 엔트리와 출구를 이용하기 때문이다.

ELB Sticky Session

로드 밸런서에 2가지 요청을 수행하는 클라이언트가 요청에 응답하기 위해 백엔드에 동일한 인스턴스를 갖는것을 말한다.

Sticky Session에는 2가지 유형의 쿠키가 있다.
쿠키는 클라이언트에서 로드밸런서의 요청의 일부로서 전달되는 것으로 고정성과 만료기간이 있고,
쿠키 만료시 다른 인스턴스로 리다이렉션 된다.

  • 애플리케이션 기반 쿠키
    • 대상으로 생성된 사용자 정의 쿠키로 애플리케이션에서 생성
    • 애플리케이션에 필요한 모든 사용자 정의 속성을 포함
    • 쿠키 이름은 각 대상 그룹별로 개별 지정
  • 기간 기반 쿠키
    • 특정 기간을 기반으로 만료되며, 기간은 로드밸런서에서 자체 생성

Cross Zone Load Balancing

각각의 로드밸런서가 모든 AZ에 등록된 모든 인스턴스에 부하를 고르게 분배한다.

  • ALB
    • 기본으로 활성화 되어있고 대상그룹 설정에서 비활성화 가능
    • 데이터를 다른 AZ로 옮길때는 비용 발생 ❌
  • NLB & GWLB
    • 기본으로 비활성화 되어있고 활성화 시 요금 발생

SNI

Server Name Indication으로 여러개의 SSL 인증서를 하나의 웹서버에 로드해
하나의 웹서버가 여러개의 웹사이트를 지원한다.
확장된 프로토콜로 클라이언트가 대상서버의 호스트 이름을 지정한다.

ALB, NLB, CloudFront에 대해서 작동한다.

ALB와 NLB에서 여러개의 SSL 인증서를 두고, 리스너를 여러개 지원한다.

Connection Draining

ALB, NLB에서는 Deregistaion Delay라고 부른다.

인스턴스가 등록 취소, 혹은 비정상인 상태에 있을 때 인스턴스에 어느정도 시간을 주어 인플라이트를 요청한다.

Inflight : 활성 요청을 완료하는 기능

profile
Junior DevOps Engineer

0개의 댓글