Amazon EC2 Auto Scaling 수명 주기 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EC2 Auto Scaling 수명 주기

Amazon EC2 Auto Scaling은 Auto Scaling 그룹에 수명 주기 후크를 추가할 수 있는 기능을 제공합니다. 이러한 후크를 사용하면 Auto Scaling 그룹이 Auto Scaling 인스턴스 수명 주기의 이벤트를 인식한 다음 해당 수명 주기 이벤트가 발생할 때 사용자 지정 작업을 수행할 수 있습니다. 수명 주기 후크는 인스턴스가 다음 상태로 전환되기 전에 수명 주기 작업을 완료하는 데 지정된 시간 (기본적으로 1시간) 을 제공합니다.

Auto Scaling 인스턴스에서 수명 주기 후크를 사용하는 예는 다음과 같습니다.

  • 확장 이벤트가 발생하는 경우 새로 시작된 인스턴스에서 시작 시퀀스를 완료하고 대기 상태로 전환합니다. 인스턴스가 대기 상태에 있는 동안 애플리케이션에 필요한 소프트웨어 패키지를 다운로드 및 설치하는 스크립트를 실행하여 트래픽 수신을 시작하기 전에 인스턴스가 준비를 마치도록 합니다. 스크립트가 소프트웨어 설치를 완료하면complete-lifecycle-action명령을 실행하여 계속 진행합니다.

  • 축소 이벤트가 발생하는 경우 인스턴스가 종료되기 전에 수명 주기 후크가 인스턴스를 일시 중지하고 Amazon EventBridge 를 사용하여 알림을 전송합니다. 인스턴스가 대기 상태에 있는 동안 인스턴스가 완전히 종료되기 전에 AWS Lambda 함수를 호출하거나 인스턴스에 연결하여 로그 또는 다른 데이터를 다운로드할 수 있습니다.

수명 주기 후크의 일반적인 용도는 인스턴스가 Elastic Load Balancing 에 등록되는 시기를 제어하는 것입니다. Auto Scaling 그룹에 시작 수명 주기 후크를 추가하면 수명 주기 후크가 끝날 때 로드 밸런서에 등록되기 전에 인스턴스의 애플리케이션이 트래픽을 수락할 준비가 되었는지 확인할 수 있습니다.

참고

Amazon EC2 Auto Scaling은 자체 수명 주기를 제공하여 Auto Scaling 그룹의 배포를 지원합니다. 이 수명 주기는 다른 EC2 인스턴스의 수명주기와 다릅니다. 자세한 내용은 Amazon EC2 Auto Scaling 인스턴스 수명 단원을 참조하세요.

수명 주기 후크 작동 방식

Auto Scaling 그룹에 수명 주기 후크를 추가하면 다음과 같이 작동합니다.

  1. Auto Scaling 그룹은 확장 이벤트에 응답하고 인스턴스를 시작하기 시작합니다.

  2. 수명 주기 후크는 인스턴스를 대기 상태 (Pending:Wait) 을 선택한 다음 사용자 지정 작업을 수행합니다.

    인스턴스를 사용하여 수명 주기 작업을 완료할 때까지 대기 상태로 유지됩니다.전체 수명주기 작업CLI 명령 또는CompleteLifecycleAction작업을 완료하거나 제한 시간이 종료될 때까지 작업을 수행할 수 있습니다. 기본적으로 인스턴스는 한 시간 동안 대기 상태로 유지됩니다. 그러면 Auto Scaling 그룹에서 시작 프로세스 (Pending:Proceed). 시간이 더 필요한 경우 하트비트를 기록하여 제한 시간을 다시 시작할 수 있습니다. 시간 초과 기간이 만료되기 전에 수명 주기 작업을 완료하면 기간이 종료되고 Auto Scaling 그룹이 시작 프로세스를 계속합니다.

  3. 인스턴스가InService상태 확인 유예 기간이 시작됩니다. Auto Scaling 그룹이 Elastic Load Balancing 로드 밸런서와 연결된 경우 인스턴스가 로드 밸런서에 등록되고 로드 밸런서는 상태를 확인하기 시작합니다. 상태 확인 유예 기간이 끝나면 Amazon EC2 Auto Scaling 이 인스턴스의 상태 확인을 시작합니다.

  4. Auto Scaling 그룹은 확장 이벤트에 응답하고 인스턴스를 종료하기 시작합니다. Auto Scaling 그룹을 Elastic Load Balancing 과 함께 사용하는 경우 종료 인스턴스가 먼저 로드 밸런서에서 등록 취소됩니다. 등록 취소되면 인스턴스는 새 연결 수락을 중지하고 계속 진행하기 전에 기존 연결이 유출될 때까지 기다립니다.

  5. 수명 주기 후크는 인스턴스를 대기 상태 (Terminating:Wait) 을 선택한 다음 사용자 지정 작업을 수행합니다.

    수명 주기 작업을 완료할 때까지 혹은 제한 시간이 끝날 때까지 (기본 1시간) 대기 상태로 유지됩니다. 수명 주기 후크를 완료하거나 시간 초과 기간이 만료되면 인스턴스가 다음 상태 (Terminating:Proceed).

  6. 인스턴스가 종료됩니다.

다음 그림에서는 이 프로세스에서 Auto Scaling 인스턴스 상태 간 전환을 보여 줍니다.


                수명 주기 후크를 사용한 인스턴스 수명 주기.

고려 사항 및 제한

수명 주기 후크를 사용할 때는 다음 주요 고려 사항 및 제한에 유의하십시오.

  • 예기치 않은 오류가 발생할 경우 실행을 중단하도록 시작 수명 주기 후크를 구성할 수 있습니다. 이 경우 Amazon EC2 Auto Scaling 이 자동으로 인스턴스를 종료하고 교체합니다.

  • Amazon EC2 Auto Scaling 은 수명 주기 후크가 일관되게 실패하는 경우 인스턴스를 시작할 수 있도록 허용하는 속도를 제한합니다.

  • 스팟 인스턴스와 함께 수명 주기 후크를 사용할 수 있습니다. 그러나 수명 주기 후크는 용량을 더 이상 사용할 수 없는 경우 인스턴스 종료를 막지 않습니다. 이는 2분 중단 알림과 함께 언제든지 발생할 수 있습니다. 자세한 내용은 단원을 참조하십시오.스팟 인스턴스 중단Linux 인스턴스용 Amazon EC2 사용 설명서를 선택합니다.

  • 확장 시 Amazon EC2 Auto Scaling 은 시작 수명 주기 후크가 완료되고 조정 정책의 워밍업 시간이 완료될 때까지 Auto Scaling 그룹의 집계된 CloudWatch 메트릭에 새 인스턴스를 계산하지 않습니다. 축소 시 종료 인스턴스는 종료 수명 주기 후크가 완료될 때까지 그룹의 집계된 메트릭의 일부로 계속 계산됩니다.

  • 단순 조정 정책으로 인해 Auto Scaling 그룹에서 인스턴스를 시작하거나 종료하면 휴지 기간이 적용됩니다. 휴지 기간은 이전의 단순 조정 작업의 효과가 표시되기 전에 Auto Scaling 그룹에서 필요한 것보다 많은 인스턴스를 시작하거나 종료하지 않도록 하는 데 도움이 됩니다. 수명 주기 작업이 발생하고 인스턴스가 대기 상태로 전환되면 단순 조정 정책으로 인한 조정 활동이 일시 중지됩니다. 수명 주기 작업이 완료되면 휴지 기간이 시작됩니다. 휴지 기간 동안 긴 간격을 설정하면 조정을 재개하는 데 더 많은 시간이 걸립니다. 자세한 내용은 Amazon EC2 Auto Scaling에 사용되는 조정 휴지 단원을 참조하세요.

  • Auto Scaling 그룹당 생성할 수 있는 수명 주기 후크의 최대 수를 지정하는 할당량이 있습니다. 자세한 내용은 Amazon EC2 Auto Scaling 서비스 할당량 단원을 참조하세요.

  • 수명 주기 후크 사용 예는 다음 블로그 게시물을 참조하십시오. AWS Lambda 및 Amazon EC2 실행 명령을 사용하여 확장 인스턴스용 Backup 시스템 구축EC2 Auto Scaling 인스턴스를 종료하기 전에 코드 실행를 선택합니다.

인스턴스를 대기 상태로 유지

인스턴스는 한정된 시간 동안 대기 상태를 유지할 수 있습니다. 기본값은 1시간(3600초)입니다.

다음과 같은 방법으로 제한 시간이 지속되는 시간을 조정할 수 있습니다.

  • 수명 주기 후크를 만들 때 수명 주기 후크의 하트비트 제한 시간을 설정합니다. 와 함께put-lifecycle cle-hook명령을 사용하려면--heartbeat-timeout파라미터. PutLifecycleHook 작업에서 HeartbeatTimeout 파라미터를 사용합니다.

  • 제한 시간이 종료되기 전에 마칠 경우 다음 상태로 진행합니다.전체 수명주기 작업명령 또는CompleteLifecycleAction작업을 사용합니다.

  • 하트비트를 기록함으로써 제한 시간 종료를 연기할 수 있는레코드 수명주기-액션-하트비트명령 또는RecordLifecycleActionHeartbeat작업을 사용합니다. 그러면 수명 주기 후크를 만들 때 지정한 제한 시간 값을 기준으로 제한 시간이 늘어납니다. 예를 들어 제한 시간 값이 1시간이고 이 명령을 30분 후에 호출한 경우, 인스턴스는 추가 1시간 동안 대기 상태로 유지됩니다(총 90분).

인스턴스를 대기 상태로 유지할 수 있는 최대 시간은 48시간 혹은 하트비트 제한 시간 100회 중 적은 쪽입니다.

수명 주기 후크 알림

인스턴스가 대기 상태에 들어가고 Amazon EC2 Auto Scaling 이 수명 주기 작업에 대한 이벤트를 EventBridge에 제출하면 Lambda 함수를 호출하거나 알림을 보내도록 다양한 EventBridge 규칙을 구성할 수 있습니다. 이 이벤트에는 시작되거나 종료되는 인스턴스에 대한 정보와 수명 주기 작업을 제어하는 데 사용할 수 있는 토큰이 포함되어 있습니다. 수명 주기 후크를 만들기 위한 소개 자습서 스타일 가이드는자습서: Lambda 함수를 호출하는 수명 주기 후크 구성를 선택합니다. 수명 주기 작업이 발생할 때 발생하는 이벤트의 예는Auto Scaling를 선택합니다.

또는 인스턴스가 시작된 후 인스턴스를 구성하는 사용자 데이터 또는 cloud-init 스크립트가 있는 경우 알림을 구성할 필요가 없습니다. 스크립트는 실행되는 인스턴스의 ID를 사용하여 수명 주기 작업을 제어할 수 있습니다. 아직 없는 경우 인스턴스 메타데이터에서 인스턴스의 인스턴스 ID를 검색하도록 스크립트를 업데이트합니다. 자세한 내용은 단원을 참조하십시오.인스턴스 메타데이터 검색Linux 인스턴스용 Amazon EC2 사용 설명서를 선택합니다. 구성 스크립트가 완료되면 스크립트가 수명 주기 후크를 알려주도록 하여 인스턴스가 다음 상태로 진행되도록 할 수 있습니다.

참고

Amazon EC2 Auto Scaling 콘솔은 수명 주기 후크에 대한 Amazon SNS 또는 Amazon SQS 알림 대상을 정의하는 옵션을 제공하지 않습니다. AWS CLI 또는 AWS SDK를 사용하여 수명 주기 후크를 추가해야 합니다. 자세한 내용은 알림 구성 단원을 참조하세요.

GitHub 리포지토리

당신은 우리의 방문 할 수 있습니다GitHub 리포지토리수명 주기 후크 템플릿과 스크립트를 다운로드할 수 있습니다.

수명 주기 후크

다음 표에는 다양한 시나리오에 사용할 수 있는 수명 주기 후크가 나와 있습니다.

Event 인스턴스 시작 또는 종료¹ 최대 인스턴스 수명 주기: 대체 인스턴스 인스턴스 새로 고침: 대체 인스턴스 용량 리밸런싱: 대체 인스턴스 웜 풀: 웜 풀에 들어오고 나가는 인스턴스
인스턴스 시작
인스턴스 종료

¹ 그룹이 생성되거나 삭제될 때, 그룹이 자동으로 확장되거나 그룹의 원하는 용량을 수동으로 조정할 때 시작 또는 종료된 인스턴스에 적용됩니다. 강제 삭제 옵션을 사용하여 인스턴스를 연결 또는 분리하거나, 인스턴스를 대기 모드 안팎으로 이동하거나, 그룹을 삭제할 때는 적용되지 않습니다.