Elastic Load Balancing · ALB · NLB · GWLB

트래픽의 계층에 맞는 로드 밸런서를 고르세요

Elastic Load Balancing은 들어오는 트래픽을 여러 가용 영역의 정상 대상으로 나눕니다. HTTP 요청은 Application Load Balancer가, TCP · UDP 연결은 Network Load Balancer가, 보안 어플라이언스로 보낼 IP 패킷은 Gateway Load Balancer가 맡습니다. 이 페이지는 공통 개념과 비교표에 이어 세 유형을 하나씩 살펴봅니다.

OSI layerLoad balancer
  1. L7ApplicationHTTP · HTTPS · HTTP/2 · gRPCALB
  2. L6Presentation
  3. L5Session
  4. L4TransportTCP · UDP · TLS · QUICNLB
  5. L3Network모든 IP 패킷 · GENEVE 6081GWLB

세 유형 모두 리스너, 대상 그룹, 헬스 체크라는 같은 구성 요소를 씁니다.

3

로드 밸런서 유형 (ALB · NLB · GWLB)

6081

GWLB와 어플라이언스 사이 GENEVE 포트

8500

GWLB 인터페이스 최대 패킷 크기 (bytes)

mTLS

ALB 상호 TLS 인증 (passthrough · verify)

Common building blocks

대상이 늘고 줄어도 진입점은 하나로 유지됩니다

로드 밸런서는 대상의 상태를 계속 확인하고 정상인 대상에만 트래픽을 보냅니다. Auto Scaling 그룹이나 컨테이너가 바뀌어도 클라이언트가 쓰는 주소는 그대로입니다. 세 유형은 아래 구성 요소를 공통으로 씁니다.

Listener

리스너

프로토콜과 포트로 연결을 받고, 규칙에 따라 대상 그룹으로 넘깁니다. GWLB는 리스너가 하나뿐이고 프로토콜 · 포트를 지정하지 않습니다.

Target group

대상 그룹

instance, ip 같은 대상 유형을 정하고 대상을 등록합니다. 대상 유형은 생성 후 바꿀 수 없고, 헬스 체크와 속성도 대상 그룹마다 따로 둡니다.

Health check

헬스 체크와 fail open

정상 대상에만 보내되, 정상 대상이 하나도 없으면 모든 대상에 보냅니다. ALB · NLB는 최소 정상 대상 수나 비율로 DNS failover와 라우팅 failover 기준을 정할 수 있습니다.

Cross-zone

교차 영역 분산

켜면 각 노드가 모든 가용 영역의 대상에 나눕니다. ALB는 로드 밸런서 수준에서 항상 켜져 있고, NLB · GWLB는 기본으로 꺼져 있습니다.

Deregistration delay

등록 취소 지연

등록을 취소한 대상은 draining 상태로 진행 중인 요청을 마칩니다. 기본 300초이고, 지나면 unused가 됩니다.

LCU reservation

용량 단위 예약

예상되는 급증 전에 최소 용량을 예약합니다. 예약 후에도 트래픽에 따라 확장하되 예약치 아래로 줄지 않습니다. NLB · GWLB는 1 LCU를 2.2 Mbps로 환산합니다.

Type selection

ALB · NLB · GWLB 비교

트래픽을 어느 계층에서 보고 결정해야 하는지가 선택 기준입니다.

Application, Network, Gateway Load Balancer 비교
항목ALBNLBGWLB
OSI 계층L7 · 요청 단위L4 · 연결 · 흐름 단위L3 · 패킷 단위 (투명 게이트웨이)
리스너 프로토콜HTTP · HTTPSHTTP/2 · gRPC는 HTTPS 리스너TCP · TLS · UDP · TCP_UDP · QUIC · TCP_QUIC모든 포트의 IP 패킷어플라이언스와는 GENEVE (UDP 6081)
대상 유형instance · ip · lambdainstance · ip · albinstance · ip
대상 선택round robin(기본), least outstanding requests, weighted random프로토콜, IP · 포트, TCP 시퀀스 번호 기반 flow hash5-tuple(기본), 3-tuple, 2-tuple 흐름 고정
고정 IPDNS 이름으로 접근. 고정 IP가 필요하면 NLB 뒤에 ALB를 둠가용 영역마다 고정 IP, 인터넷 연결 시 Elastic IP 지정 가능라우팅 테이블에서 GWLB endpoint를 다음 홉으로 지정
보안 그룹로드 밸런서에 연결생성할 때 연결한 경우에만 이후 변경 가능없음. 어플라이언스의 보안 그룹 · NACL로 제어
TLSHTTPS 리스너에서 종료, mTLS 지원TLS 리스너에서 종료(ALPN 정책), 또는 TCP로 패스스루종료하지 않음. 패킷을 그대로 어플라이언스에 전달
교차 영역 분산항상 켜짐. 대상 그룹 수준에서 끌 수 있음기본 꺼짐기본 꺼짐
대표 용도웹 · API · 마이크로서비스, 앞단 인증고성능 TCP · UDP, 고정 IP, PrivateLink 서비스방화벽 · IDS/IPS 같은 인라인 검사

Application Load Balancer · L7

ALB는 HTTP 요청 하나하나를 보고 경로를 정합니다

ALB는 클라이언트 연결을 받아 종료하고, 요청의 호스트, 경로, 헤더, 메서드, 쿼리 문자열, 출발지 IP를 기준으로 대상 그룹을 고른 뒤 대상과 별도 연결로 요청을 보냅니다.

  1. 연결 · TLS 종료 — 클라이언트가 ALB의 DNS 이름으로 접속하면 HTTPS 리스너가 ACM 인증서로 TLS를 종료합니다. SNI로 기본 인증서 외에 25개까지 인증서를 더 둘 수 있습니다.
  2. 규칙 평가 — 리스너 규칙을 우선순위 순서로 평가하고, 처음 일치한 규칙의 인증 · JWT 검증 · transform을 거쳐 forward, redirect, fixed-response 중 하나를 실행합니다.
  3. 대상 선택 — 대상 그룹의 라우팅 알고리즘으로 정상 대상을 고릅니다. 고정 세션이 켜져 있으면 쿠키가 가리키는 대상으로 보냅니다.
  4. 전달 — EC2, 컨테이너 IP, Lambda 함수로 요청을 보내고 응답을 클라이언트에 돌려줍니다.
클라이언트가 ALB HTTPS 리스너로 접속하고, ALB가 경로 규칙에 따라 instance, ip, lambda 대상 그룹으로 요청을 나누는 흐름 VPC 클라이언트HTTPS ALBHTTPS:443 1 host · path 2 header · method * default tg-webinstance tg-apiip · 컨테이너 tg-fnlambda /* /api/* /fn/*

언제 쓰나

  • 호스트 · 경로별로 마이크로서비스와 컨테이너를 나눌 때
  • OIDC · Amazon Cognito 로그인이나 JWT 검증을 애플리케이션 앞에서 처리할 때
  • 가중치 대상 그룹으로 블루/그린, 카나리 배포를 할 때
  • Lambda 함수를 HTTP 엔드포인트로 노출하거나 gRPC · WebSocket을 분산할 때
100

ALB당 규칙 (기본 규칙 제외, 조정 가능)

5

forward 액션 하나에 묶는 대상 그룹

1,000

ALB당 대상 (조정 가능)

50

ALB당 리스너 (조정 가능)

ALB · Listener rules

리스너 규칙: 조건이 맞으면 액션을 실행합니다

리스너 규칙은 우선순위가 낮은 번호부터 평가하고, 처음 일치한 규칙의 액션을 실행합니다. 조건은 host-header, path-pattern, http-header, http-request-method, query-string, source-ip 여섯 가지이고, host-header · path-pattern · http-header는 와일드카드 대신 정규식으로도 매칭할 수 있습니다.

Priority · Condition · Actionlistener HTTPS:443
1priority
host-header api.example.com
path-pattern /v2/*
forward tg-v2 weight 90
tg-v1 weight 10
2priority
path-pattern /admin/*
source-ip 192.0.2.0/24
authenticate-oidc
forward tg-admin
3priority
http-header X-Client-Version: 1.*
fixed-response 426
4priority
path-pattern /old-docs/*
redirect HTTP_301
host docs.example.com · path /#{path}
*default
일치하는 규칙이 없을 때
forward tg-web

규칙마다 forward, redirect, fixed-response 중 하나의 라우팅 액션이 마지막에 있어야 합니다. HTTPS 리스너에서는 authenticate-cognito, authenticate-oidc, jwt-validation 액션을 그 앞에 둘 수 있습니다. 기본 규칙이 아닌 규칙에는 대상에 보내기 전 요청을 고쳐 쓰는 transform(host-header-rewrite, url-rewrite)을 하나씩 붙일 수 있습니다. 규칙 하나에 조건 값은 5개, 와일드카드는 6개까지 씁니다.

ALB · Features

인증, 배포, 세션을 로드 밸런서에서 처리합니다

Authentication

OIDC · Cognito 인증

HTTPS 리스너 규칙의 authenticate-oidc · authenticate-cognito 액션이 로그인을 처리하고, 인증된 사용자 정보를 헤더에 담아 대상에 넘깁니다.

JWT validation

JWT 토큰 검증

jwt-validation 액션이 JWKS 엔드포인트의 공개 키로 서명을 확인하고 iss와 추가 클레임을 검사합니다. JWKS 응답은 150 KB, 키 10개까지입니다.

mTLS

상호 TLS 인증

verify 모드는 트러스트 스토어의 CA로 클라이언트 인증서를 검증하고, passthrough 모드는 인증서 체인을 헤더로 대상에 넘깁니다. verify 모드 리스너는 ALB당 2개입니다.

Transforms

URL · 호스트 헤더 재작성

규칙의 transform이 정규식으로 경로, 쿼리 문자열, Host 헤더를 바꿔 대상에 보냅니다. 애플리케이션 코드나 별도 프록시 없이 URL 체계를 옮길 수 있습니다.

Weighted target groups

가중치 대상 그룹

forward 액션 하나가 최대 5개 대상 그룹에 가중치로 요청을 나눕니다. 대상 그룹 수준 고정 세션을 켜면 클라이언트가 처음 배정된 그룹에 머뭅니다.

Sticky sessions

고정 세션

ALB가 만드는 AWSALB 쿠키(duration-based)나 애플리케이션 쿠키(application-based)로 같은 대상에 보냅니다. 교차 영역 분산을 끈 대상 그룹에서는 쓸 수 없습니다.

Algorithms · Slow start

라우팅 알고리즘과 slow start

slow start는 새 대상의 요청량을 30~900초 동안 선형으로 늘립니다(round robin 전용). weighted random에서는 ATW가 오류율이 튀는 대상의 트래픽을 자동으로 줄입니다.

Lambda targets

Lambda 함수 대상

HTTP 요청을 JSON 이벤트로 바꿔 함수를 호출합니다. lambda 대상 그룹에는 함수 하나만 등록하고, 함수가 돌려주는 응답 JSON은 1 MB까지입니다.

HTTP/2 · gRPC

gRPC와 WebSocket

HTTPS 리스너 뒤 대상 그룹의 프로토콜 버전을 gRPC나 HTTP2로 두면 그대로 전달합니다. WebSocket 연결은 업그레이드를 수락한 대상에 계속 머뭅니다.

Target Optimizer를 켜면 대상에 설치한 에이전트가 대상별 최대 동시 요청 수를 강제합니다. 대상 그룹을 만들 때만 켤 수 있고, 켜면 알고리즘은 round robin만 쓰며 고정 세션은 지원하지 않습니다.

Network Load Balancer · L4

NLB는 연결 단위로 L4 트래픽을 넘깁니다

NLB는 TCP · UDP 흐름을 flow hash로 한 대상에 고정하고, 가용 영역마다 고정 IP를 가집니다. TLS 리스너가 아니면 페이로드를 열지 않고 넘기며, 초당 수백만 건의 요청을 처리하도록 확장됩니다.

  1. DNS · 영역 IP — DNS 이름은 활성 가용 영역마다 하나인 NLB 노드 IP로 풀립니다. dns_record.client_routing_policy로 같은 영역 선호도를 100 · 85 · 0%로 정합니다.
  2. 흐름 고정 — 노드가 프로토콜, 출발지 · 목적지 IP와 포트, TCP 시퀀스 번호로 대상을 고르고, 연결이 끝날 때까지 같은 대상으로 보냅니다.
  3. 전달 — 대상은 설정에 따라 원래 클라이언트 IP를 그대로 받습니다. TLS 리스너는 NLB에서 TLS를 종료하고 대상과 새 연결을 맺습니다.
  4. 유휴 제한 시간 — TCP는 기본 350초(60~6,000초로 변경), TLS는 350초 고정, UDP는 120초 고정입니다.
클라이언트와 PrivateLink 엔드포인트가 NLB의 가용 영역별 IP로 접속하고, NLB가 흐름을 각 영역의 대상에 고정해 전달하는 흐름 클라이언트TCP · UDP 엔드포인트소비자 VPC NLBTCP · UDP · TLS · QUIC AZ-aEIP 203.0.113.10 AZ-bEIP 203.0.113.20 PrivateLink 대상 AAZ-a · instance 대상 BAZ-b · ip flow hash · 연결 고정 클라이언트 IP 보존

언제 쓰나

  • 파트너가 방화벽에 등록할 고정 IP · Elastic IP가 필요할 때
  • 게임, IoT, VoIP처럼 UDP나 QUIC를 쓰는 서비스
  • AWS PrivateLink 엔드포인트 서비스로 다른 VPC · 계정에 서비스를 내줄 때
  • ALB 앞에 고정 IP를 두거나, HTTP가 아닌 TCP 프로토콜에 TLS 종료가 필요할 때
3,000

NLB당 대상 (교차 영역 분산을 켜면 500)

500

NLB당 가용 영역별 대상 (조정 가능)

350s

TCP 유휴 제한 시간 기본값

50

NLB당 리스너

NLB · Features

고정 IP, 원본 IP, PrivateLink를 함께 씁니다

Protocols · QUIC

TCP · UDP · TLS · QUIC

QUIC · TCP_QUIC 리스너는 QUIC v1 트래픽을 복호화 없이 대상에 넘깁니다. Connection ID의 Server ID로 대상을 고정해 모바일 클라이언트의 연결 이전을 유지합니다.

Static IP

고정 IP와 Elastic IP

NLB 노드는 가용 영역마다 고정 IP를 가집니다. 인터넷 연결 NLB는 서브넷마다 Elastic IP 하나를 붙일 수 있어, 클라이언트 쪽 허용 목록을 고정할 수 있습니다.

Source IP

클라이언트 IP 보존

기본값은 instance 대상 켜짐, ip 대상의 TCP · TLS 꺼짐입니다. UDP · TCP_UDP · QUIC · TCP_QUIC는 끌 수 없습니다. Transit Gateway를 거치는 대상에는 쓸 수 없으니 Proxy Protocol v2로 IP를 전달합니다.

PrivateLink

엔드포인트 서비스의 앞단

NLB를 VPC endpoint service로 등록하면 소비자 VPC의 인터페이스 엔드포인트가 NLB로 들어옵니다. PrivateLink 트래픽에 보안 그룹 인바운드 규칙을 적용할지 고를 수 있습니다.

Security groups

보안 그룹

생성할 때 보안 그룹을 연결해야 이후에도 바꿀 수 있습니다. 대상 보안 그룹에서 NLB 보안 그룹을 출처로 참조하면 데이터와 헬스 체크를 함께 허용합니다.

TLS · ALPN

TLS 종료와 ALPN

TLS 리스너가 ACM 인증서와 보안 정책으로 TLS를 종료합니다. ALPN 정책은 HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, None 중에서 고릅니다.

Weighted TG

가중치 대상 그룹

NLB 리스너 하나가 여러 대상 그룹에 0~999 가중치로 트래픽을 나눕니다. instance · ip · alb 대상 그룹 모두 쓸 수 있어 블루/그린, 카나리 배포에 맞습니다.

Zonal shift · DNS failover

영역 장애 대응

ARC zonal shift로 한 가용 영역을 트래픽에서 뺍니다. 영역 헬스 체크에 실패하면 그 영역의 DNS 레코드가 빠지고, ZonalHealthStatus 지표로 확인합니다.

ALB as target

ALB를 대상으로 등록

alb 대상 그룹에 ALB 하나를 등록해 ALB 앞에 고정 IP와 PrivateLink를 둡니다. 할당량 계산에서 ALB 하나는 대상 50개(교차 영역 분산 시 100개)로 셉니다.

듀얼 스택 NLB에서는 기본 규칙 외에 리스너 규칙을 추가해 출발지 IP 주소 유형(IPv4 · IPv6)에 따라 다른 대상 그룹으로 보낼 수 있습니다. 규칙마다 forward 액션 하나가 있어야 합니다.

Gateway Load Balancer · L3

GWLB는 트래픽 경로에 어플라이언스를 끼워 넣습니다

GWLB는 모든 포트의 IP 패킷을 받아 GENEVE로 감싸 방화벽, IDS/IPS, DPI 같은 가상 어플라이언스 플릿에 나눕니다. 하나의 진입점이자 출구인 투명 게이트웨이로 동작하고, 어플라이언스 수를 수요에 맞춰 늘리고 줄입니다.

  1. 라우팅으로 유도 — 애플리케이션 VPC의 라우팅 테이블(IGW 엣지 라우팅 포함)이 GWLB endpoint를 다음 홉으로 가리킵니다. 엔드포인트와 애플리케이션 서버는 다른 서브넷에 둡니다.
  2. PrivateLink — GWLB endpoint가 트래픽을 서비스 공급자 VPC의 GWLB로 보냅니다. GWLB는 어플라이언스와 같은 VPC에 있습니다.
  3. GENEVE 캡슐화 — GWLB가 흐름 해시로 어플라이언스를 고르고, 원래 패킷을 GENEVE(UDP 6081)로 감싸 보냅니다. 캡슐화는 68 bytes를 더합니다.
  4. 검사 후 복귀 — 어플라이언스가 GENEVE로 돌려보낸 패킷은 GWLB와 엔드포인트를 거쳐 원래 목적지로 갑니다. 응답도 같은 경로로 돌아와야 합니다.
인터넷 게이트웨이로 들어온 트래픽이 GWLB endpoint로 라우팅되고, 보안 VPC의 GWLB가 GENEVE로 두 어플라이언스에 나눈 뒤 검사를 마친 트래픽이 애플리케이션 서버로 가는 흐름 APPLICATION VPC SECURITY VPC IGW엣지 라우팅 테이블 GWLB endpoint라우팅 다음 홉 애플리케이션 서버ALB · EC2 검사 후 GWLBlistener: 모든 IP 패킷 PrivateLink FW Atarget FW Btarget GENEVE · UDP 6081 5-tuple 흐름 고정 MTU 8,500 bytes

언제 쓰나

  • 인터넷 인바운드 · 아웃바운드 트래픽을 서드파티 방화벽으로 검사할 때
  • Transit Gateway로 VPC 간, 온프레미스 간 트래픽을 중앙에서 검사할 때
  • 여러 VPC와 계정이 하나의 어플라이언스 플릿을 공유할 때
  • SNAT 없이 흐름 대칭을 유지하며 어플라이언스를 수평 확장할 때
6081

GENEVE 대상 그룹 프로토콜 · 포트

8,568

8,500 bytes 패킷을 받기 위한 어플라이언스 MTU

300

GWLB당 대상 (조정 불가)

1

GWLB당 리스너

GWLB · Features

흐름 대칭과 장애 조치가 설계의 핵심입니다

GENEVE

GENEVE 캡슐화

GENEVE 헤더는 Option Class 0x0108의 TLV에 흐름 정보를 담고, 어플라이언스는 이를 풀어 원래 패킷을 처리합니다. 듀얼 스택에서도 IPv4 GENEVE 헤더를 씁니다.

MTU

MTU와 단편화

GWLB 인터페이스는 8,500 bytes까지 받고 더 큰 패킷은 버립니다. IP 단편화를 지원하지 않고 "fragmentation needed" ICMP도 만들지 않아 PMTUD가 동작하지 않습니다.

GWLB endpoint

Gateway Load Balancer endpoint

라우팅 테이블의 다음 홉이 되는 VPC 엔드포인트입니다. PrivateLink로 공급자 VPC의 어플라이언스와 소비자 VPC를 연결해, 검사 플릿을 여러 VPC · 계정이 함께 씁니다.

Flow stickiness

5 · 3 · 2-tuple 흐름 고정

기본은 5-tuple이고, source_ip_dest_ip_proto(3-tuple)나 source_ip_dest_ip(2-tuple)로 바꿀 수 있습니다. 3 · 2-tuple에서는 유휴 제한 시간을 바꿀 수 없습니다.

Target failover

대상 장애 시 기존 흐름

target_failover를 rebalance로 두면 대상이 비정상이 되거나 등록 취소될 때 기존 흐름도 다른 대상으로 옮깁니다. 기본값은 no_rebalance이고 두 속성은 같은 값이어야 합니다.

Idle timeout

유휴 제한 시간

TCP 흐름은 기본 350초(60~6,000초)이고 UDP는 120초 고정입니다. 350초보다 늘리면 대상 ENI의 연결 추적 제한 시간도 그 이상으로 맞춥니다.

TGW appliance mode

Transit Gateway 어플라이언스 모드

보안 VPC 어태치먼트에 appliance mode를 켜면 TGW가 흐름 해시로 한 ENI를 골라 왕복 트래픽을 같은 가용 영역으로 보냅니다. 보안 VPC에는 TGW를 하나만 연결합니다.

Route design

중앙 검사 라우팅

스포크 VPC는 TGW로 기본 경로를 보내고, TGW는 보안 VPC 어태치먼트로 보냅니다. 보안 VPC의 TGW 어태치먼트 서브넷은 GWLB endpoint로, 엔드포인트 서브넷은 다시 TGW로 향합니다.

Partners

파트너 어플라이언스

ELB 파트너로 등록된 벤더는 어플라이언스를 GWLB와 통합 · 검증했습니다. 다만 어플라이언스 소프트웨어를 고르고 검증할 책임은 사용자에게 있습니다.

GWLB는 첫 패킷을 처리한 흐름의 응답이 GWLB를 거치지 않는 비대칭 흐름은 허용하지만 권장하지 않습니다. 첫 패킷을 보지 못한 흐름의 응답만 GWLB로 오는 경우는 지원하지 않습니다.

Reference architecture · ALB

엣지에서 컨테이너 · 인스턴스 · Lambda까지 하나의 ALB로

CloudFront와 AWS WAF를 거친 요청을 두 AZ에 걸친 internet-facing ALB가 ACM 인증서로 받습니다. 리스너 규칙이 host · path 조건으로 ECS Fargate, EC2, Lambda 대상 그룹에 나누고, 필요하면 Cognito · OIDC로 먼저 인증합니다.

Application Load Balancer 레퍼런스 아키텍처 사용자의 HTTPS 요청이 AWS WAF web ACL이 연결된 CloudFront를 거쳐 두 가용 영역의 퍼블릭 서브넷에 걸친 internet-facing ALB로 갑니다. ALB는 ACM 인증서로 HTTPS 443 리스너를 운영하고, 리스너 규칙의 path · host 조건에 따라 각 AZ 프라이빗 서브넷의 ECS Fargate 태스크(ip 대상 그룹), Auto Scaling 그룹의 EC2 인스턴스(instance 대상 그룹), VPC 밖의 Lambda 함수(lambda 대상 그룹)로 요청을 보냅니다. ALB는 Amazon Cognito 또는 OIDC IdP로 사용자를 인증하고, 액세스 로그를 S3 버킷에 저장합니다. INTERNET AWS EDGE REGION VPC AZ A AZ B PUBLIC SUBNET PRIVATE SUBNET PUBLIC SUBNET PRIVATE SUBNET 사용자HTTPS CloudFrontorigin: ALB AWS WAFweb ACL ALBHTTPS:443 ACM 인증서 ECS Fargate taskpath /api/* · ip TG EC2 · Auto Scalinghost www.* · instance TG EC2 · Auto Scalinghost www.* · instance TG ECS Fargate taskpath /api/* · ip TG S3access logs Lambdapath /fn/*lambda TG Cognito · OIDC IdPauthenticate 작업 대상은 AZ마다 배치 · Lambda는 VPC 밖에서 호출
요청 경로 (→ 요청 방향, 규칙별 대상 그룹) ALB가 보내는 호출 (IdP 인증 · S3 액세스 로그) 연결 (CloudFront ↔ web ACL)

좁은 화면에서는 다이어그램을 좌우로 밀어서 보세요.

Reference architecture · NLB

고정 IP와 PrivateLink로 L4 서비스를 노출

internet-facing NLB는 AZ마다 Elastic IP를 하나씩 붙여, 온프레미스 방화벽이 고정 IP로 허용 목록을 만들 수 있습니다. 대상은 EC2 인스턴스, IP, ALB 중에서 고르고, 다른 계정에는 internal NLB를 엔드포인트 서비스로 만들어 PrivateLink로 제공합니다.

Network Load Balancer 레퍼런스 아키텍처 온프레미스와 인터넷 클라이언트가 AZ마다 Elastic IP를 가진 internet-facing NLB에 TCP, UDP, TLS로 연결하고, NLB는 EC2 instance 대상 그룹, ip 대상 그룹, alb 대상 그룹으로 연결을 보냅니다. 다른 계정의 consumer VPC에 있는 애플리케이션은 interface endpoint를 거쳐 PrivateLink로 provider VPC의 엔드포인트 서비스인 internal NLB에 연결하고, internal NLB는 EC2 대상으로 보냅니다. 연결은 consumer 쪽에서만 시작합니다. INTERNET · ON-PREMISES CONSUMER ACCOUNT CONSUMER VPC PROVIDER ACCOUNT PROVIDER VPC PUBLIC SUBNETS PRIVATE SUBNETS PRIVATE SUBNETS 온프레미스EIP 허용 목록 클라이언트인터넷 TLS:443 TCP · UDP NLBinternet-facing TCP · UDP · TLS EIP · AZ a EIP · AZ b EC2 · instance TGTCP · 클라이언트 IP 유지 (기본 켜짐) IP 대상 · ip TGUDP · 클라이언트 IP 항상 유지 ALB · alb TGTCP · 고정 IP 뒤에서 L7 라우팅 ip TG의 TCP · TLS는 클라이언트 IP 유지가 기본 꺼짐 · 대상은 AZ a · AZ b에 분산 앱consumer Endpointinterface AZ마다 엔드포인트 ENI · 사설 IP Internal NLBendpoint service EC2 · instance TGTCP 443 · AZ a · AZ b PrivateLink · consumer만 연결을 시작 엔드포인트를 거친 트래픽의 소스 IP는 NLB 사설 IP → 클라이언트 IP · vpce ID는 Proxy Protocol v2 헤더로 전달
연결 경로 (→ 연결 방향) PrivateLink (consumer → endpoint service, 단방향 시작)

좁은 화면에서는 다이어그램을 좌우로 밀어서 보세요.

Reference architecture · GWLB

인바운드와 이그레스를 한 어플라이언스 플릿에서 검사

보안 VPC의 GWLB를 엔드포인트 서비스로 두고, 각 VPC의 GWLB endpoint를 라우팅 다음 홉으로 씁니다. 인바운드는 IGW 수신 라우팅이, 스포크 VPC의 아웃바운드는 Transit Gateway가 엔드포인트로 보내고, 어플라이언스를 다녀온 트래픽만 목적지로 갑니다.

Gateway Load Balancer 중앙 검사 레퍼런스 아키텍처 인바운드: 인터넷 사용자의 트래픽이 애플리케이션 VPC의 인터넷 게이트웨이에 도착하면 수신 라우팅 테이블이 애플리케이션 서브넷행 트래픽을 GWLB endpoint로 보냅니다. GWLB endpoint는 PrivateLink로 보안 VPC의 Gateway Load Balancer에 보내고, GWLB는 GENEVE UDP 6081로 Auto Scaling 그룹의 방화벽 어플라이언스에 나눕니다. 검사를 마친 트래픽은 같은 GWLB endpoint로 돌아와 애플리케이션으로 갑니다. 이그레스: 스포크 VPC의 트래픽이 Transit Gateway를 거쳐 appliance mode를 켠 이그레스 VPC 어태치먼트로 들어오고, GWLB endpoint에서 GWLB와 어플라이언스를 다녀온 뒤 NAT gateway와 인터넷 게이트웨이를 거쳐 인터넷으로 나갑니다. INTERNET APPLICATION VPC · INGRESS GWLBE SUBNET APP SUBNET SPOKE VPC A SPOKE VPC B EGRESS VPC SECURITY VPC · PROVIDER 사용자HTTPS IGW수신 RT IGW 라우팅 테이블 app subnet → vpce GWLB endpointAZ마다 1개 애플리케이션검사 후 도착 PrivateLink EC20/0 → TGW EC20/0 → TGW TransitGateway 스포크 0/0 →이그레스 VPC Attachmentappliance mode GWLB endpointTGW 서브넷 → vpce NAT gatewaypublic subnet IGW0/0 → 인터넷 인터넷 Gateway Load Balancerendpoint service 여러 VPC · 계정의 GWLBe가 하나의 플릿을 공유 ASG 방화벽AZ a 방화벽AZ b GENEVE UDP 6081 서드파티 어플라이언스 5-tuple 흐름 고정
검사 경로 (GWLB endpoint ↔ GWLB, 갔다가 돌아오는 두 줄) GENEVE 캡슐화 (어플라이언스 왕복) 일반 트래픽 (→ 진행 방향)

좁은 화면에서는 다이어그램을 좌우로 밀어서 보세요.

Getting started

구성 순서

세 유형 모두 같은 순서로 만듭니다. 차이는 리스너 프로토콜과 대상 유형, 그리고 GWLB의 경우 엔드포인트와 라우팅 테이블입니다.

  1. 01

    유형과 서브넷

    비교표로 유형을 정하고, 가용 영역마다 서브넷을 하나씩 고릅니다. 인터넷 연결 여부와 IP 주소 유형(IPv4 · 듀얼 스택)도 이때 정합니다.

  2. 02

    보안 그룹

    ALB와 NLB에 보안 그룹을 연결합니다. NLB는 생성할 때 연결해야 나중에 바꿀 수 있습니다. GWLB는 어플라이언스 보안 그룹에서 GENEVE 6081을 허용합니다.

  3. 03

    대상 그룹 · 헬스 체크

    대상 유형과 프로토콜을 정하고 대상을 등록합니다. 헬스 체크 경로, 등록 취소 지연, 고정 세션 같은 속성을 맞춥니다.

  4. 04

    리스너 · 규칙

    ALB · NLB는 리스너와 인증서, 규칙을 만듭니다. GWLB는 엔드포인트 서비스와 GWLB endpoint를 만들고 라우팅 테이블에 다음 홉으로 넣습니다.

  5. 05

    DNS · 모니터링

    Route 53 alias 레코드로 도메인을 연결하고, CloudWatch 지표와 액세스 로그로 대상 상태와 용량 단위 사용량을 확인합니다.

Pricing

비용 항목

세 유형 모두 로드 밸런서 실행 시간과 용량 단위(LCU · NLCU · GLCU) 사용량으로 과금됩니다. 용량 단위는 시간마다 여러 측정 항목 중 사용량이 가장 큰 항목 하나로 계산합니다.

Elastic Load Balancing 과금 항목
과금 항목용량 단위 1개의 기준참고
로드 밸런서 시간ALB · NLB · GWLB가 실행된 시간 (1시간 미만도 1시간)유형별 단가가 다릅니다
ALB LCU새 연결 25/초 · 활성 연결 3,000/분 · 처리 1 GB/시간 · 규칙 평가 1,000/초처리한 규칙 중 처음 10개는 무료. mTLS는 활성 연결 1,500/분, Lambda 대상은 0.4 GB/시간 기준
NLB NLCUTCP 새 연결 800/초 · 활성 100,000/분
UDP 새 흐름 400/초 · 활성 50,000/분
TLS 새 연결 50/초 · 활성 3,000/분
처리 바이트는 세 프로토콜 모두 1 GB/시간
GWLB GLCU새 연결 · 흐름 600/초 · 활성 60,000/분 · 처리 1 GB/시간GWLB endpoint는 엔드포인트 시간과 처리 GB로 AWS PrivateLink 요금에서 청구됩니다
용량 예약예약한 용량 단위-시간Load Balancer Capacity Unit Reservation 사용 시. 예약을 넘는 사용량은 따로 과금됩니다
관련 요금다른 서비스에서 청구데이터 전송(Amazon EC2 요금), 로드 밸런서가 쓰는 퍼블릭 IPv4 주소(Amazon VPC 요금)

요금 단가는 리전과 사용량에 따라 다릅니다. 최신 단가는 Elastic Load Balancing 요금 페이지에서 확인하세요.

Next step

워크로드에 맞는 로드 밸런서 조합을 정해 보세요

프로토콜, 고정 IP 필요 여부, 인증 방식, 검사 요구 사항을 정리해 오시면 ALB · NLB · GWLB 배치를 함께 검토합니다.