Auto Scaling Group – Lifecycle Hook
⏳ Lifecycle Hook
Lifecycle Hook은 Auto Scaling Group(ASG) 내에서 EC2 인스턴스가 "시작(Launching)"되거나 "종료(Terminating)"될 때 특정 작업을 실행할 수 있도록 하는 기능이다.
<참고: Auto Scaling Group(ASG)이란?>
🔎 Lifecycle Hook이 필요한 이유
보통 Auto Scaling Group은 기존에 설정된 Policy로 인해 인스턴스를 자동으로 생성 또는 종료시키지만, 실질적으로 개발자 입장에서 어떠한 원인(root cause)으로 인해 문제가 생겼는지 확인이 불가능하다.
이를 확인하기 위해서 문제 분석을 위한 추가 작업이나 설정을 적용하기 위해 Lifecycle Hook이 있다.
📙 Lifecycle Hook 사용 예시:
Auto Scaling Group이 EC2 인스턴스를 어떠한 이유로 종료시켰는지 알고싶은 경우
1️⃣ EC2가 어떠한 이유로 종료(terminate)될 때 Auto Scaling Group에서 Lifecycle Hook을 실행
2️⃣ Lifecycle Hook이 event를 Amazon EventBridge에 전송
3️⃣ EventBridge가 AWS Lambda 함수를 호출하여 문제 원인을 조사하는 코드를 실행
4️⃣ 일정 시간이 지나면 인스턴스가 종료됨
📜 Lifecycle Hook 설정 방법
EC2 → Auto Scaling Group → Create Lifecycle Hooks
예시)
- Name: MyLifecycleHook
- Lifecycle transition: Instance terminating (종료 시)
- Timeout: 300 초
- Default action: CONTINUE
- Lambda, SQS, EventBridge 중 트리거 선택
🤔 문제
애플리케이션이 Auto Scaling 그룹에 속한 Amazon EC2 인스턴스에서 실행되고 있습니다.
새 기능을 배포한 후 일부 인스턴스가 비정상(unhealthy) 상태로 표시되었으며, Auto Scaling 그룹에 의해 교체되었습니다.
EC2 인스턴스가 종료되기 전에 SysOps 관리자가 문제의 원인을 확인할 시간이 없었습니다.
이 문제를 해결하기 위해, 이러한 상황이 발생할 때 AWS Lambda 함수가 실행되도록 설정하려고 합니다.
SysOps 관리자는 어떻게 이 요구 사항을 충족할 수 있을까요?
- Auto Scaling 그룹에서 인스턴스 축소 보호(Scale-in protection)를 활성화하고, Amazon EventBridge(Amazon CloudWatch Events)를 통해 Lambda 함수를 호출한다.
- Auto Scaling 그룹에서 인스턴스 축소 보호(Scale-in protection)를 활성화하고, Amazon Route 53을 통해 Lambda 함수를 호출한다.
- Lifecycle Hook을 Auto Scaling 그룹에 추가하고, Amazon EventBridge(Amazon CloudWatch Events)를 통해 Lambda 함수를 호출한다.
- Lifecycle Hook을 Auto Scaling 그룹에 추가하고, Amazon Route 53을 통해 Lambda 함수를 호출한다.
정답
정답. 3번
Instance Scale-In Protection란?
Auto Scaling Group에서 인스턴스가 축소(Scale-In)될 때, 특정 인스턴스가 종료되지 않도록 보호하는 기능이다.
그러나 Health Check(건강 상태 점검) 실패로 인한 인스턴스 교체에는 적용되지 않는다.
즉, 인스턴스가 비정상(Unhealthy) 상태가 되면 보호 설정과 상관없이 Auto Scaling Group에 의해 종료될 수 있다.
'클라우드(AWS) > SOA-C02' 카테고리의 다른 글
[AWS] S3 bucket에 1TB 데이터 업로드하기 (0) | 2025.02.08 |
---|---|
[AWS] Route 53 Resolver란? 쉽게 정리 (온프레미스와 VPC 네트워크 간에 DNS 쿼리 실현) (0) | 2025.02.07 |
[AWS] KMS 키를 사용하여 외부 업체와 안전하게 데이터 암호화하기 (S3 bucket) (0) | 2025.02.04 |
[AWS] KMS Key Material란? 쉽게 정리 (Imported Key Material, AWS-managed key) (1) | 2025.02.04 |
[AWS] EC2 Status Check란? 쉽게 정리 (System Status Check와 Instance Status Check의 차이) (0) | 2025.02.03 |