트래픽 없는 로드밸런서 찾기 (2026) — LCU는 0인데 시간요금만 나가는 ALB·NLB
본문 바로가기
🔧 인프라 & 네트워크

트래픽 없는 로드밸런서 찾기 (2026) — LCU는 0인데 시간요금만 나가는 ALB·NLB

by 찬(Chan) 2026. 9. 23.
반응형

로드밸런서는 지우기 어려운 자원이다. 인스턴스는 꺼도 다시 켜면 되지만, 로드밸런서를
지우면 DNS 이름이 사라지고 같은 이름으로 복구되지 않는다. 그래서 "혹시 뭔가
붙어 있을지 모르니 일단 두자"가 되고, 그 상태로 몇 달이 지난다.

문제는 로드밸런서가 떠 있는 것만으로 돈을 쓴다는 점이다. 요청이 하나도 없어도
시간요금은 똑같이 나간다. 그리고 이 항목은 청구서에서 유난히 판별하기 쉽다.
미터기가 두 개인데, 하나는 고정이고 하나는 트래픽에 비례하기 때문이다.
둘의 비율만 보면 그 로드밸런서가 일하고 있는지 아닌지가 드러난다.


요약 (Quick Answer)

미터기가 두 개다

미터기 기준 트래픽 0이면
시간요금 떠 있는 시간 그대로 나간다
LCU 요금 처리량 4차원 중 최대 하나 0에 수렴

미국 동부 기준 ALB·NLB 시간요금은 $0.0225/시간 = 월 약 $16.43(연 약 $197).
5개면 연 $986이 트래픽과 무관하게 나간다.

청구서 30초 판정

Cost Explorer → 사용 유형(Usage Type) 그룹화 → 두 줄을 나란히 본다.

패턴 판정
LoadBalancerUsage만 있고 LCUUsage 줄이 없다 유휴 확정에 가까움
LCUUsage가 LoadBalancerUsage에 비해 무시할 수준 유휴가 섞여 있다
둘 다 의미 있는 규모 정상 가동. 넘어간다

시간요금 ÷ $16.43 = 대략적인 대수. 정확한 개수가 아니라 규모 감을 잡는 용도다.

⚠️ 지우기 전에 반드시

로드밸런서 삭제는 비가역이다. DNS 이름이 사라지고 같은 이름으로 복구되지 않는다.

  1. 타겟 그룹에 healthy 타겟이 있나
  2. CloudWatch를 최소 14일 (ALB RequestCount, NLB ActiveFlowCount)
  3. Route 53 별칭·외부 CNAME이 이걸 가리키나
  4. 삭제 보호가 켜져 있나
  5. ACM 인증서·WAF·리스너 규칙 처리

멈출 수는 없다

EC2와 달리 중지 상태가 없다. 요금을 멈추는 방법은 삭제뿐이다. 유휴 로드밸런서가
쌓이는 근본 이유다.

검증: 2026-09-22 AWS 공식 요금·문서 페이지 확인


먼저 결론 세 줄

ELB 요금은 떠 있는 시간에 붙는 시간요금과 처리량에 붙는 LCU 요금으로 나뉘고,
시간요금은 트래픽이 0이어도 시간당 $0.0225(미국 동부 기준, 월 약 $16.43) 그대로 나간다.
LCU는 네 개 차원 중 가장 높은 하나만 과금되므로, 트래픽이 없으면 네 차원이 모두
0에 수렴해 LCU 요금이 사실상 사라지고 청구서엔 시간요금만 남는다.
그래서 LCUUsage가 LoadBalancerUsage에 비해 무시할 수준이면 유휴 로드밸런서다.

ELB 요금 구조 — 미터기는 두 개다

Application Load Balancer(ALB)와 Network Load Balancer(NLB)는 요금 모델이 같은
모양이다. 미국 동부(버지니아 북부) 기준으로:

시간요금 용량 단위 요금
ALB $0.0225 / 시간 $0.008 / LCU-시간
NLB $0.0225 / 시간 $0.006 / NLCU-시간

미터기 ① 시간요금 — 떠 있으면 무조건

공식 문서의 표현은 이렇다.

You are charged for each hour or partial hour that an Application Load Balancer
is running.

부분 시간도 한 시간으로 친다. 그리고 여기엔 트래픽 조건이 없다. 만들어 둔 순간부터
지울 때까지 흐른다.

$0.0225 / 시간 × 730시간 = 월 약 $16.43  (연 약 $197)

한 개면 작다. 하지만 유휴 로드밸런서는 혼자 생기지 않는다. 환경별로, 마이크로서비스별로
찍어내는 구조에서 나오기 때문에 대개 여러 개가 같이 발견된다. 5개면 월 $82, 연 $986이다.

미터기 ② LCU — 가장 바쁜 차원 하나만

LCU(Load Balancer Capacity Unit)는 처리량을 재는 단위다. 여기가 이 글의 핵심이다.
네 개 차원을 모두 재지만, 과금은 그중 가장 높은 하나에만 한다.

You are charged only on the dimension with the highest usage.

ALB의 네 차원은 이렇다. 각 수치가 LCU 1개에 해당하는 양이다.

차원 LCU 1개 기준 단서
새 연결 초당 25개 HTTPS는 TLS 키 크기가 클수록 빨리 소비
활성 연결 분당 3,000개 mutual TLS는 절반인 1,500개
처리 바이트 시간당 1GB Lambda 대상은 0.4GB
규칙 평가 초당 1,000회 처리 규칙 첫 10개는 무료

규칙 평가만 계산식이 따로 있다. 공식 요금 페이지의 표현을 그대로 옮기면 이렇다.

규칙 평가 = 요청률 × (처리 규칙 수 − 10)
LCU       = 규칙 평가 ÷ 1,000

규칙이 10개 이하면 이 차원은 아예 0이다. 반대로 규칙이 많으면 대역폭이 미미해도 이
차원이 요금을 지배할 수 있다. 초당 5,000 요청에 경로 기반 규칙 50개면
5,000 × (50 − 10) ÷ 1,000 = 200 LCU, 월 $1,168 규모가 규칙 평가 하나로 잡힌다.
dual-stack TLS를 쓴다면 새 연결 LCU는 클라이언트와 서버 중 큰 키 크기를 기준으로
계산된다.

NLB(NLCU)는 세 차원이다.

차원 NLCU 1개 기준
새 연결·플로우 초당 TCP 800 / UDP 400 / TLS 50
활성 연결·플로우 분당 TCP 100,000 / UDP 50,000 / TLS 3,000
처리 바이트 시간당 1GB

"가장 높은 차원 하나만"이라는 규칙은 보통 비용을 아끼는 쪽으로 작동한다. 연결 수가
많아도 바이트가 적으면 연결 기준으로만 내면 되기 때문이다.

이 규칙에는 실무적 함의가 하나 더 있다. 요금을 지배하지 않는 차원을 최적화하면
절감액이 정확히 0이다.
바이트가 지배적인 ALB에서 규칙 개수를 줄여봐야 청구서는
꿈쩍하지 않는다. 최적화 전에 어느 차원이 최대인지부터 확인해야 하는 이유다.

그런데 유휴 로드밸런서에서는 이 규칙이 정반대로 유용해진다. 트래픽이 없으면
네 차원이 전부 0에 수렴하고, 최대값도 당연히 0에 수렴한다. LCU 요금이 거의 사라진다.
반면 시간요금은 꿈쩍도 하지 않는다. 그래서 청구서에 아주 선명한 모양이 남는다.

유휴 판정 — 두 항목의 비율로 본다

청구서에서 이 두 줄을 찾는다.

사용 유형 의미
LoadBalancerUsage 시간요금 (고정)
LCUUsage 처리량 요금 (트래픽 비례)

판정은 단순하다.

  • LCUUsage가 LoadBalancerUsage에 비해 무시할 수준 → 떠 있기만 하고 일은
    안 하는 로드밸런서가 섞여 있다.
  • 둘 다 의미 있는 규모 → 정상 가동 중이다. 이 항목은 넘어간다.
  • LoadBalancerUsage만 있고 LCUUsage 줄 자체가 없다 → 가장 명확한 신호다.

다만 여기엔 한계가 있다. 청구서는 계정 단위 합산이라 "어느 로드밸런서가" 유휴인지는
알려주지 않는다.
로드밸런서가 10개인데 9개가 정상이고 1개가 유휴면, 합산 비율로는
잘 드러나지 않는다. 청구서로 알 수 있는 건 "유휴가 있다"까지이고, 어느 것인지는
콘솔이나 CloudWatch에서 확인해야 한다.

그래서 우리 진단에서는 이 항목의 절감액을 시간요금의 50%만 잡는다. 유휴로 보이는
로드밸런서 전부를 지울 수 있는 경우는 드물기 때문이다. 실제보다 적게 잡고 시작하는 편이
낫다.

유휴 로드밸런서는 이렇게 생긴다

발견되는 경로는 대체로 정해져 있다.

① 서비스는 내렸는데 로드밸런서만 남았다. 가장 흔하다. 인스턴스를 종료하거나
오토스케일링 그룹을 지우면 타겟 그룹이 비지만, 로드밸런서 자체는 그대로 남아 시간요금을
계속 쓴다.

② Kubernetes가 만든 것을 사람이 모른다. Service type=LoadBalancer나 Ingress
리소스는 실제 AWS 로드밸런서를 만든다. 네임스페이스를 정리하면서 리소스 삭제가 누락되면
AWS 쪽 로드밸런서는 남는다. 콘솔에서 보면 만든 기억이 없는 이름이 떠 있다.

③ Elastic Beanstalk·OpsWorks 환경. 이 서비스들은 자기가 만든 자원을 스스로
관리하기 때문에, 환경을 지우지 않고 밑에 있는 인스턴스만 지우면 다시 만들어 놓는다.
공식 문서도 순서를 못 박는다.

You must terminate your load balancer before you delete the Amazon EC2 instances
that are registered with it.

④ 블루/그린 배포의 잔재. 전환 후 구 환경을 정리하지 않으면 로드밸런서가 짝으로
남는다.

지우기 전에 확인할 것

⚠️ 로드밸런서 삭제는 비가역이다. 지우면 그 DNS 이름은 사라지고 같은 이름으로
다시 만들 수 없다. 외부에 그 주소를 알려준 곳이 하나라도 있으면 그대로 장애가 된다.
아래를 전부 확인한 다음에 지운다.

  1. 타겟 그룹에 healthy 타겟이 있나. 비어 있거나 전부 unhealthy면 유휴에 가깝다.
    단, 이제 막 배포 중일 수도 있으니 시점을 확인한다.
  2. CloudWatch 지표를 최소 14일 본다. ALB는 RequestCount,
    NLB는 ActiveFlowCount가 0에 붙어 있는지 확인한다. 월 1회 배치가 쓰는
    로드밸런서를 하루치만 보고 지우면 다음 달에 사고가 난다.
  3. DNS가 이 로드밸런서를 가리키나. Route 53 별칭 레코드와 외부 DNS의 CNAME을
    모두 확인한다. 이게 가장 자주 빠지는 단계다.
  4. 삭제 보호(deletion protection)가 켜져 있나. 켜져 있다면 과거의 누군가가
    중요하다고 판단했다는 뜻이다. 끄기 전에 이유를 찾는다.
  5. 붙어 있는 것들을 확인한다. ACM 인증서, WAF web ACL, 리스너 규칙은 로드밸런서와
    함께 정리 대상이 되거나 다른 곳으로 옮겨야 한다.

확인이 끝났는데도 확신이 안 서면, 지우기 전에 구성을 먼저 저장해 둔다.

# 구성 백업 (되돌릴 때 근거가 된다)
aws elbv2 describe-load-balancers --names <이름> > lb-backup.json
aws elbv2 describe-listeners --load-balancer-arn <ARN> >> lb-backup.json
aws elbv2 describe-target-groups --load-balancer-arn <ARN> >> lb-backup.json

이 명령들은 조회만 한다. 실제 삭제는 확인이 끝난 뒤 콘솔에서 하는 편이 안전하다.

청구서에서 30초 만에 확인하는 법

Cost Explorer에서 그룹화 기준을 사용 유형(Usage Type) 으로 두고 아래를 검색한다.

검색어 보이는 것
LoadBalancerUsage 로드밸런서 시간요금
LCUUsage LCU 처리량 요금

두 줄의 금액을 나란히 놓고 본다. 시간요금은 있는데 LCU 요금이 없거나 무시할 수준이면
유휴 로드밸런서가 있다. 로드밸런서 개수를 알고 싶으면 시간요금을 $16.43(월)으로 나누면
대략적인 대수가 나온다. 월 중간에 만들었거나 지운 것이 있으면 어긋나므로 정확한 개수가
아니라 규모 감을 잡는 용도
로만 쓴다.

Classic Load Balancer를 아직 쓰고 있다면

CLB는 요금 모델이 다르다. LCU가 아니라 시간요금 + 처리한 GB 구조다. 유휴 판정의
논리는 같다 — 시간요금만 있고 처리 GB가 0에 가까우면 놀고 있는 것이다.

현재 AWS의 로드밸런서 생성 안내는 ALB·NLB·Gateway Load Balancer 셋만 다루고,
CLB는 "기존 CLB가 있다면 ALB나 NLB로 마이그레이션하라"는 항목으로만 남아 있다.
다만 공표된 지원 종료일은 확인하지 못했다. 당장 없어진다고 보고 서두를 근거는
없지만, 신규로 만들 이유도 없다. 단가는 요금 페이지의 Classic 탭에서 확인한다.

자주 묻는 질문

Q. 트래픽이 하나도 없으면 요금이 0 아닌가요?
아니다. LCU 요금은 0에 수렴하지만 시간요금은 그대로다. 로드밸런서 요금은
"쓴 만큼"이 아니라 "떠 있는 만큼 + 쓴 만큼"이다.

Q. LCU 네 차원 중 가장 높은 것만 낸다면, 규칙을 많이 써도 상관없나요?
규칙 평가가 다른 차원을 넘어서면 그때부터는 규칙 평가 기준으로 과금된다. 직접 계산할
수 있다. 요청률 × (처리 규칙 수 − 10) ÷ 1,000이 그 ALB의 규칙 평가 LCU다. 첫 10개
규칙은 무료라 규칙이 10개 이하면 이 차원은 0이다. 초당 5,000 요청에 규칙 50개면
200 LCU(월 $1,168)가 되므로, 규칙이 수십 개를 넘는 ALB라면 반드시 계산해 봐야 한다.

Q. LCU 비용을 줄이려면 뭘 먼저 손대야 하나요?
지배 차원을 먼저 찾는다. 최대 차원 하나만 과금되므로 나머지 세 개를 최적화하면
절감액이 정확히 0이다. CloudWatch에서 NewConnectionCount, ActiveConnectionCount,
ProcessedBytes, RuleEvaluations를 LCU 기준값으로 나눠 보면 어느 쪽이 최대인지
드러난다. 그 차원만 손댄다.

Q. mutual TLS를 쓰면 요금이 달라지나요?
활성 연결 허용치가 절반으로 준다. LCU 1개당 분당 3,000개에서 1,500개가 된다. 활성
연결이 지배 차원인 워크로드라면 mTLS 도입만으로 LCU가 두 배가 될 수 있다.

Q. 로드밸런서를 지우는 대신 멈출 수는 없나요?
없다. EC2처럼 중지 상태가 없다. 요금을 멈추려면 삭제뿐이다. 이 점이 유휴 로드밸런서가
쌓이는 근본 이유이기도 하다.

Q. 타겟이 전부 unhealthy인데 요금은 그대로인가요?
그렇다. 시간요금은 타겟 상태와 무관하다. 오히려 헬스 체크 자체는 계속 돌기 때문에
아무도 쓰지 않는 로드밸런서가 백엔드에 요청을 계속 보내는 상태가 된다.

Q. 개수를 정확히 세려면요?
청구서로는 안 된다. 계정 단위 합산이라 대수 추정까지만 가능하다. EC2 콘솔의
로드밸런서 목록을 리전별로 확인해야 한다. 쓰지 않는 리전에 남아 있는 경우가 있으니
리전을 바꿔가며 보는 것이 중요하다.

Q. 서울 리전도 같은 금액인가요?
아니다. 이 글의 단가는 미국 동부(버지니아 북부) 기준이다. 서울 리전은 요금 페이지에서
리전을 바꿔 확인해야 한다. 다만 시간요금과 LCU 요금으로 나뉘는 구조와 "가장 높은
차원 하나만" 규칙은 리전과 무관하게 같다.

이 글의 핵심 메트릭

  • ALB·NLB 시간요금: $0.0225/시간 = 월 약 $16.43 (연 약 $197, 버지니아 북부)
  • ALB LCU: $0.008/LCU-시간 · NLB NLCU: $0.006/NLCU-시간
  • 부분 시간도 1시간으로 과금
  • LCU 4차원: 새 연결 25/초 · 활성 3,000/분(mTLS 1,500) · 바이트 1GB/시간(Lambda 0.4GB) · 규칙 평가 1,000/초
  • 규칙 평가 공식: 요청률 × (처리 규칙 수 − 10) ÷ 1,000. 첫 10개 무료
  • NLCU 3차원: 새 플로우 TCP 800·UDP 400·TLS 50/초 / 활성 TCP 10만·UDP 5만·TLS 3,000/분 / 1GB/시간
  • 과금 원칙: 최대 차원 하나만. 나머지 최적화 시 절감액 0
  • 판정 사용 유형: LoadBalancerUsage(고정) vs LCUUsage(가변)
  • 대수 추정: 시간요금 ÷ $16.43
  • 절감액 산정: 시간요금의 50%만 (전부 삭제 가능한 경우가 드물어 보수적으로)
  • CloudWatch 관찰 기간: 최소 14일
  • CLB 지원 종료일: 공표된 날짜 확인되지 않음
  • 사실 확인일: 2026-09-22

확인에 쓴 공식 문서 (2026-09-22 기준)

단가는 리전마다 다르고 개정된다. 이 글의 수치는 2026년 9월 22일에 위 페이지에서
확인한 값이고, 서울 리전 금액은 요금 페이지에서 리전을 바꿔 확인하는 게 정확하다.


유휴 로드밸런서는 청구서에서 확인 가능한 낭비 31개 항목 중 5번이다. 전체 목록은
클라우드 비용 절감 체크리스트 31개에 공개해
뒀고, 직접 볼 시간이 없다면 비용 CSV 한 장으로 무료 진단해 드린다
(계정 권한 불필요, 파일은 30일 후 자동 파기).

→ 무료 성적표 받기


비용 절감 시리즈


728x90
BIG
Buy me a coffeeBuy me a coffee

댓글