본문 바로가기
기술

시작 템플릿과 조정 정책: EC2 Auto Scaling 핵심 개념 정복하기

by 스타스토리. 2025. 6. 24.
반응형
핵심 요약: 본 문서는 Amazon EC2 Auto Scaling의 핵심 개념과 이점을 설명하고, 실제 애플리케이션 부하에 따라 EC2 인스턴스 수를 자동으로 조절하는 시스템을 구축하는 전 과정을 안내한다. 시작 템플릿 생성부터 Auto Scaling 그룹 설정, 조정 정책 구성, 그리고 부하 테스트를 통한 동작 검증까지 상세하게 다룬다.

지금까지 우리는 고가용성을 위해 다중 AZ에 걸쳐 웹 서버를 배포하고 로드 밸런서로 트래픽을 분산시켰다. 하지만 트래픽이 급증하거나 급감할 때마다 관리자가 직접 인스턴스를 추가하거나 삭제해야 한다면, 이는 진정한 의미의 클라우드 탄력성(Elasticity)이라 할 수 없다. Amazon EC2 Auto Scaling은 이러한 수동 개입을 제거하고, 정의된 정책에 따라 애플리케이션의 부하를 감지하여 EC2 인스턴스 수를 자동으로 늘리거나 줄여주는 '자율 운영 시스템'을 구축하는 핵심 서비스이다.

1. EC2 Auto Scaling의 개념과 이점

EC2 Auto Scaling은 사용자가 정의한 인스턴스의 모음인 'Auto Scaling 그룹'의 크기(인스턴스 수)를 모니터링하고 자동으로 조정한다. 이를 통해 다음과 같은 핵심적인 이점을 얻을 수 있다.

  • 내결함성 향상 (Fault Tolerance): 헬스 체크를 통해 비정상적인 인스턴스를 감지하면 자동으로 종료시키고 새로운 인스턴스로 교체하여, 항상 건강한 상태의 인스턴스 수를 유지한다.
  • 가용성 보장 (Availability): 트래픽이 증가하여 CPU 사용률과 같은 지표가 상승하면, 자동으로 인스턴스를 추가(Scale-Out)하여 사용자의 요청을 원활하게 처리할 수 있는 용량을 확보한다.
  • 비용 최적화 (Cost Management): 트래픽이 감소하는 새벽 시간 등에는 불필요한 인스턴스를 자동으로 종료(Scale-In)하여, 사용한 만큼만 비용을 지불하는 클라우드의 이점을 극대화한다.

2단계: 시작 템플릿(Launch Template) 생성

시작 템플릿은 Auto Scaling 그룹이 새로운 EC2 인스턴스를 생성할 때 참조하는 '설계도'이다. 어떤 AMI를 사용하고, 어떤 인스턴스 유형과 보안 그룹을 적용할지 등의 정보를 미리 정의해 둔다.

  • EC2 콘솔 좌측 메뉴에서 '인스턴스 > 시작 템플릿'으로 이동 후, '시작 템플릿 생성'을 클릭한다.
  • 아래와 같이 템플릿의 기본 정보를 입력한다.
- 시작 템플릿 이름: webserver-template
- 템플릿 버전 설명: Template for web server
- Auto Scaling 지침: 체크박스 선택

- AMI: webserver-ami (이전에 생성한 사용자 지정 AMI 선택)
- 인스턴스 유형: t2.micro
- 키 페어(로그인): 키 페어를 포함하지 않음
- 네트워크 설정 > 보안 그룹: webserver-sg (기존 보안 그룹 선택)
- 리소스 태그: Key=Name, Value=webserver-from-template
📌 보안 모범 사례: 키 페어 미포함
Auto Scaling에 의해 자동으로 생성되고 관리되는 인스턴스는, 관리자가 SSH로 직접 접속하여 변경 작업을 수행하지 않는 '불변 인프라(Immutable Infrastructure)' 원칙에 따라 운영하는 것이 이상적이다. 따라서 보안 강화를 위해 키 페어를 포함하지 않는 것이 권장된다. 모든 설정은 AMI에 미리 구워져 있어야 한다.

모든 정보를 입력한 후 '시작 템플릿 생성'을 클릭한다.

3단계: Auto Scaling 그룹(ASG) 생성

이제 시작 템플릿을 사용하여 실제로 인스턴스를 관리할 Auto Scaling 그룹을 생성한다.

3.1. 사전 준비 및 ASG 기본 설정

  • (중요) EC2 콘솔의 '대상 그룹' 메뉴에서 webserver-tg를 선택하고, '대상' 탭으로 이동하여 이전에 수동으로 등록했던 webserver 1webserver 2 인스턴스를 선택 후 '등록 취소'하여 제거한다. 이제 대상 그룹의 관리는 Auto Scaling 그룹에 위임된다.
  • EC2 콘솔 좌측 메뉴 하단의 'Auto Scaling > Auto Scaling 그룹'으로 이동 후, 'Auto Scaling 그룹 생성'을 클릭한다.
  • 그룹 이름을 web-asg로 지정하고, 방금 생성한 webserver-template 시작 템플릿을 선택한 후 '다음'을 클릭한다.

3.2. 네트워크 및 로드 밸런서 연동

  • '네트워크' 섹션에서 VPC-Lab을 선택하고, '서브넷'은 public subnet Apublic subnet C를 모두 선택하여 다중 AZ에 걸쳐 인스턴스가 배포되도록 한다.
  • '로드 밸런싱' 섹션에서 '기존 로드 밸런서에 연결'을 선택하고, 기존 로드 밸런서의 대상 그룹인 webserver-tg를 선택한다.
  • '상태 확인'에서 'ELB' 상태 확인 활성화를 체크한다.

3.3. 그룹 크기 및 조정 정책 설정

이 단계가 Auto Scaling의 핵심 동작을 정의하는 부분이다.

  • '그룹 크기'를 다음과 같이 설정한다. (원하는 용량: 1, 최소 용량: 1, 최대 용량: 4)
  • '조정 정책'에서 '대상 추적 조정 정책'을 선택하고, 아래와 같이 설정한다.
- 지표 유형: 평균 CPU 사용률 (Average CPU utilization)
- 대상 값: 30 (%)

위 설정은 '그룹 내 전체 인스턴스의 평균 CPU 사용률을 30% 수준으로 유지하라'는 명령이다. 평균 CPU가 30%를 초과하면 인스턴스를 추가(Scale-Out)하고, 30% 미만으로 떨어지면 인스턴스를 제거(Scale-In)하여 목표치를 맞춘다. 모든 설정 후 검토 단계를 거쳐 'Auto Scaling 그룹 생성'을 클릭한다.

4단계: 오토스케일링 동작 확인

ASG 생성이 완료되면, '원하는 용량'으로 설정한 1개의 인스턴스가 자동으로 시작된다. 이제 부하를 발생시켜 Scale-Out이 정상적으로 동작하는지 확인한다.

  • 로드 밸런서(web-alb)의 DNS 주소로 접속하여 'LOAD TEST' 버튼을 반복적으로 클릭한다.
  • Auto Scaling 그룹(web-asg)의 '활동' 탭을 주시하면, 잠시 후 평균 CPU 사용률이 30%를 초과하여 새로운 인스턴스를 시작했다는 이벤트 로그를 확인할 수 있다. (예: ...a new EC2 instance was launched...)
  • EC2 인스턴스 목록에서도 새로운 인스턴스가 생성되고 초기화되는 과정을 볼 수 있으며, 초기화가 완료되면 로드 밸런서의 대상 그룹에 자동으로 등록된다.
  • 부하 테스트를 중단하고 시간이 지나면, 평균 CPU 사용률이 다시 30% 아래로 떨어지면서 불필요해진 인스턴스를 종료시키는 Scale-In 이벤트도 확인할 수 있다.

부하에 따라 인스턴스가 자동으로 확장(Scale-Out)된 활동 기록 예시

결론

이번 실습을 통해 우리는 AWS 인프라 구축 여정의 정점인 EC2 Auto Scaling 설정을 완료하였다. VPC로 네트워크 기반을 다지고, EC2와 AMI로 서버 환경을 표준화했으며, 로드 밸런서로 트래픽을 분산시킨 후, 이제 Auto Scaling으로 이 모든 것을 자동화하였다. 이로써 외부의 변화무쌍한 트래픽 요구에 지능적으로 반응하여, 사용자에게는 끊김 없는 가용성을 제공하고 관리자에게는 비용 효율성을 극대화하는 현대적인 클라우드 아키텍처가 완성되었다. 이는 AWS가 제공하는 클라우드의 진정한 힘, 즉 '탄력성'을 완벽하게 구현한 것이다.

반응형