AutoScaling using istio metrics

지원 버전: KEDA 2.18, Istio 1.28 마지막 업데이트: 2026년 2월 19일 Kubernetes 호환성: 1.34

이 문서는 Istio 메트릭을 활용한 실전 오토스케일링 전략을 다룹니다. KEDA를 사용하여 Prometheus 및 CloudWatch 메트릭을 기반으로 워크로드를 스케일링하는 다양한 패턴과 실무 사례를 제공합니다.

학습 목표:

  • Prometheus PromQL을 활용한 정교한 스케일링 정책 작성

  • CloudWatch 메트릭 통합 및 AWS 서비스 조합

  • RPS, Latency, 에러율 등 다양한 메트릭 기반 전략

  • Circuit Breaker 및 시간대별 예측 스케일링

  • 프로덕션 환경을 위한 안정화 및 모니터링

목차

개요

이 문서는 Istio 메트릭을 활용한 실전 오토스케일링 전략에 초점을 맞춥니다. KEDA는 Kubernetes HPA를 확장하여 Prometheus 및 CloudWatch의 복잡한 메트릭 쿼리를 기반으로 스케일링할 수 있게 해줍니다.

핵심 Istio 메트릭

Istio Envoy 프록시가 제공하는 메트릭을 스케일링에 활용합니다:

메트릭
설명
스케일링 활용

istio_requests_total

총 요청 수

RPS 기반 스케일링

istio_request_duration_milliseconds

요청 지연 시간

지연 기반 스케일링

istio_tcp_connections_opened_total

TCP 연결 수

연결 기반 스케일링

istio_request_bytes_sum

요청 바이트

처리량 기반 스케일링

envoy_cluster_upstream_rq_pending_overflow

Circuit Breaker overflow

과부하 감지

왜 KEDA를 사용하는가?

기본 Kubernetes HPA와 비교했을 때 KEDA의 장점:

기능
Kubernetes HPA
KEDA

메트릭 소스

CPU/Memory + Custom Metrics API

60+ Scaler 직접 지원

PromQL 쿼리

⚠️ Custom Metrics Adapter 필요

✅ 네이티브 지원

CloudWatch 통합

❌ 불가능

✅ 직접 쿼리

Scale to Zero

❌ 최소 1개

✅ 0개 가능

다중 메트릭

⚠️ 제한적

✅ 여러 트리거 조합

Cron 스케줄

❌ 미지원

✅ 시간대별 스케일링

이 문서의 초점: KEDA 설치보다는 Prometheus와 CloudWatch 메트릭을 활용한 실전 스케일링 패턴과 전략에 집중합니다.

주요 스케일링 전략

이 문서에서 다루는 실전 스케일링 패턴:

전략
주 메트릭
적합한 시나리오
핵심 장점

RPS 기반

istio_requests_total

API 서버, 웹 서비스

직관적, 구현 간단

Latency 기반

P50/P95/P99 지연 시간

결제, 주문 등 지연 민감 서비스

사용자 경험 보장

에러율 기반

5xx 응답 비율

고가용성 필수 서비스

빠른 장애 대응

복합 메트릭

RPS + Latency + Error

프로덕션 서비스

안정적, 정확한 스케일링

Circuit Breaker 기반

overflow, connection pool

외부 의존성 많은 서비스

연쇄 장애 방지

시간대별 예측

Cron + 메트릭

트래픽 패턴 예측 가능

비용 최적화, 사전 대응

아키텍처

메트릭 기반 스케일링 흐름

spinner

ScaledObject 기본 구조

KEDA의 핵심은 ScaledObject CRD입니다. Prometheus나 CloudWatch 메트릭을 기반으로 HPA를 자동 생성/관리합니다:

Prometheus 메트릭 기반 스케일링

1. RPS (Requests Per Second) 기반 스케일링

ScaledObject 정의

동작 방식

spinner

2. Latency (지연 시간) 기반 스케일링

P95 지연 시간으로 스케일링

P50 및 P99 조합 스케일링

3. 성공률 기반 스케일링

에러율이 높을 때 스케일 아웃하여 부하 분산:

4. 복합 메트릭 스케일링

RPS와 Latency를 함께 고려:

CloudWatch 메트릭 기반 스케일링

개요

CloudWatch는 Prometheus보다 응답 속도가 느리지만 (1-3분 지연), AWS 네이티브 서비스와의 통합과 장기 보관에 유리합니다.

사용 시나리오:

  • ✅ AWS 서비스 메트릭과 조합 (ALB, RDS, SQS 등)

  • ✅ 장기 추세 분석 및 비용 최적화

  • ✅ 멀티 리전 환경에서 중앙 집중 모니터링

  • ❌ 실시간 스케일링 (Prometheus 권장)

전제 조건: Istio 메트릭이 CloudWatch로 전송되고 있어야 합니다. ADOT Collector 설정은 참고: KEDA 설치 섹션을 참조하세요.

CloudWatch 메트릭으로 스케일링

RPS 기반 스케일링

Latency 기반 스케일링

실전 스케일링 전략

전략 1: 트래픽 패턴 기반 예측 스케일링

시간대별 트래픽 패턴을 고려한 사전 스케일링:

전략 2: Circuit Breaker 상태 기반 스케일링

Circuit이 Open될 때 자동으로 스케일 아웃:

전략 3: 다단계 스케일링 (Tiered Scaling)

부하 수준에 따라 다른 스케일링 속도 적용:

전략 4: 비용 최적화 스케일링

업무 시간과 비업무 시간을 구분:

전략 5: Gateway 메트릭 기반 스케일링

Istio Gateway의 부하를 모니터링하여 백엔드 스케일링:

모범 사례

1. 메트릭 선택 가이드

spinner

권장 메트릭:

워크로드 유형
주 메트릭
보조 메트릭
이유

API 서버

RPS

P95 Latency

요청 수가 부하의 직접적 지표

웹 서버

RPS

에러율

동시 연결 수보다 요청 수가 중요

데이터 처리

P95 Latency

CPU/Memory

처리 시간이 부하 지표

Streaming

TCP 연결 수

처리량

연결 수가 리소스 소비의 핵심

배치 작업

큐 길이

처리 시간

작업 대기 수가 스케일링 기준

2. 임계값 설정 가이드

3. 스케일링 속도 조정

4. 멀티 클러스터 환경에서의 스케일링

모범 사례

1. 메트릭 수집 최적화

2. 스케일링 안정성 확보

3. 모니터링 및 알림

4. 리소스 제한 설정

문제 해결

1. KEDA가 메트릭을 가져오지 못함

증상:

원인 분석:

해결 방법:

  1. Prometheus 주소 확인:

  1. PromQL 쿼리 테스트:

2. 스케일링이 너무 느림

증상: 트래픽 급증 시 스케일 아웃이 늦음

해결 방법:

3. Flapping (불안정한 스케일링)

증상: Pod 수가 계속 증가/감소 반복

원인: 임계값이 너무 민감하거나 안정화 기간 부족

해결 방법:

4. CloudWatch 지연 시간

증상: CloudWatch 메트릭이 실시간이 아님 (1-3분 지연)

해결 방법:

실전 예제

예제 1: 이커머스 결제 서비스

지연 시간이 매우 중요한 서비스:

예제 2: 데이터 처리 서비스

배치 처리 및 큐 기반 스케일링:

예제 3: 멀티 리전 글로벌 서비스

지연 시간 기반 지역별 스케일링:

참고: KEDA 설치

참고: 이 섹션은 KEDA를 처음 설치하는 경우에만 필요합니다. 이미 설치되어 있다면 Prometheus 메트릭 기반 스케일링부터 시작하세요.

Helm으로 설치

AWS IRSA 설정 (CloudWatch 사용 시)

CloudWatch 메트릭을 사용하는 경우 KEDA Operator에 IAM 권한이 필요합니다:

CloudWatch 메트릭 전송 설정 (선택 사항)

CloudWatch 메트릭 기반 스케일링을 사용하려면 ADOT Collector로 Istio 메트릭을 전송해야 합니다:

1단계: ADOT Collector 설치

2단계: IRSA 설정

설치 완료 후 Prometheus 메트릭 기반 스케일링 또는 CloudWatch 메트릭 기반 스케일링 섹션으로 돌아가세요.


참고 자료

공식 문서

관련 문서

요약

메트릭 소스 선택 가이드

메트릭 소스
장점
단점
권장 사용

Prometheus

• 실시간 반응 (15-30초) • PromQL 강력한 쿼리 • 클러스터 내부 통신

• 장기 보관 비용 • 클러스터 의존성

실시간 스케일링, 대부분의 워크로드

CloudWatch

• AWS 서비스 통합 • 장기 보관 • 멀티 리전 지원

• 1-3분 지연 • 비용 (메트릭 수에 비례)

추세 분석, AWS 서비스 조합

스케일링 전략 선택 가이드

워크로드 유형
주 메트릭
보조 메트릭
권장 설정

API 서버

RPS (Pod당)

P95 Latency

pollingInterval: 30, cooldownPeriod: 300

결제/주문

P50/P95 Latency

에러율

pollingInterval: 15, 빠른 스케일 아웃

데이터 처리

큐 길이, P95 Latency

CPU/Memory

pollingInterval: 60, Scale to Zero 허용

웹 프론트엔드

RPS, P95 Latency

Gateway 메트릭

Cron 기반 사전 스케일링

마이크로서비스

RPS, Circuit Breaker

에러율

다단계 스케일링 정책

프로덕션 체크리스트

스케일링 정책을 프로덕션에 적용하기 전 확인 사항:

권장 시작 경로

핵심 원칙:

  • Prometheus로 실시간 반응

  • 복합 메트릭으로 안정성 확보

  • 보수적인 스케일 다운, 적극적인 스케일 아웃

  • 지속적인 모니터링과 임계값 조정

마지막 업데이트