블로그 릴레이 - AWS Auto Scaling Group의 대상 추적 크기 조정 정책으로 인스턴스 자동 확장/축소 구현하기

블로그 릴레이 - AWS Auto Scaling Group의 대상 추적 크기 조정 정책으로 인스턴스 자동 확장/축소 구현하기

2025.08.01

안녕하세요! 클라우드 사업본부의 임채정입니다.

본 블로그는 당사의 한국어 블로그 릴레이의 2025년 26번째 블로그입니다.
이번 블로그의 주제는「AWS Auto Scaling Group의 대상 추적 크기 조정 정책으로 인스턴스 자동 확장/축소 구현하기」입니다.

AWS Auto Scaling의 Automatic scaling 기능을 통해 애플리케이션의 부하에 따라 자동으로 인스턴스를 확장하거나 축소할 수 있습니다.
특히 CPU 사용률, 메모리 사용률, 네트워크 트래픽 등 다양한 지표를 기반으로 자동 크기 조정이 가능한데, 이번 시간에는 CPU 사용률 기반 Auto Scaling 설정과 동작 과정에 대해 실습을 통해 정리했습니다.

1. 준비

1.1. 내용 설명

오늘 블로그에서 테스트하는 내용은 다음과 같습니다.

14141414

① CPU 사용률 감시

  • Auto Scaling Group 내의 EC2 인스턴스들의 CPU 사용률을 지속적으로 모니터링해서 CloudWatch가 실시간으로 지표 수집

② 알람 발생

  • 설정된 임계값(예: 50% 초과 또는 35% 미만)에 도달할 때 CloudWatch Alarm이 트리거되어 알람 상태로 변경

③ 인스턴스 증가/축소 작업 발생

  • Scale Out: CPU 사용률이 높을 때 → 새로운 EC2 인스턴스 추가
  • Scale In: CPU 사용률이 낮을 때 → 기존 EC2 인스턴스 제거
  • Auto Scaling Group이 자동으로 인스턴스 수량 조정

해당 기능의 장점(특징)은 다음과 같습니다.

  • 자동화: 수동 개입 없이 자동으로 리소스를 조정할 수 있다.
  • 탄력성: 트래픽 변화에 따른 동적 확장/축소가 가능하다.
  • 비용 최적화: 필요한 만큼만 리소스를 사용할 수 있다.
  • 고가용성: 부하 분산을 통한 서비스 안정성 확보할 수 있다.

1.2. 테스트 환경 구성

테스트를 위해 Auto Scaling 를 생성하겠습니다.

시작 템플릿 생성

  • 이름 : auto-scaling-test-template
  • AMI : Windows_Server
  • (그 외 세부 설정은 크게 중요하지 않으니 생략합니다.)

Auto Scaling group 생성

  • 이름 : auto-scaling-test-group
  • 시작 템플릿 : auto-scaling-test-template 선택
  • 그룹 크기의 원하는 용량 : 2
  • 크기 조정 한도
    • 최소 용량 : 1
    • 최대 용량 : 5

Auto Scaling Group에 원하는 용량을 2로 지정했기 때문에 2개의 인스턴스를 유지해줍니다.

2. 설정하기

Automatic scaling 설정은 Auto Scaling Group 생성 시에 같이 할 수도 있고, Auto Scaling Group 생성 후에 따로 할 수도 있습니다.

Automatic scaling 설정 항목에서 다음과 같이 설정합니다.

  • 대상 추적 크기 조정 정책 선택
  • 크기 조정 정책 이름 : Target Tracking Policy (임의)
  • 지표 유형 : 평균 CPU 사용률 (CPUUtilization 지표 사용)
  • 대상 값 : 50
  • 인스턴스 워밍업 : 300초 (기본값)
  • 확대 정책만 생성하려면 축소 비활성화 항목은 비활성화

1111

여기서 대상 값으로 50을 설정한다는 것은 CPUUtilization 지표가 50%를 초과했을 때 새로운 인스턴스를 추가한다는 의미입니다. (이번에는 동작을 확인하기 위해서 50% 로 설정했습니다.)

그리고 확대 정책만 생성하려면 축소 비활성화 옵션을 비활성화하면, 인스턴스 추가 뿐만아니라 CPUUtilization 지표가 다시 감소했을 때 인스턴스를 자동으로 축소해줍니다.
그렇기 때문에 만약 인스턴스를 확대만 하고 축소는 하고 싶지 않다면 이 항목을 활성화해두면 됩니다.
이번에는 이 기능이 어떻게 동작하는지 알고 싶기 때문에 비활성화 해두겠습니다.

Auto Scaling Group을 생성하고 Automatic scaling 탭을 확인해보면 대상 추적 크기 조정 정책이 설정되어 있는 것을 확인할 수 있습니다.

2222

또한, 이 방법의 장점은 Auto Scaling Group 생성과 동시에 모든 설정이 완료되어 별도의 CloudWatch 알람 설정이 불필요하다는 점입니다.
CloudWatch Alarm 을 확인해보면 아래와 같이 알람이 생성되어 있습니다.

3333

그리고 이번에는 축소도 가능하도록 설정했기 때문에 축소에 대한 알람도 하나 생성되어 있습니다.
이 때, 축소의 경우에는 CPUUtilization 지표가 35% 미만으로 감소했을 때 알람을 발생하도록 설정되어 있습니다.

4444

이 때 축소의 임계값은 아래의 계산식으로 인해 결정됩니다.

축소 임계값 = 대상 값 × 0.7 (70%)

이번 예시로 계산 해보면 다음과 같습니다.

  • 설정한 대상 값: 50%
    • 확대(Scale-Out) 조건: CPU 사용률이 50%를 초과했을 때
    • 축소(Scale-In) 조건: CPU 사용률이 35% 미만으로 감소했을 때 (50 × 0.7 = 35)

3. 동작 확인하기

3.1. Scale-Out 동작 확인 (인스턴스 증가)

그럼 동작을 확인해보겠습니다.

5555

먼저 CPU 사용률을 높이기 위해서 처음 시작 템플릿으로 생성된 EC2 인스턴스 하나에 들어가서 다음 명령어를 실행해줍니다.

# CPU 코어 수만큼 무한 루프 실행
1..$env:NUMBER_OF_PROCESSORS | ForEach-Object {
    Start-Job -ScriptBlock {
        while ($true) {
            $result = 0
            for ($i = 0; $i -lt 100000; $i++) {
                $result += $i
            }
        }
    }
}
# Id    Name    PSJobTypeName   State         HasMoreData     Location        Command
# --    ----    -------------   -----         -----------     --------        -------
# 1     Job1    BackgroundJob   Running       True            localhost       ...
# 3     Job3    BackgroundJob   Running       True            localhost       ...

그러면 Auto Scaling Group 내 인스턴스들의 평균 CPU 사용률이 올라가면서 CloudWatch 알람이 발생합니다.

6666

그리고 약간의 시간을 기다리면 아래 사진처럼 인스턴스가 하나 추가로 생성된 것을 확인할 수 있습니다.

7777

Auto Scaling Group 의 활동탭의 작업 기록에서 알람에 의해 새로운 인스턴스를 추가했다는 것을 확인할 수 있습니다.

8888

3.2. Scale-In 동작 확인 (인스턴스 감소)

이번에는 반대로 CPU 사용률을 내려서 Auto Scaling Group내의 인스턴스가 줄어들게 해보겠습니다.

앞서 접속했던 인스턴스에서 실행중인 무한 루프 명령어를 중단합니다.

Get-Job | Stop-Job
Get-Job | Remove-Job

그리고 시간이 지나면 인스턴스를 따로 사용하지 않기 때문에 CPU 사용률이 줄어듭니다.
이때 축소를 위한 알람이 발생합니다.

9999

그러면 Auto Scaling Group은 자동으로 1개의 인스턴스를 삭제합니다.

10101010

더 나아가 계속 CPU 사용률이 35% 미만을 계속 유지된다면

11111111

Auto Scaling Group 내의 인스턴스도 2개에서 1개로 줄어듭니다. (설정한 최소 용량이 1이기 때문에)

12121212

인스턴스 감소 작업도 동일하게 Auto Scaling Group 의 활동탭의 작업 기록에서 확인할 수 있습니다.

13131313

4. 마무리

이번 실습을 통해 AWS Auto Scaling Group의 대상 추적 크기 조정 정책을 활용해 인스턴스를 자동 확장/축소 기능을 확인해보았습니다.

이상, 한국어 블로그 릴레이의 2025년 26번째 블로그「AWS Auto Scaling Group의 대상 추적 크기 조정 정책으로 인스턴스 자동 확장/축소 구현하기」편이었습니다.
다음 27번째 블로그 릴레이는 8월 둘째 주에 공개됩니다.

끝까지 읽어주셔서 감사합니다! 이상, 클라우드 사업본부의 임채정이었습니다.

블로그 릴레이

다른 블로그도 궁금하신 분은 아래 페이지를 참고해주세요.
https://dev.classmethod.jp/tags/korean-blog-relay/

문의 사항은 클래스메소드코리아로!

클래스메소드코리아에서는 다양한 세미나 및 이벤트를 진행하고 있습니다.
진행중인 이벤트는 아래 페이지를 참고해주세요.

https://classmethod.kr/board/library

AWS에 대한 상담 및 클래스메소드코리아 멤버스에 관한 문의사항은 아래 메일로 연락주시면 감사드립니다!
Info@classmethod.kr

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.