Skip to content

AWS/GCP 오토스케일링 전략

오토스케일링은 트래픽에 따라 서버 인스턴스 수를 자동으로 조절하는 기능입니다. 잘 설계하면 과부하 방지비용 절감을 동시에 달성할 수 있습니다.

유형동작적합한 상황
반응형 (Reactive)지표 임계치 초과 시 즉시 스케일예측 불가한 트래픽
예측형 (Predictive)과거 패턴으로 사전 스케일규칙적인 트래픽 패턴
스케줄형 (Scheduled)시간 기반 사전 설정이벤트·점심시간 등
# Terraform 예시
resource "aws_autoscaling_group" "api" {
name = "api-asg"
min_size = 2 # 최소 2대 유지 (고가용성)
max_size = 20 # 최대 20대
desired_capacity = 3
health_check_type = "ELB"
health_check_grace_period = 300
# 스케일 아웃 정책
# CPU 70% 초과 시 인스턴스 추가
}
resource "aws_autoscaling_policy" "scale_out" {
name = "scale-out"
scaling_adjustment = 2 # 한 번에 2대 추가
adjustment_type = "ChangeInCapacity"
cooldown = 300 # 5분 쿨다운
autoscaling_group_name = aws_autoscaling_group.api.name
}
CPU 사용률 → 일반 API 서버에 적합
메모리 사용률 → JVM 애플리케이션에 추가로 사용
ALB 요청 수 → 요청 기반 스케일에 적합
SQS 큐 길이 → 비동기 워커에 적합
커스텀 지표 → Prometheus → CloudWatch → Auto Scaling

Kubernetes HPA (Horizontal Pod Autoscaler)

Section titled “Kubernetes HPA (Horizontal Pod Autoscaler)”
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: api-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: api-deployment
minReplicas: 2
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70 # CPU 70% 기준
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80

HPA가 제대로 동작하려면 반드시 requests를 설정해야 합니다.

resources:
requests:
cpu: "250m" # 0.25 vCPU — HPA 기준값
memory: "256Mi"
limits:
cpu: "1000m" # 최대 1 vCPU
memory: "512Mi"

부하테스트로 스케일링 검증하기

Section titled “부하테스트로 스케일링 검증하기”

오토스케일링이 올바르게 동작하는지 반드시 부하테스트로 검증해야 합니다.

1. 초기 상태: min 인스턴스로 시작
2. 부하 증가: Stress Test로 CPU 70% 이상 유발
3. 검증: 3~5분 내에 인스턴스 추가되는지 확인
4. 부하 제거: 쿨다운 후 스케일 인 확인

TestForge의 부하테스트 기능으로 이 검증을 자동화할 수 있습니다.

TestForge로 부하테스트 시작하기 →

이 가이드를 내 서비스에 직접 적용해 보세요.

TestForge 무료 스캔 시작 →