❓ ALB가 고정 IP를 제공하지 않는 이유
ALB (Application Load Balancer)는 내부적으로 AWS의 DNS 기반 로드 밸런싱을 사용하기 때문에, 고정 IP를 제공하지 않습니다.
1️⃣ ALB는 DNS 기반 로드 밸런싱을 사용함
ALB는 트래픽을 처리할 때 AWS 내부에서 동적으로 생성된 IP 주소를 사용합니다.
-
ALB의 DNS 이름 (예: my-alb-123456789.us-east-1.elb.amazonaws.com)을 통해 접근 (고정 IP 대신 DNS 이름을 제공함)

- DNS 이름을 조회할 때마다, AWS가 최적의 로드 밸런서 노드의 IP 주소를 반환함
즉, 같은 ALB라도 다른 시간에 DNS를 조회하면 다른 IP 주소가 반환될 수 있음
-
ALB는 내부적으로 여러 IP 주소를 사용하며, 필요에 따라 동적으로 변경됨
- 이유는 확장성(Scalability), 가용성(Availability), 성능(Performance) 때문
-
즉, 특정한 하나의 고정 IP를 가질 수 없음
➡️ AWS Route 53 같은 DNS 서비스와 연동하여 트래픽을 분배
2️⃣ ALB는 Auto Scaling을 지원함
- AWS는 ALB를 자동으로 확장 가능하도록 설계
- 트래픽 증가 시 ALB가 백그라운드에서 추가 IP를 자동으로 할당
- ALB는 내부적으로 AWS에서 관리하는 여러 개의 로드 밸런서 노드(서버)로 구성되어 있어요.
즉, 하나의 ALB가 아니라, 여러 개의 물리적 서버가 클라이언트 요청을 처리함.
- 트래픽이 증가하면 AWS가 자동으로 로드 밸런서 노드를 추가
트래픽이 감소하면 불필요한 노드를 제거
- 만약 고정 IP를 제공하면, 이런 유연한 확장이 어려워짐
➡️ 만약 ALB가 고정된 IP 하나만 사용하면, 부하 분산이 어렵고 확장성이 떨어짐!
3️⃣ ALB는 다중 AZ(AZ별 여러 노드)로 구성되어야 하기 때문
ALB는 AWS의 고가용성(High Availability) 보장을 위해,
여러 개의 가용 영역(AZ, Availability Zone) 에 걸쳐 배포됨.
💡 즉, 하나의 ALB가 아니라, 여러 개의 ALB 노드가 각각 다른 AZ에서 동작함!
- 하나의 AZ에 장애가 발생해도, 다른 AZ의 ALB 노드가 트래픽을 처리할 수 있도록 구성
- 따라서 ALB는 최소 2개 이상의 AZ에 걸쳐 여러 개의 노드(IP)를 가짐
➡️ 결과적으로, ALB는 물리적으로 여러 개의 인스턴스를 유지해야 함
4️⃣ 고정 IP가 필요하면 NLB를 사용해야 함
- NLB (Network Load Balancer)는 고정 IP 제공 가능 ✅
- 특정한 Elastic IP (EIP)를 연결할 수 있음
- DNS가 아니라 고정된 IP를 직접 사용하여 트래픽을 전달
- 클라이언트가 고정 IP를 필요로 하는 경우 (예: 방화벽 설정, 온프레미스 서버)에는 NLB가 적합
🔥 그러면 ALB에서 고정 IP를 사용하려면?
✅ 해결 방법: AWS Global Accelerator 사용
- AWS Global Accelerator를 사용하면 ALB에도 고정 IP를 부여 가능
- Global Accelerator는 AWS 네트워크를 통해 최적의 경로로 트래픽을 전달
- ALB 앞에 Global Accelerator를 두면, 고정된 IP 주소로 ALB에 접근 가능
NLB vs ALB 차이
- ALB는 여러 개의 동적 IP를 사용하지만, NLB(Network Load Balancer)는 고정 IP(EIP)를 지원
- 이유는 ALB는 L7(Application Layer)에서 DNS 기반으로 동작하지만,
NLB는 L4(Network Layer)에서 직접 트래픽을 전달하기 때문이다.
➡️ ALB는 DNS 기반이라 IP가 계속 바뀌지만, NLB는 L4라서 고정 IP를 제공 가능함!
L4 (NLB) vs L7 (ALB) 트래픽 전달 방식 차이
- L4 (Network Load Balancer, NLB)
패킷 레벨에서 직접 트래픽을 전달하기 때문에, 고정된 IP를 사용할 수 있음!
- L7 (Application Load Balancer, ALB)
HTTP 요청을 해석하고 변환하기 때문에, 내부적으로 여러 개의 동적 IP를 사용해야 함.
- ALB는 단순히 네트워크 패킷을 전달하는 것이 아니라, HTTP 요청을 읽고, 검사하고, 수정한 후 백엔드로 전달해야 함 (HTTP 헤더 & 쿠키 검사, URL 기반 라우팅, SSL 처리)
➡️ 이 모든 작업을 처리하려면, 단일 서버가 아니라 여러 개의 ALB 노드가 필요함!

NLB, ALB 별 적합한 케이스
- NLB가 필요한 경우
- 금융권, 보안 시스템 등 고정 IP 화이트리스트(Allow List) 설정이 필요한 경우
- DNS를 사용할 수 없는 IoT 디바이스, VPN, 레거시 시스템과 연동할 때
- TCP/UDP 기반의 비HTTP 서비스 (예: VoIP, 게임 서버, 데이터베이스) 사용 시
- ALB는 DNS 기반으로 충분한 경우
- 대부분의 웹 애플리케이션은 도메인(DNS) 기반으로 동작하므로 고정 IP가 필요 없음
- DNS를 사용하면 AWS가 내부적으로 ALB를 자동으로 확장 & 장애 조치 가능
🎯 정리

💡 ALB는 여러 개의 로드 밸런서 노드로 구성되어 있기 때문에, 하나의 고정 IP가 아니라 여러 개의 IP 주소를 가짐
💡 ALB는 DNS 기반으로 동작 → DNS를 조회할 때마다 다른 IP가 반환될 수 있음
💡 고정 IP가 필요하면 NLB 또는 AWS Global Accelerator를 활용하면 됨! 🚀