Auto Scaling 그룹의 웜 풀과 함께 라이프사이클 후크 사용 - 아마존 EC2 오토 스케일링

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

Auto Scaling 그룹의 웜 풀과 함께 라이프사이클 후크 사용

웜 풀의 인스턴스는 각 전환에 적절한 사용자 지정 작업을 생성하는 데 도움이 되도록 독립적인 자체 수명 주기를 유지합니다. 이 수명 주기는 인스턴스가 아직 초기화 중이고 서비스 상태가 되기 전에 대상 서비스에서 작업(예: Lambda 함수)을 호출하는 데 도움이 되도록 설계되었습니다.

참고

수명 주기 후크를 추가 및 관리하고 수명 주기 API 작업을 완료하는 데 사용하는 작업은 변경되지 않습니다. 인스턴스 수명 주기만 변경됩니다.

수명 주기 후크 사용에 대한 자세한 설명은 Auto Scaling 그룹에 라이프사이클 후크 추가 섹션을 참조하세요. 수명 주기 작업 완료에 대한 자세한 설명은 Auto Scaling 그룹에서 라이프사이클 작업 완료 섹션을 참조하세요.

웜 풀에 들어가는 인스턴스의 경우, 다음 이유 중 하나로 인해 수명 주기 후크가 필요할 수 있습니다.

  • 초기화를 완료하는 데 시간이 오래 걸리는 EC2 인스턴스에서 인스턴스를 AMI 시작하려고 합니다.

  • 사용자 데이터 스크립트를 실행하여 인스턴스를 부트스트랩하려고 합니다. EC2

웜 풀에서 나가는 인스턴스의 경우, 다음 이유 중 하나로 인해 수명 주기 후크가 필요할 수 있습니다.

  • 추가 시간을 할애하여 EC2 인스턴스를 사용할 수 있도록 준비할 수 있습니다. 예컨대, 애플리케이션의 올바른 작동을 위해 인스턴스를 다시 시작할 때 반드시 시작해야 하는 서비스가 있을 수 있습니다.

  • 새 서버가 비어 있는 캐시로 시작되지 않도록 캐시 데이터를 미리 채우려고 합니다.

  • 새 인스턴스를 구성 관리 서비스에 관리형 인스턴스로 등록하려고 합니다.

웜 풀의 인스턴스에 대한 수명 주기 상태 전환

Auto Scaling 인스턴스는 수명 주기의 일부로 여러 가지 상태로 전환할 수 있습니다.

다음 다이어그램은 웜 풀을 사용할 때 Auto Scaling 상태 간의 전환을 보여줍니다.

웜 풀의 인스턴스에 대한 수명 주기 상태 전환을 보여주는 다이어그램입니다.

¹ 이 상태는 웜 풀의 풀 상태 설정에 따라 다릅니다. 풀 상태가 Running으로 설정된 경우는 이 상태는 Warmed:Running이 됩니다. 풀 상태가 Hibernated로 설정된 경우, 이 상태는 Warmed:Hibernated가 됩니다.

수명 주기 후크를 추가할 때 다음 사항을 고려하세요.

  • autoscaling:EC2_INSTANCE_LAUNCHING 수명 주기 작업에 대해 수명 주기 후크가 구성된 경우, 새로 시작된 인스턴스가 Warmed:Pending:Wait 상태에 도달하면 먼저 일시 중지하여 사용자 지정 작업을 수행하고 인스턴스가 다시 시작되어 Pending:Wait 상태에 도달합니다.

  • EC2_INSTANCE_TERMINATING 수명 주기 작업에 대해 수명 주기 후크가 구성된 경우, 해지 인스턴스가 Terminating:Wait 상태에 도달하면 일시 중지하여 사용자 지정 작업을 수행합니다. 하지만 인스턴스를 해지하지 않고 스케일 인 시 웜 풀에 반환하도록 인스턴스 재사용 정책을 지정하는 경우, EC2_INSTANCE_TERMINATING 수명 주기 작업에 대해 Warmed:Pending:Wait 상태에서 웜 풀에 반환한 인스턴스가 일시 중지되어 사용자 지정 작업을 수행합니다.

  • 애플리케이션에 대한 수요로 인해 웜 풀이 고갈되는 경우, Amazon EC2 Auto Scaling은 Auto Scaling 그룹에서 인스턴스를 직접 시작할 수 있습니다. 단, 그룹의 용량이 아직 최대 용량에 도달하지 않은 경우에 한합니다. 인스턴스가 그룹으로 직접 시작되는 경우, Pending:Wait 상태에서 사용자 지정 작업을 수행하기 위해서만 일시 중지됩니다.

  • 인스턴스가 다음 상태로 전환되기 전에 대기 상태를 유지하는 기간을 제어하려면 complete-lifecycle-action 명령을 사용하도록 사용자 지정 작업을 구성합니다. 수명 주기 후크를 사용하면 Amazon EC2 Auto Scaling에 지정된 수명 주기 작업이 완료되었음을 알릴 때까지 또는 제한 시간이 종료될 때까지 (기본적으로 1시간) 인스턴스가 대기 상태로 유지됩니다.

다음은 스케일 아웃 이벤트의 흐름을 요약한 것입니다.

스케일 아웃 이벤트의 흐름 다이어그램.

인스턴스가 대기 상태에 도달하면 Amazon EC2 Auto Scaling에서 알림을 보냅니다. 이러한 알림의 예는 이 가이드의 EventBridge 섹션에서 확인할 수 있습니다. 자세한 내용은 웜 풀 예 이벤트 및 패턴 단원을 참조하십시오.

지원되는 알림 대상

Amazon EC2 Auto Scaling은 다음 중 하나를 수명 주기 알림의 알림 대상으로 정의할 수 있도록 지원합니다.

  • EventBridge 규칙

  • 아마존 SNS 토픽

  • 아마존 SQS 대기열

중요

시작 템플릿 또는 시작 구성에 인스턴스가 시작될 때 인스턴스를 구성하는 사용자 데이터(cloud-init) 스크립트가 있는 경우, 시작하거나 다시 시작하고 있는 인스턴스에 사용자 지정 작업을 수행하기 위해 알림을 받을 필요가 없습니다.

다음 섹션에는 알림 대상을 구성하는 방법을 설명하는 문서에 대한 링크가 포함되어 있습니다.

EventBridge 규칙: Amazon EC2 Auto Scaling이 인스턴스를 대기 상태로 만들 때 코드를 실행하려면 EventBridge 규칙을 생성하고 Lambda 함수를 대상으로 지정하면 됩니다. 수명 주기 알림에 따라 서로 다른 Lambda 함수를 호출하려면 여러 규칙을 생성하고 각 규칙을 특정 이벤트 패턴 및 Lambda 함수에 연결할 수 있습니다. 자세한 내용은 웜풀 이벤트에 대한 EventBridge 규칙 생성 단원을 참조하십시오.

Amazon SNS 주제: 인스턴스가 대기 상태로 전환되었을 때 알림을 받으려면 Amazon SNS 주제를 생성한 다음, SNS 메시지 속성에 따라 수명 주기 알림을 다르게 전송하도록 Amazon 메시지 필터링을 설정합니다. 자세한 내용은 Amazon SNS를 사용하여 알림 수신 단원을 참조하십시오.

아마존 SQS 대기열: 관련 소비자가 라이프사이클 알림을 수신하여 처리할 수 있는 배송 지점을 설정하려면 Amazon SQS 대기열과 대기열에서 메시지를 처리하는 대기열 소비자를 생성하면 됩니다. SQS 대기열 소비자가 메시지 속성에 따라 수명 주기 알림을 다르게 처리하도록 하려면 메시지를 구문 분석한 다음 특정 속성이 원하는 값과 일치하면 메시지에 대해 조치를 취하도록 대기열 소비자를 설정해야 합니다. 자세한 설명은 Amazon SQS 사용하여 알림 수신 섹션을 참조하세요.