AWS에서 서비스를 운영하다 보면 “어떤 AZ(가용 영역, Availability Zone)에 배포되었는가”에 따라 트래픽 분산이 달라지는 경우가 있습니다. 특히 NLB(Network Load Balancer)나 ALB(Application Load Balancer)를 사용할 때 “교차 영역 로드 밸런싱(Cross-Zone Load Balancing)” 옵션이 중요한 역할을 합니다.
이번 글에서는 이 기능이 무엇인지, 왜 필요한지, 활성화 방법, 그리고 주의사항까지 정리해보겠습니다.
1. 교차 영역 로드 밸런싱이란?
Cross-Zone Load Balancing은 로드 밸런서가 *모든 가용 영역의 대상(Target)*에게 트래픽을 분산시키는 기능입니다.
기본적으로 NLB는 자신과 동일한 AZ에 있는 대상(Target)에게만 트래픽을 분산합니다. 즉, NLB가 A존에 있다면 A존의 컨테이너나 인스턴스에만 트래픽을 보냅니다. 하지만 교차 영역 로드 밸런싱을 활성화하면 모든 AZ의 대상에게 트래픽이 전달될 수 있습니다.
2. 활성화 전후 비교
항목 | 교차 영역 로드 밸런싱 OFF | 교차 영역 로드 밸런싱 ON |
---|---|---|
트래픽 분산 | 동일 AZ 내 대상에게만 분산 | 모든 AZ 대상에게 분산 |
단일 AZ에 대상 있는 경우 | 해당 AZ에서만 응답 | 모든 AZ에서 응답 가능 |
고가용성 대응 | 불균형 발생 가능성 있음 | 보다 유연한 분산 가능 |
예를 들어, 컨테이너가 C존에만 떠 있고 NLB가 A, B, C 세 존에 존재한다고 할 때:
- OFF일 경우: A존에서 들어온 트래픽은 A존에 대상이 없으므로 연결 실패 가능
- ON일 경우: A존에서 들어온 요청도 C존 대상에게 전달되어 정상 응답 가능
3. 교차 영역 로드 밸런싱 설정 방법
Application Load Balancer(ALB)
- 기본적으로 활성화되어 있으며, 수정 불가 (항상 ON)
Network Load Balancer(NLB)
- 콘솔:
- NLB → “Attributes” 탭 →
Cross-zone load balancing
체크
- NLB → “Attributes” 탭 →
- CLI:
aws elbv2 modify-load-balancer-attributes \\ --load-balancer-arn <NLB-ARN> \\ --attributes Key=load_balancing.cross_zone.enabled,Value=true
4. 주의할 점
- 비용 고려: 교차 영역 트래픽은 AZ 간 데이터 전송 요금이 발생합니다.
- 성능 고려: 물리적 거리에 따른 지연(Latency)이 미세하게 증가할 수 있습니다.
- 컨테이너 1개만 운영하는 경우: 교차 영역 로드 밸런싱을 꺼두면, 다른 AZ에서는 연결 오류 발생 가능
결론
교차 영역 로드 밸런싱은 AWS에서 다중 AZ를 활용할 때 매우 중요한 기능입니다.
특히 단일 AZ에만 ECS 컨테이너가 동작 중이거나, 로드 밸런서가 다중 AZ에 존재하는 환경에서는 꼭 활성화하는 것이 안정적인 서비스 운영에 유리합니다.
요약
- 로드 밸런서가 모든 AZ로 트래픽을 분산하는 기능
- NLB는 비활성화 상태일 수 있으므로 수동 설정 필요
- 단일 대상이 있는 경우엔 반드시 활성화 권장