Post

[Cloud] 로드밸런서(Load Balancer)의 이해

📌 들어가며

이번 글에서는 AWS의 로드밸런서(Load Balancer)를 정리한다. 여러 가용 영역에 배치한 서버로 트래픽을 분산해 고가용성을 확보하는 장비로, 종류(ALB·NLB·GWLB)를 비교한 뒤 ALB를 직접 구축하는 Lab을 진행한다.

로드밸런서란? 여러 서버에 네트워크 트래픽을 분산시키는 장비. AWS에서는 2개 이상의 가용 영역(AZ)에 동일한 서버를 두고, 로드밸런서로 부하를 나눠 한 서버·한 AZ에 장애가 나도 서비스가 계속되게 한다.


1. 가용 영역과 고가용성

고가용성(High Availability)은 동일 목적의 서버를 서로 다른 AZ에 2개 이상 두어, 한 AZ에 문제(정전 등)가 생겨도 다른 AZ가 서비스를 이어가는 것이다.

가용 영역

고가용성

💡 서울 리전은 4개, 버지니아 북부는 6개, 오사카는 3개의 AZ를 가진다. 로드밸런서는 이 여러 AZ에 흩어진 서버들의 앞단에서 트래픽을 고르게 나눠주는 역할을 한다.

로드밸런싱


2. 로드밸런서 종류

동작하는 OSI 계층에 따라 나뉜다.

종류계층대상 트래픽특징
ALBL7HTTP/HTTPS콘텐츠·호스트·경로 기반 라우팅, MSA에 적합
NLBL4TCP/UDP/TLS초고성능·저지연
GWLBL3IP 패킷방화벽·IDS 같은 가상 어플라이언스 배포

NLB

GWLB

출처: bespinglobal GWLB 문서


3. 로드밸런서 생성의 두 축

구성역할
대상 그룹(Target Group)트래픽을 어디로 보낼지(EC2 등 대상)와 프로토콜/포트 지정
로드밸런서 + 리스너(Listener)지정한 포트/프로토콜로 연결을 받아, 규칙에 따라 대상 그룹으로 라우팅

리스너


4. Lab — ALB 구축

프라이빗 서브넷의 web1·web2를 퍼블릭 서브넷의 ALB로 노출하는 구성이다.

flowchart TD
    User(("🌐 사용자"))
    subgraph VPC["lab-vpc (10.0.0.0/16)"]
        subgraph Pub["퍼블릭 서브넷"]
            ALB["⚖️ web-alb (ALB-SG)"]
        end
        subgraph Priv["프라이빗 서브넷"]
            W1["💻 web1 (2a)"]
            W2["💻 web2 (2c)"]
        end
    end
    User -- HTTP:80 --> ALB
    ALB --> W1 & W2

인프라 아키텍처

① VPC & 서브넷

  • lab-vpc (10.0.0.0/16)
  • 퍼블릭 2개(10.0.0.0/24, 10.0.1.0/24), 프라이빗 2개(10.0.2.0/24, 10.0.3.0/24)

VPC

② 보안 그룹 (계단식)

그룹인바운드
ALB-SG80 ← anywhere
WEB-SG80 ← ALB-SG

보안 그룹

💡 웹 서버(WEB-SG)는 인터넷이 아니라 ALB(ALB-SG)에서 오는 80만 허용한다. 이렇게 하면 프라이빗 서버로의 직접 접근은 막고, 반드시 ALB를 거치게 된다.

③ 웹 서버 (web1·web2)

프라이빗 서브넷에 퍼블릭 IP 없이 만들고, 사용자 데이터로 Apache를 설치한다.

1
2
3
4
#!/bin/bash
yum install httpd -y
systemctl enable --now httpd
echo "<h1>WEB1</h1>" > /var/www/html/index.html   # web2는 WEB2

④ ALB 생성

대상 그룹(web-alb-tg, HTTP/80, 상태 검사 /)에 web1·web2를 등록하고, ALB(web-alb, 인터넷 경계)를 퍼블릭 서브넷에 배치한다. 리스너는 HTTP:80 → 대상 그룹.

대상 그룹 상태 검사

대상 등록

대상 그룹 생성

리스너

ALB 생성

⚠️ ALB는 반드시 퍼블릭 서브넷에 두어야 외부에서 접속할 수 있다. 서버(web1·web2)는 프라이빗에 숨기고, 외부에 노출되는 것은 ALB뿐이다.

⑤ 동작 확인 & 정리

ALB의 DNS 이름으로 접속하면 web1·web2가 번갈아 응답한다. 실습 후 ALB → 대상 그룹 → EC2 → NAT/VPC → 보안 그룹 순으로 삭제한다.

리소스 맵

동작 아키텍처


📝 정리

1
2
3
4
5
로드밸런서
├─ 목적   여러 AZ 서버에 트래픽 분산 → 고가용성
├─ 종류   ALB(L7) / NLB(L4) / GWLB(L3)
├─ 구성   대상 그룹(어디로) + 리스너(어떻게)
└─ 배치   ALB=퍼블릭 서브넷, 서버=프라이빗
개념한 줄 정의
로드밸런서트래픽 분산 장비
대상 그룹라우팅 대상 묶음 + 상태 검사
리스너포트/프로토콜 수신 → 규칙 라우팅

로드밸런서의 핵심은 여러 AZ 서버로 부하를 나눠 고가용성을 만드는 것이다. ALB는 퍼블릭 서브넷에 두고, 서버는 프라이빗에 숨긴 채 보안 그룹을 계단식으로 연결하는 것이 안전한 기본 패턴이다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.