AWS CodeDeploy를 사용할 때 EC2 Auto Scaling 수명 주기 작업이 완료되었는지 확인하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling 수명 주기 후크와 함께 AWS CodeDeploy를 사용하고 있습니다. 하지만 수명 주기 작업이 완료되지 않고 EC2 인스턴스가 시작되지 않습니다.

간략한 설명

CodeDeploy는 Amazon EC2 Auto Scaling 수명 주기 후크를 사용하여 배포를 수행합니다. 수명 주기 후크는 다음과 같은 이유로 EC2 인스턴스 수명 주기 상태의 순서에 영향을 미칠 수 있습니다.

  • 관련 수명 주기 작업이 실패하는 배포 실패했습니다.
  • 단일 EC2 오토 스케일링 그룹에 연결된 여러 배포 그룹이 CodeDeploy 제한을 초과하여 시간 초과를 유발합니다.
  • 시간 초과를 유발하는 삭제된 애플리케이션과 연결된 남은 수명 주기 후크.

해결 방법

오토 스케일링 그룹의 확장 활동 기록을 검토합니다.

  • EC2 콘솔 탐색 창에서 오토 스케일링 아래의 오토 스케일링 그룹을 선택합니다. 콘텐츠 창에서 오토 스케일링 그룹을 선택합니다. 그런 다음 활동 기록 보기를 선택합니다.
  • AWS Command Line Interface(AWS CLI)에서 describe-scaling-activities 명령을 사용합니다.

그런 다음 기록에서 다음 문제를 확인합니다.

배포 실패

다음 오류는 일반적으로 CodeDeploy를 사용한 배포에 실패했음을 나타냅니다.

Description: Launching a new EC2 instance: i-f362a82e. Status Reason:
Instance failed to complete user's Lifecycle Action: Lifecycle Action
with token 0fc62a4b-153b-4dba-9bf4-9f233e72a697 was abandoned: Lifecycle
 Action Completed with ABANDON Result Cause: At 2016-07-22T16:16:56Z
an instance was started in response to a difference between desired and
actual capacity, increasing the capacity from 2 to 3.

배포 세부 정보를 확인하여 배포가 실패한 이유를 알아보세요. 자세한 내용은 CodeDeploy 문제 해결을 참조하세요.

단일 EC2 오토 스케일링 그룹과 연결된 여러 배포 그룹

다음 오류는 일반적으로 여러 배포 그룹이 단일 EC2 오토 스케일링 그룹에 연결된 경우 발생합니다.

Description: Launching a new EC2 instance: i-649f40a2. Status Reason:
Instance failed to complete user's Lifecycle Action: Lifecycle Action
with token 95c60857-3c0a-4a67-8518-6dc18797e421 was abandoned: Heartbeat
 Timeout Cause: At 2016-07-23T05:08:35Z an instance was started
in response to a difference between desired and actual capacity,
increasing the capacity from 1 to 2.

이 오류는 CodeDeploy의 5분 제한으로 인한 시간 초과 오류를 나타냅니다. 이 시간 초과 오류는 여러 배포가 동시에 CodeDeploy 에이전트에 명령을 보낼 때 발생할 수 있습니다.

배포를 단일 배포 그룹으로 통합합니다. 불필요한 수명 주기 후크를 방지하려면 불필요한 배포 그룹을 삭제해야 합니다. 자세한 내용은 CodeDeploy에서 배포 그룹으로 작업하기를 참조하세요.

삭제된 애플리케이션에서 남은 수명 주기 후크

애플리케이션을 삭제한 배포 그룹과 연결된 활성 수명 주기 후크가 있는지 확인합니다. 이 문제는 배포 그룹을 삭제하기 전에 애플리케이션을 삭제할 때 발생할 수 있습니다.

오토 스케일링 그룹의 EC2 인스턴스를 사용하여 수명 주기 후크을 종료하면 시작하지 못하고 "Heartbeat Timeout" 오류가 발생합니다. 수명 주기 후크를 종료할 때 결과를 이해하려면 CompleteLifecycleAction에서 '--lifecycle-action-result" 파라미터를 확인하세요. API 호출에서 파라미터를 확인합니다.


관련 정보

자동 확장과 CodeDeploy 통합

AWS 공식
AWS 공식업데이트됨 2년 전