Cloud/AWS

[AWS] ELB 및 ASG

dohyeon2 2023. 12. 19. 18:49

이번 글에서는 Amazon ELB(Elastic Load Balancing)와 ASG(Auto Scaling Group)에 대한 내용을 정리하였습니다.


AWS ELB란? 

: AWS ELB(Elastic Load Balancing)이란 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 EC2 인스턴스 서버로 전달하는 기능입니다. 예를들어 3명의 유저가 Elastic Load Balancer에 연결되면 각각의 유저는 백엔드 서버에 위치한 임의의 EC2 인스턴스에 연결될 것입니다. 이때 Load Balancer는 로드가 집중되지 않도록 각각 다른 EC2 인스턴스에 분산시켜 연결해주는 역할을 합니다. Load Balancer가 필요한 이유를 한마디로 정리하면 "부하를 다수의 다운스트림 인스턴스로 분산하기 위해" 라고 할 수 있습니다.

 

Load Balancer의 종류

  • Classic Load Balancer(v1): HTTP, HTTPS, TCP, SSL 지원
  • Application Load Balancer(v2): HTTP, HTTPS, WebSocket 지원
  • Network Load Balancer(v2): TCP, TLS, UDP 지원
  • Gateway Load Balancer(v3): 3계층과 IP 프로토콜에서 작동

Load Balancer 보안그룹

: 유저는 먼저 로드밸런서에 연결되고 로드밸런서는 또 다시 EC2 인스턴스로 연결됩니다. 따라서 로드 밸런서와 EC2 인스턴스의 보안그룹은 다음과 같이 구성됩니다.

Type Protocol Port Range Source Description
HTTP TCP 80 0.0.0.0/0 Allow HTTP
HTTPS TCP 443 0.0.0.0/0 Allow HTTPS

(유저는 HTTP나 HTTPS를 통해 어디서든 로드 밸런서에 접근 가능)

 

Type Protocol Port Range Source Description
HTTP TCP 80 sg-054bdffasdf2ddvvdf Allow Traffic only

(EC2 인스턴스의 보안그룹을 로드 밸런서의 보안그룹으로 연결)

이를 통해 EC2 인스턴스는 로드 밸런서에서 온 트래픽만을 허용하게 됩니다. 

Application Load Balancer(v2)

: HTTP 전용 로드 밸런서로 머신간 다수 HTTP 애플레케이션 라우팅에 사용됩니다. 이 로드 밸런서는 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산하는 기능을 합니다. 

(포트 매핑 기능이 있어 마이크로 서비스나 컨테이너 기반 애플리케이션에 적합) 

 

대상 그룹(Target Group)

  • EC2 인스턴스(Auto Scaling Group으로 관리 가능) - HTTP
  • ECS tasks(ECS 자체로 관리 가능) - HTTP
  • Lamda function - HTTP 
  • IP 주소 - Private IP들만 가능

Network Load Balancer(v2)

: L4 로드 밸런서로 TCP와 UDP 트래픽을 다루는데 사용됩니다(HTTP를 다루는 L7보다 하위 계층). 네트워크 로드밸런서는 가용 영역(AZ)별로 하나의 고정 IP를 갖습니다. 1~3개의 IP로만 엑세스할 수 있는 애플리케이션을 만들 때 네트워크 로드 밸런서를 고려할 수 있습니다.

(여러개의 고정 IP를 갖는 애플리케이션 노출에 적합)

 

대상 그룹(Target Group)

  • EC2 인스턴스
  • IP 주소 - Private IP들만 가능
  • Application Load Balancer - 네트워크 로드 밸런서로 고정 IP를 획득하고, 애플리케이션 로드 밸런서로 HTTP 유형의 트래픽을 처리하는 규칙을 만들기 위해 사용

TCP, HTTP, HTTPS 프로토콜의 Health Check을 지원합니다. 

Gateway Load Balancer

: 게이트웨이 로드 밸런서는  L3 로드 밸런서로 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용할 수 있습니다. 보안에 특화된 로드 밸런서로 생각하시면 이해가 쉽습니다. 

 

대상 그룹(Target Group)

  • EC2 인스턴스
  • IP 주소 - Private IP들만 가능
  • Application Load Balancer - 네트워크 로드 밸런서로 고정 IP를 획득하고, 애플리케이션 로드 밸런서로 HTTP 유형의 트래픽을 처리하는 규칙을 만들기 위해 사용

6081번 포트의 GENEVE 프로토콜을 사용합니다.

고정 세션, 세션 밀집성(Sticky Sessions)

: 게이트웨이 로드 밸런서는  L3 로드 밸런서로 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용할 수 있습니다. 보안에 특화된 로드 밸런서로 생