1. Lifecycle Hooks
- Amazon EC2 Auto Scaling은 애플리케이션의 수요에 따라 EC2 인스턴스를 자동으로 조정하는 강력한 서비스입니다.
- 이 서비스의 핵심 기능 중 하나인 Lifecycle Hooks에 대해 자세히 알아보겠습니다.
2. Lifecycle Hooks란?
- Lifecycle Hooks는 Auto Scaling 그룹에서 인스턴스가 시작되거나 종료될 때 추가적인 작업을 수행할 수 있게 해주는 기능입니다.
- 기본적으로 인스턴스는 시작되자마자 서비스 상태로 전환되지만, Lifecycle Hooks를 사용하면 이 과정에 개입할 수 있습니다.
- 이를 통해 인스턴스가 완전히 구성되기 전에 필요한 설정을 수행하거나, 종료되기 전에 중요한 데이터를 백업하는 등의 작업이 가능합니다.
3. Lifecycle Hooks의 주요 특징
- Lifecycle Hooks는 다음과 같은 주요 특징을 가지고 있습니다:
- 인스턴스 상태 제어:
- 인스턴스가 '대기' 상태에 머물게 하여 추가 작업을 수행할 시간을 제공합니다.
- 시작 중인 인스턴스는 'Pending:Wait' 상태로, 종료 중인 인스턴스는 'Terminating:Wait' 상태로 전환됩니다.
- 유연한 작업 정의:
- 인스턴스 시작 시 실행할 스크립트를 정의할 수 있습니다.
- 종료 전 문제 해결을 위해 인스턴스를 일시 중지할 수 있습니다.
- 다양한 사용 사례:
- 정리 작업, 로그 추출, 특별한 상태 확인 등 다양한 목적으로 활용 가능합니다.
- 이벤트 통합:
- Amazon EventBridge, SNS, SQS와 통합되어 이벤트 기반의 자동화를 구현할 수 있습니다.
4. Auto Scaling 인스턴스의 생명주기
4.1 인스턴스 상태 개요

- EC2 인스턴스는 생성부터 종료까지 여러 상태를 거치게 됩니다:
- Pending: 초기 시작 상태
- Pending:Wait: Lifecycle Hook 작동
- Pending:Proceed: Lifecycle Hook 완료
- InService: 서비스 중
- Terminating: 종료 시작
- Terminating:Wait: 종료 전 대기
- Terminating:Proceed: 종료 진행
- Terminated: 종료 완료
4.2 스케일 아웃 프로세스
- 시작 트리거
- Auto Scaling 그룹이 스케일 아웃 이벤트 감지
- 새로운 인스턴스 시작 프로세스 시작
- Pending:Wait 상태
- Lifecycle Hook 작동
- 인스턴스가 대기 상태로 전환
- 사용자 정의 작업 수행 (최대 1시간)
- InService 전환
- 작업 완료 후 Pending:Proceed 상태로 전환
- 로드 밸런서 등록 (사용 시)
- 헬스 체크 시작
4.3 스케일 인 프로세스