AWS Solutions Architect · 강의

인스턴스 새로 고침 및 수명 주기 후크

인스턴스 새로 고침으로 새 시작 템플릿을 점진적으로 배포하고, 수명 주기 후크로 인스턴스 시작 또는 종료 전에 사용자 지정 로직을 실행합니다.

레슨 4/413개 단계

인스턴스 새로 고침 및 수명 주기 후크은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

인스턴스 롤링 업데이트의 문제

시작 템플릿을 업데이트해도(새 AMI, 새 사용자 데이터, 새 인스턴스 유형) ASG에서 실행 중인 기존 인스턴스가 자동으로 교체되지는 않습니다. 기존 인스턴스는 이전 구성을 계속 사용합니다. 변경 사항을 적용하려면 인스턴스를 교체해야 합니다. 인스턴스를 수동으로 종료하고 다시 시작하는 방식은 위험하며 오류가 발생하기 쉽습니다. 인스턴스 새로 고침은 구성 가능한 안전 제어 기능으로 이 과정을 자동화합니다.

인스턴스 새로 고침: 작동 방식

인스턴스 새로 고침은 ASG 인스턴스를 롤링 방식의 묶음으로 교체합니다. 각 단계에서 이전 인스턴스 묶음을 종료하고, 새 인스턴스가 상태 확인을 통과할 때까지 기다린 다음, 다음 묶음으로 진행합니다. MinHealthyPercentage(새로 고침 중 정상 상태로 유지되어야 하는 용량의 최소 비율)와 선택적 InstanceWarmup 시간으로 진행 속도를 제어합니다.

aws autoscaling start-instance-refresh \
  --auto-scaling-group-name 'MyAppASG' \
  --preferences '{
    "MinHealthyPercentage": 80,
    "InstanceWarmup": 300,
    "CheckpointPercentages": [20, 50, 100],
    "CheckpointDelay": 600
  }'

MinHealthyPercentage와 묶음 크기

MinHealthyPercentage는 새로 고침 중 정상 용량의 하한을 정의합니다. 90%로 설정하면 한 번에 전체 인스턴스의 10%만 교체되므로 더 느리지만 안전합니다. 50%로 설정하면 전체의 절반을 한 번에 교체하므로 더 빠르지만 중복성이 낮아집니다. ASG는 이 비율과 현재 원하는 용량을 기준으로 묶음 크기를 자동으로 계산합니다. 가용성을 유지하려면 운영 워크로드에 더 높은 비율을 선택하십시오.

카나리 방식 배포를 위한 체크포인트

체크포인트를 사용하면 사전 정의된 비율의 이정표에서 인스턴스 새로 고침을 일시 중지할 수 있습니다. 예를 들어 인스턴스의 20%를 새로 고친 후 10분 동안 일시 중지하여 스모크 테스트를 실행하고 계속 진행할 수 있습니다. 체크포인트에서 문제가 발견되면 새로 고침을 취소할 수 있습니다. ASG는 추가 인스턴스 교체를 중지하지만 이미 교체된 인스턴스는 계속 실행합니다(이미 새 템플릿을 사용하고 있기 때문입니다). 이는 EC2에 적용하는 카나리 배포 패턴입니다.

인스턴스 새로 고침 취소 및 모니터링

진행 중인 인스턴스 새로 고침은 언제든지 취소할 수 있습니다. 취소하면 추가 교체는 중지되지만 완료된 교체가 롤백되지는 않습니다. describe-instance-refreshes를 사용하여 상태, 진행률 및 시작에 실패한 인스턴스를 확인하십시오. 새 AMI를 시작 템플릿에 게시한 후 새로 고침이 자동으로 실행되도록 인스턴스 새로 고침을 CI/CD 파이프라인과 통합하면 완전히 자동화된 블루/그린 방식의 배포를 구현할 수 있습니다.

aws autoscaling describe-instance-refreshes \
  --auto-scaling-group-name 'MyAppASG'

# Cancel a running refresh
aws autoscaling cancel-instance-refresh \
  --auto-scaling-group-name 'MyAppASG'

수명 주기 후크 소개

수명 주기 후크는 인스턴스가 활성화되기 전이나 종료되기 전에 ASG 인스턴스 전환을 중요한 시점에서 일시 중지하여 사용자 지정 로직을 실행할 수 있도록 합니다. 후크 지점은 두 가지입니다. EC2_INSTANCE_LAUNCHING(시작된 후, 인스턴스가 InService 상태가 되기 전)과 EC2_INSTANCE_TERMINATING(종료 결정 후, 인스턴스가 실제로 종료되기 전)입니다. 후크가 실행되는 동안 인스턴스는 Pending:Wait 또는 Terminating:Wait 상태입니다.

시작 수명 주기 후크의 사용 사례

시작 후크는 인스턴스가 트래픽을 처리하기 전에 완료되어야 하는 작업에 적합합니다. 예를 들면 추가 소프트웨어 설치, Parameter Store에서 구성 가져오기, 서비스 검색 레지스트리에 등록, 통합 테스트 실행 등이 있습니다. 후크가 완료되거나 시간 초과될 때까지 ASG는 해당 인스턴스를 로드 밸런서 대상 그룹에 추가하지 않습니다. 따라서 구성이 완료되지 않은 인스턴스로 트래픽이 전달되는 것을 방지할 수 있습니다.

aws autoscaling put-lifecycle-hook \
  --auto-scaling-group-name 'MyAppASG' \
  --lifecycle-hook-name 'AppInit' \
  --lifecycle-transition EC2_INSTANCE_LAUNCHING \
  --default-result ABANDON \
  --heartbeat-timeout 300

종료 수명 주기 후크의 사용 사례

종료 후크는 인스턴스가 실제로 종료되기 전에 실행됩니다. 사용 사례로는 애플리케이션 수준 대기열의 처리 중 요청 정리, 캐시된 데이터를 영구 저장소로 플러시, 서비스 레지스트리에서 등록 해제, 로그 파일을 S3로 복사하는 작업 등이 있습니다. 종료 후크가 없으면 종료 중인 인스턴스에서 처리 중이던 작업이 손실될 수 있습니다. 후크를 사용하면 최대 2시간(하트비트 시간 초과) 동안 정상 종료 작업을 완료할 수 있습니다.

aws autoscaling put-lifecycle-hook \
  --auto-scaling-group-name 'MyAppASG' \
  --lifecycle-hook-name 'GracefulShutdown' \
  --lifecycle-transition EC2_INSTANCE_TERMINATING \
  --default-result CONTINUE \
  --heartbeat-timeout 120

수명 주기 후크 완료

인스턴스에서 실행되거나 인스턴스에 의해 트리거된 사용자 지정 로직은 작업이 끝났을 때 후크에 신호를 보내야 합니다. complete-lifecycle-action을 CONTINUE(정상적으로 계속 진행) 또는 ABANDON(시작 후크에서는 인스턴스를 종료하고, 종료 후크에서는 무시한 뒤 계속 진행)과 함께 사용하십시오. 최대 지속 시간까지 일정한 간격으로 하트비트를 보내 후크의 시간 초과를 연장할 수도 있습니다. 후크의 시간이 초과되면 DefaultResult가 적용됩니다.

# From inside the instance or a Lambda triggered by EventBridge
aws autoscaling complete-lifecycle-action \
  --auto-scaling-group-name 'MyAppASG' \
  --lifecycle-hook-name 'AppInit' \
  --lifecycle-action-result CONTINUE \
  --instance-id 'i-0abc123def456'

EventBridge를 사용한 트리거 로직

수명 주기 후크에 대응하는 가장 깔끔한 방법은 Amazon EventBridge를 사용하는 것입니다. 수명 주기 후크가 실행되면 ASG가 EventBridge로 이벤트를 전송합니다. EventBridge 규칙은 이 이벤트를 Lambda 함수로 전달하고, Lambda 함수는 필요한 작업을 수행한 다음 complete-lifecycle-action을 호출합니다. 이 아키텍처는 완전한 서버리스 방식이며 폴링이 필요 없고 자동으로 확장됩니다. SQS와 SNS 알림은 더 오래된 대안이지만, 새로운 설계에는 EventBridge가 권장됩니다.

인스턴스 새로 고침과 수명 주기 후크의 통합

인스턴스 새로 고침이 인스턴스를 교체할 때도 수명 주기 후크는 둘 다 실행됩니다. 이전 인스턴스에서는 종료 후크가, 새 인스턴스에서는 시작 후크가 실행됩니다. 따라서 정상적인 규모 조정 이벤트뿐 아니라 롤링 업데이트 중에도 정상 종료 로직과 초기화 로직이 자동으로 실행됩니다. 올바르게 작동하는지 확인하려면 운영 환경에 배포하기 전에 단계적으로 진행하는 인스턴스 새로 고침 중에 수명 주기 후크 로직을 항상 테스트하십시오.

빠른 확인

이 lesson에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 제대로 이해했는지 확인해 보십시오.

lesson 요약

이 lesson에서는 다음을 배웠습니다. 인스턴스 새로 고침은 MinHealthyPercentage와 선택적 체크포인트로 제어되는 롤링 묶음 방식으로 ASG 인스턴스를 교체하여 카나리 방식으로 검증할 수 있게 합니다. 수명 주기 후크는 시작 또는 종료 시 인스턴스 전환을 일시 중지하여 사용자 지정 초기화 또는 정상 종료 로직을 실행합니다. 또한 EventBridge + Lambda는 폴링 없이 수명 주기 후크 이벤트에 대응하는 권장 패턴입니다. 다음에서는 AWS Lambda 함수, 런타임, 트리거 및 핸들러를 살펴봅니다.

무료로 시작

AI 튜터와 함께 AWS Solutions Architect을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“인스턴스 새로 고침 및 수명 주기 후크” 강의는 무료인가요?

네 — “인스턴스 새로 고침 및 수명 주기 후크” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“인스턴스 새로 고침 및 수명 주기 후크”에서 뭘 배우나요?

인스턴스 새로 고침으로 새 시작 템플릿을 점진적으로 배포하고, 수명 주기 후크로 인스턴스 시작 또는 종료 전에 사용자 지정 로직을 실행합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“인스턴스 새로 고침 및 수명 주기 후크” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 시작 템플릿 및 ASG 구성
  2. 확장 정책: 대상 추적 및 단계적 확장
  3. 예약된 확장 및 예측 확장
  4. 인스턴스 새로 고침 및 수명 주기 후크
← AWS Solutions Architect(으)로 돌아가기