ELB

김명주·2025년 4월 3일

로드 밸런싱이란?

로드 밸런서는 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 EC2 인스턴스 또는 서버들로 전달하는 역할을 한다.
많은 유저가 연결될 수록 EC2 인스턴스로 가는 부하를 더욱 분산시키지만 유저들은 백엔드 인스턴스 중 어느것에 연결되어 있는지 알 수는 없다.

로드밸런서가 필요한 이유는

  • 서버에 가해지는 부하를 다수의 다운스트림 인스턴스로 분산하기 위해
  • 애플리케이션에 단일 액세스 지점(DNS)을 노출하게 되고 다운스트림 인스턴스의 장애를 원활히 처리할 수 있다.
  • 인스턴스의 상태를 정기적으로 확인할 수 있고 SSL 종료 기능으로 웹사이트에 암호화된 HTTPS 트래픽을 가질 수 있다.
  • 쿠키로 고정도를 강화할 수 있고 다중 영역에 걸친 고가용성을 가지며 클라우드 내에서 개인 트래픽과 공공 트래픽을 분리할 수 있다.

왜 ELB를 사용할까?

  • ELB는 관리형 로드 밸런서다.
    • 이는 AWS가 관리하며 어떤 경우에도 작동할 것을 보장한다는 의미다.
    • AWS가 업그레이드와 유지 관리 및 고가용성을 책임지며 작동 방식을 변경하게끔 일부 구성 Knob도 제공한다.
  • 자체 로드 밸런서를 마련하는 것보다 저렴하고, 확장성 측면에서도 덜 번거롭다.
  • 다수의 AWS 서비스들과 통합되어 있다.

Health Checks

로드 밸런서가 연결된 대상 인스턴스(EC2 등)의 상태를 주기적으로 확인하여, 정상적인 상태의 인스턴스에만 트래픽을 전달하도록 하는 중요한 기능이다. 이 기능을 통해 서비스의 안정성과 가용성을 높일 수 있다.
상태 확인은 포트와 라우트에서 이루어진다. HTTP 요청을 보내고, 응답 상태 코드가 200(OK)일 경우 "Healthy"로 간주하여 그 쪽으로만 트래픽을 보낸다.

유형

AWS에는 네 종류의 관리형 로드 밸런서가 있다.
1. CLB

  • 2009년에 출시된 구세대 클래식 로드밸런서
  • HTTP, HTTPS, TCP, SSL을 지원한다.
  1. ALB
  • 2016년에 출시된 애플리케이션 로드밸런서
  • HTTP, HTTPS, 웹소켓 프로토콜 지원.
  1. NLB
  • 2017년에 출시된 네트워크 로드 밸런서
  • TCP, TLS, UDP 프로토콜 지원
  1. GWLB
  • 2020년에 출시된 게이트웨이 로드밸런서
  • 네트워크 계층과 IP 프로토콜에서 작동함

로드밸런서 보안 그룹

사용자는 HTTP나 HTTPS를 사용해 어디서든 로드 밸런서에 접근이 가능하다.
포트 범위는 80 혹은 443이고 소스는 0.0.0.0/0인데 이는 어디든 접근이 가능하다는 의미다.
EC2 인스턴스는 로드밸런서를 통해 들어오는 트래픽만을 허용해야 하기 때문에 EC2 인스턴스의 보안 그룹 규칙은 달라야 한다.
포트 80에서 HTTP 접근을 허용하고, 그 소스는 IP 범위가 아닌 보안 그룹이 된다.
즉 EC2 인스턴스의 보안 그룹을 로드 밸런서의 보안 그룹으로 연결하는 것이다.
이렇게 하면 EC2 인스턴스는 로드 밸런서에서 온 트래픽만을 허용하게 되어 강화된 보안 매커니즘을 가질 수 있다.

profile
개발자를 향해 달리는 사람

0개의 댓글