라이프사이클 후크 추가 - Amazon EC2 Auto Scaling

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

라이프사이클 후크 추가

Auto Scaling 인스턴스를 대기 상태로 전환하고 해당 인스턴스에 대해 맞춤 작업을 수행하려는 경우, Auto Scaling 그룹에 라이프사이클 후크를 추가할 수 있습니다. 맞춤 작업은 인스턴스가 시작될 때 또는 해지되기 전에 수행됩니다. 라이프사이클 작업을 완료할 때까지 혹은 제한 시간이 끝날 때까지 인스턴스는 대기 상태로 유지됩니다.

에서 Auto Scaling 그룹을 생성한 후 AWS Management Console, 그룹에 수명 주기 후크를 하나 이상 추가할 수 있으며, 총 50개의 수명 주기 후크를 추가할 수 있습니다. AWS CLI AWS CloudFormation, 또는 SDK를 사용하여 Auto Scaling 그룹을 생성할 때 수명 주기 후크를 추가할 수도 있습니다.

기본적으로 콘솔에서 수명 주기 후크를 추가하면 Amazon EC2 Auto Scaling에서 Amazon에 수명 주기 이벤트 알림을 보냅니다. EventBridge EventBridge 또는 사용자 데이터 스크립트를 사용하는 것이 가장 좋습니다. Amazon SNS 또는 Amazon SQS로 알림을 직접 보내는 수명 주기 후크를 생성하려면 이 항목의 예제에 표시된 대로 put-lifecycle-hook명령을 사용할 수 있습니다.

라이프사이클 후크 추가(콘솔)

Auto Scaling 그룹에 라이프사이클 후크를 추가하려면 다음 단계를 따르십시오. 스케일 아웃(인스턴스 출범) 및 스케일 인(인스턴스 해지)를 위한 라이프사이클 후크를 생성하려면 두 개의 개별 후크를 생성해야 합니다.

시작하기 전에 필요한 대로 Auto Scaling 그룹에 대한 라이프사이클 후크 추가 준비의 설명에 따라 맞춤 작업을 설정하십시오.

스케일 아웃을 위한 라이프사이클 후크를 추가
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling 그룹(Auto Scaling Groups)을 선택합니다.

  2. Auto Scaling 그룹 옆의 확인란을 선택합니다. 페이지 하단에 분할 창이 열립니다.

  3. 인스턴스 관리 탭의 Lifecycle hooks(라이프사이클 후크)에서 Create lifecycle hook(라이프사이클 후크 생성)을 선택합니다.

  4. 스케일 아웃(인스턴스 실행)을 위한 라이프사이클 후크를 정의하려면 다음을 수행하세요.

    1. Lifecycle hook name(라이프사이클 후크 이름)에 라이프사이클 후크의 이름을 지정합니다.

    2. Lifecycle transition(라이프사이클 전환)에서 Instance launch(인스턴스 출범)를 선택합니다.

    3. 하트비트 제한 시간에서는 스케일 아웃할 때 훅이 시간 초과되기 전에 인스턴스가 대기 상태로 유지되는 시간을 지정하십시오. 범위는 30 ~ 7200초입니다. 제한 시간을 길게 설정하면 맞춤 작업을 완료하기 위한 시간을 더 많이 제공합니다. 그런 다음 제한 시간이 끝나기 전에 작업을 마치면 complete-lifecycle-action명령을 전송하여 인스턴스가 다음 상태로 진행되도록 하십시오.

    4. 기본 결과(Default result)에서 라이프사이클 후크 제한 시간이 경과하거나 예기치 못한 오류가 발생할 때 수행할 작업을 지정합니다. 계속 또는 포기를 선택할 수 있습니다.

      • 계속을 선택하면 Auto Scaling 그룹이 다른 라이프사이클 후크를 진행한 다음 인스턴스를 서비스할 수 있습니다.

      • 포기를 선택하면 Auto Scaling 그룹이 잔여 작업을 중단하고 인스턴스를 즉각 해지합니다.

    5. (옵션) 알림 메타데이터에 Amazon EC2 Auto Scaling이 알림 대상에 메시지를 전송할 때 포함할 다른 정보를 지정합니다.

  5. 생성을 선택하세요.

스케일 인을 위한 라이프사이클 후크 추가
  1. 스케일 아웃을 위한 라이프사이클 후크를 생성한 후 중단한 부분부터 계속하려면 라이프사이클 후크 만들기를 선택합니다.

  2. 스케일 인(인스턴스가 해지되거나 웜 풀로 돌아가는 것)을 위한 라이프사이클 후크를 정의하려면 다음과 같이 하세요.

    1. Lifecycle hook name(라이프사이클 후크 이름)에 라이프사이클 후크의 이름을 지정합니다.

    2. Lifecycle transition(라이프사이클 전환)에서 Instance terminate(인스턴스 해지)를 선택합니다.

    3. 하트비트 제한 시간에서는 스케일 아웃할 때 훅이 시간 초과되기 전에 인스턴스가 대기 상태로 유지되는 시간을 지정하십시오. 최종 작업 (예: EC2 로그 가져오기) 30 을 수행하는 데 필요한 시간에 따라 120 몇 초에서 몇 초까지의 짧은 제한 시간을 사용하는 것이 좋습니다. CloudWatch

    4. Default result(기본 결과)에 제한 시간이 경과하거나 예기치 못한 오류가 발생할 때 Auto Scaling 그룹에서 수행하는 작업을 지정합니다. ABANDON(중단) 및 CONTINUE(계속) 둘 다 인스턴스를 해지할 수 있습니다.

      • CONTINUE(계속)을 선택하면 해지 전에 Auto Scaling 그룹이 남아 있는 모든 작업(예: 다른 라이프사이클 후크)을 진행할 수 있습니다.

      • 포기를 선택하면 Auto Scaling 그룹이 인스턴스를 즉각 해지합니다.

    5. (옵션) 알림 메타데이터에 Amazon EC2 Auto Scaling이 알림 대상에 메시지를 전송할 때 포함할 추가 정보를 지정합니다.

  3. 생성을 선택하세요.

라이프사이클 후크 추가(AWS CLI)

put-lifecycle-hook 명령을 사용하여 수명 주기 후크를 생성하고 업데이트합니다.

스케일 아웃 시 작업을 수행하려면 다음 명령을 사용합니다.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING

축소 시 작업을 수행하려면 대신 다음 명령을 사용합니다.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING

Amazon SNS 또는 Amazon SQS를 사용하여 알림을 수신하려면 --notification-target-arn--role-arn 옵션을 추가합니다.

다음 예에서는 my-sns-topic이라는 SNS 주제를 알림 대상으로 지정하는 라이프사이클 후크를 생성합니다.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \ --notification-target-arn arn:aws:sns:region:123456789012:my-sns-topic \ --role-arn arn:aws:iam::123456789012:role/my-notification-role

이 주제는 다음 키-값 쌍에 해당하는 테스트 알림을 보냅니다.

"Event": "autoscaling:TEST_NOTIFICATION"

기본적으로 이 put-lifecycle-hook명령은 하트비트 제한 시간이 3600 초 (1시간) 인 라이프사이클 후크를 생성합니다.

기존 라이프사이클 후크에 대한 하트비트 제한 시간을 변경하려면 다음 예에 따라 --heartbeat-timeout 옵션을 추가합니다.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg --heartbeat-timeout 120

인스턴스가 이미 대기 상태인 경우 record-lifecycle-action-heartbeatCLI 명령을 사용하여 하트비트를 기록하여 수명 주기 후크가 시간 초과되는 것을 방지할 수 있습니다. 그러면 라이프사이클 후크를 만들 때 지정한 제한 시간 값을 기준으로 제한 시간이 늘어납니다. 제한 시간이 끝나기 전에 작업을 완료하면 complete-lifecycle-actionCLI 명령을 전송하여 인스턴스가 다음 상태로 진행되도록 할 수 있습니다. 자세한 정보와 지침은 라이프사이클 작업 완료 섹션을 참조하세요.