AWS ELB

조민철·2025년 4월 14일

AWS

목록 보기
16/21
post-thumbnail

AWS ELB

AWS Elastic Loadbalancer에 대해 한번 알아보겠다. ELBAWS의 로드밸런서 역할을 하는 서비스로 EC2, 컨테이너, ip 주소 등 여러 서비스 대상에 트래픽을 자동으로 분산한다. 대상이 되는 타겟에 상태를 모니터링 하며 상태가 양호하다면 트래픽을 전달하게 된다.

로드밸런서

현대 인프라 구조에서는 로드밸런서가 필수인거 같다. HA(고가용성)을 많이 강조하기도 하고 서버를 한대만 사용하는 경우는 거의없는거같다. Active-Stanby 구조로 가져가며 아니면 많은 트래픽을 처리하기위해서 Active-Active 구조도 많이 사용된다. 여기서 로드밸런서는 서버 앞단에서 트래픽을 적절하게 나눠준다.

Scale-UP vs Scale-Out

로드밸런서를 보기전에 서버를 확장하는 방법을 알아본다.

  • Scale-UP
    • 수직 확장으로 CPU, 메모리, 등 하드웨어의 자원을 추가하는 방식
    • 단일 시스템을 강화 -> 기존서버를 업그레이드 하는 방식
    • 단순한 관리 -> 단일 서버만 관리하면 됨
    • 확장성 -> 단일서버이기 때문에 해당 서버의 리소스가 부족하면 다시 Scale-UP 해야됨
    • 다운 타임 발생 -> 결국 단일 서버이기 때문에 Scale-UP을 하게되면 해당 서비스를 내려야 가능
    • SPOF -> 마찬가지로 단일 서버이기 때문에 장애 발생시 치명적임
  • Scale-Out
    • 수평확장으로 서버를 추가하여 분산 처리하는 방식
    • 분산 아키텍처 -> 여러 시스템 간에 트래픽을 분산하여 처리하는 방식
    • 유연한 확장성 -> 필요에 따라 서버를 추가하거나 제거가 가능해 트래픽처리에 굉장히 이점이 생김
    • 복잡성 -> 단일 노드가 아닌 많은 노드를 관리해야 하기때문에 복잡한 아키텍처
    • 비용 부담 -> 서버를 업그레이드가 아닌 추가이기때문에 비용적인 문제가 많이 발생

등등 여러 특징, 장점이 있다.
개인적인 생각이지만 비용이 여유가 되면 무조건 Scale-Out방식이 많은 이점을 가져갈 수 있다. 이는 클라우드가 나온뒤로 Scale-Out 방식이 많이 사용되는것 같으며 Auto-Scaling과 함께 많이 사용한다.

ELB

그래서 AWS ELB는 어떤 서비스들이 있는지 알아보겠다.

ALB (Application Loadbalancer)

ALBOSI 7계층 Application에서 동작하는 로드밸런서로 L7 장비라고도 부른다. 단지 L7 장비는 하드웨어 장비이고 ALB는 가상화되어있는 로드밸런서이다.
주로 HTTP/HTTPS 트래픽을 처리하는 로드밸런서이며 현대적인 애플리케이션에 최적화 되어있음

  • L7 기반 동작
    • URL, HTTP 헤더, 쿠키, 등 요청의 내용을 통해 트래픽 분배
  • 다양한 프로토콜 지원
    • HTTP, HTTPS, HTTP/2, SSL/TLS 암호화 지원등 여러 프로토콜을 지원
  • Health Checks
    • 대상의 상태를 항상 확인하며 비정상적이면 트래픽을 보내지 않음
  • HA
    • ALBAuto-Scaling과 함께 사용하여 유연하게 높은 가용성을 제공함

NLB (Network Loadbalancer)

NLBOSI 4계층에서 동작하는 로드밸런서로 L4 장비라고도 불리며 TCP,UDP,TLS 트래픽을 처리하며 주로 낮은 대기 시간을 제공하여 빠른 속도를 기대할 수 있음

  • L4 기반 동작
    • NLBOSI 4계층에서 작동하며 TCP/UDP 프로토콜 기반으로 트래픽을 분배
  • 고정 IP 주소
    • 각 가용 영역마다 하나의 고정 IP 주소를 제공하며 IP 기반 접근 제어와 네트워크 구성 관리가 용이
  • 낮은 대기 시간
    • 극히 낮은 지연 시간을 유지하며, 지연에 민감한 애플리케이션에 적합함

GLB (Gateway Loadbalancer)

GLB Gateway LoadbalancerOSI 3계층에서 동작하며 가상 네트워크 어플라이언스(Palo Alto, Suricata 등등)를 배포, 확장 관리하는 데 최적화 된 로드 밸런싱 서비스이다.

  • OSI L3 기반 동작
    • L3에서 동작하며 패킷 기반으로 트래픽 처리
    • stateless 방식으로 작동하며 패킷의 내용을 알 필요 없이 트래픽 전달
  • 가상 어플라이언스 관리
    • IDS/IPS, FW 등 보안 장비 와 같은 가상 네트워크 어플라이언스를 배포 및 관리
  • 유연한 확장성
    • 트래픽 증가에 따라 어플라이언스를 자동으로 확장하거나 축소하여 비용 효율성 유지
  • 중앙 집중식
    • 모든 네트워크 트래픽이 GLB를 통해 흐르도록 설정 가능

ELB 구성요소


ELB는 리스너, 대상그룹, 보안그룹 을 설정하여 ELB를 생성할 수 있다.

  • 리스너 (Listener)
    • 사용자의 요청을 수신하고 대상 그룹으로 트래픽을 전달
    • HTTP, HTTPS, TCP, UDP 프로토콜 지원
    • 포트번호를 지정해 사용자가 해당 포트로 접속 (보통 80, 443 사용함)
    • SSL 인증서를 등록하여 암호화 가능
  • 대상 그룹 (Target Group)
    • 리스너가 전달한 요청을 처리하기 위한 대상 그룹 (EC2, 컨테이너 등등)
    • 대상 그룹도 특정 포트를 지정하여 해당 포트로 전달
    • 헬스 테크를 이용해 비정상적이면 대상에게는 트래픽을 전달하지 않음
  • 헬스 체크 (Health Check)
    • 로드 밸런서는 수시로 대상의 상태를 모니터링
  • 보안 그룹
    • ELB와 연결된 네트워크 트래픽을 제어

교차 영역 로드밸런싱

EC2, 컨테이너 등 트래픽을 전달해줄 리소스들이 여러 리전에 배치되어있을 가능성이 크다. 교차 영역 로드 밸런싱 (Cross-Zone Load Balancing)을 사용하면 여러 가용 영역에 있는 리소스들에게 트래픽을 균등하게 분배하여 운영 효율성을 높혀준다.

예를 들어 다음과 같은 상황이면..


교차 영역 밸런싱이 비활성화 되어있는 경우는 트래픽이 리전의 갯수에 따라 달라진다. 리전이 2개닌깐 50% 씩 나누어 트래픽이 전달되는데 인스턴스가 불균형하게 배치되어있는 경우는 트래픽 전송 효율이 안좋아진다.


교차 영역 밸런싱이 활성화 된다면 인스턴스의 갯수에 따라 트래픽을 균등하게 분배하게되어 트래픽 효율성이 높아진다.

ELB 비교

profile
기록의 힘은 대단하다

0개의 댓글