AWS

Auto Scaling 그룹의 EC2 인스턴스에서 유지 보수 작업할 때 권장되는 처리 방식

heesoohi 2025. 5. 25. 01:50

Auto Scaling 그룹에 포함된 EC2 인스턴스에서 OS 패치, 애플리케이션 업데이트, 디버깅 등과 같은 유지 보수 작업을 진행해야 할 때는 다음과 같은 점을 주의해야 한다.

 

❗ Auto Scaling이 인스턴스를 자동 교체하는 경우

유지 보수 도중 인스턴스가 일시적으로 응답하지 않거나 상태 확인에 실패하면, Auto Scaling 그룹은 해당 인스턴스를 비정상(Unhealthy) 으로 판단하고 자동으로 종료 + 대체 인스턴스를 생성할 수 있다.

 

이러한 자동 동작은 유지 보수 중인 인스턴스를 방해할 뿐만 아니라 불필요한 리소스 소모로 이어진다.

 

 

✅ 가장 안전하고 효율적인 방식: Standby 상태로 전환

인스턴스를 유지 보수 작업 전에 Standby(대기 상태) 로 전환해두면, Auto Scaling 그룹의 상태 감시 및 교체 대상에서 제외된다.

 

Standby 상태의 특징:

  • Auto Scaling 그룹 감시 대상에서 제외됨
  • Load Balancer 대상에서 제외됨 (트래픽 미수신)
  • 인스턴스 수 계산에서 제외됨
  • 유지 보수 완료 후 다시 원래 상태로 복구 가능

사용예시:

# 1. Standby 상태로 전환
aws autoscaling enter-standby \
  --instance-ids i-xxxxxxxxxxxxxxxxx \
  --auto-scaling-group-name my-asg \
  --should-decrement-desired-capacity

# 2. 유지 보수 작업 수행

# 3. 서비스로 복귀
aws autoscaling exit-standby \
  --instance-ids i-xxxxxxxxxxxxxxxxx \
  --auto-scaling-group-name my-asg

 

✅ ✅ 대안: ReplaceUnhealthy 프로세스 일시 중단

또 다른 방법으로는 Auto Scaling 그룹의 ReplaceUnhealthy 프로세스를 일시 중단하는 방법이 있다. 이 방식은 유지 보수 중에 인스턴스가 비정상 상태로 표시되더라도 Auto Scaling이 이를 교체하지 않도록 막는다.

 

다만 이 방법은 Standby 방식과 달리 트래픽은 계속 수신되기 때문에 Load Balancer에서 해당 인스턴스를 수동으로 제거해야 하고,
작업 후 인스턴스의 상태를 수동으로 Healthy로 설정해야 한다는 번거로움이 있다. 또한 프로세스 재활성화를 잊는 실수도 발생할 수 있어 신중하게 관리해야 한다.

 

사용 예시:

# ReplaceUnhealthy 중단
aws autoscaling suspend-processes \
  --auto-scaling-group-name my-asg \
  --scaling-processes ReplaceUnhealthy

# 유지 보수 수행

# 인스턴스 상태 수동 복원
aws autoscaling set-instance-health \
  --instance-id i-xxxxxxxxxxxxxxxxx \
  --health-status Healthy

# ReplaceUnhealthy 재활성화
aws autoscaling resume-processes \
  --auto-scaling-group-name my-asg \
  --scaling-processes ReplaceUnhealthy

 

 

EC2 인스턴스에 유지 보수 작업이 필요할 때는 Auto Scaling 그룹에서 해당 인스턴스를 Standby로 전환하고, 작업 완료 후 다시 정상 상태로 복귀시키는 것이 가장 안전하고 효율적인 방법이다.