Amazon EC2 Auto Scaling이 인스턴스를 종료한 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 2월 23일

내 Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling 그룹이 인스턴스를 종료했습니다. 그러나 Amazon EC2 콘솔에 종료 이유가 표시되지 않습니다. Amazon EC2 Auto Scaling이 인스턴스를 종료한 이유를 확인하려면 어떻게 해야 합니까?

간략한 설명

Amazon EC2 Auto Scaling은 Amazon EC2 또는 Elastic Load Balancing(ELB) 상태 확인을 사용하여 인스턴스의 상태를 확인합니다. 상태 확인 대체를 포함하여 Auto Scaling 그룹의 모든 조정 작업은 EC2 콘솔의 [활동 기록(Activity History)] 보기에 표시됩니다.

​해결 방법

활동 내역 보기의 인스턴스 설명을 통해 추가 단계를 확인하십시오.

계속하기 전에 인스턴스 종료에 대한 설명 및 원인을 찾으세요.

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [Auto Scaling]에서 [Auto Scaling 그룹(Auto Scaling Groups)]을 선택합니다. 인스턴스의 그룹을 선택합니다.
  3. [활동 기록(Activity History)] 보기를 선택한 후 인스턴스 종료 이벤트를 선택합니다.
  4. 인스턴스 종료 이벤트에 대한 설명원인을 확인합니다.

다음 설명 예제를 참조하여 인스턴스가 종료된 근본적인 이유 중 가능한 이유를 파악합니다.

"인스턴스가 종료 또는 중지되었음을 나타내는 EC2 상태 확인에 대한 응답으로 인스턴스가 서비스에서 제외되었습니다."

Amazon CloudWatch 지표를 사용하여 인스턴스 또는 시스템 점검 실패를 찾습니다.

  1. Amazon CloudWatch 콘솔을 엽니다.
  2. 탐색 창에서 [지표(Metrics)]를 선택한 다음 [모든 지표(All Metrics)] 보기를 선택합니다.
  3. 지표 창에서 [EC2]를 선택하고 [인스턴스별 지표(Per-Instance Metrics)]를 선택합니다.
  4. [instance-id]를 입력한 다음 [StatusCheckFailed_Instance], [StatusCheckFailed_System] 또는 [StatusCheckFailed]를 선택하여 지표 그래프를 봅니다.

Amazon EC2 Auto Scaling은 중지된 인스턴스와 재부팅된 인스턴스를 종료합니다. AWS CloudTrail 기록을 검토하여 사용자가 수동으로 인스턴스를 중지하거나 재부팅했는지 확인합니다.

  1. AWS CloudTrail 콘솔을 엽니다.
  2. 탐색 창에서 [이벤트 기록(Event history)]을 선택합니다.
  3. [TerminateInstances], [StopInstances] 또는 [RebootInstances] API 호출에 대한 기록을 확인합니다.

Amazon EC2 Auto Scaling은 다음 중 하나가 발생하면 스팟 인스턴스를 종료합니다.

  • 용량을 더 이상 사용할 수 없음
  • 스팟 가격이 인스턴스에 대해 지정한 최고 가격을 초과합니다.

[활동 기록(Activity History)]에는 상태 확인으로 인해 인스턴스가 서비스에서 제거된 것으로 표시될 수 있습니다. 종료 이유를 확인하려면 스팟 요청 상태를 확인합니다.

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [인스턴스(Instances)]에서 [스팟 요청(Spot Requests)]을 선택합니다.
  3. [스팟 요청(Spot request)]을 선택하고 [설명(Description)] 보기를 선택한 다음 [태(Status)]를 기록합니다.

Auto Scaling 그룹의 상태 확인 유형이 ELB로 설정된 경우 Amazon EC2 Auto Scaling은 ELB 및 EC2 상태 확인을 모두 수행합니다. 그런 다음 서비스가 상태 확인에 실패한 인스턴스를 종료합니다. 인스턴스가 종료된 이유를 이해하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔을 엽니다.
  2. [Auto Scaling] 아래의 탐색 창에서 [Auto Scaling 그룹(Auto Scaling Groups)]을 선택한 다음, 인스턴스의 그룹을 선택합니다.
  3. [세부 정보(Details)] 보기를 선택한 다음, [상태 확인 유형(Health Check Type)]을 기록해 둡니다.

"ELB 시스템의 상태 확인 실패에 대한 응답으로 인스턴스가 서비스에서 제외되었습니다."

Auto Scaling 그룹에 다수의 로드 밸런서가 연결된 경우 모든 로드 밸런서가 인스턴스 상태를 정상으로 보고해야 Amazon EC2 Auto Scaling이 해당 인스턴스를 정상인 것으로 간주합니다.

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [로드 밸런싱(Load Balancing)]에서 [로드 밸런서(Load Balancers)]를 선택한 다음 [모니터링(Monitoring)]을 선택합니다.
  3. [Health Hosts Count(상태 호스트 카운트)] 지표 그래프를 선택하여 인스턴스가 상태 확인에 실패하는지 확인합니다.
  4. 탐색 창의 [Auto Scaling]에서 [Auto Scaling 그룹(Auto Scaling Groups)]을 선택합니다.
  5. 인스턴스의 그룹을 선택하고 [세부 정보(Details)] 보기를 선택합니다.
  6. [로드 밸런서(Load Balancers)] 또는 [대상 그룹(Target Groups)]에서 둘 이상의 로드 밸런서가 연결되어 있는지 확인합니다.

CloudTrail 기록을 검토하여 일시 중지된 프로세스로 인해 프로세스가 다시 시작되기 전까지 이상 있는 인스턴스의 종료가 지연되었는지 확인합니다.

  1. AWS CloudTrail 콘솔을 엽니다.
  2. 탐색 창에서 [이벤트 기록(Event history)]을 선택합니다.
  3. [SuspendProcesses] 및 [ResumeProcesses] API 호출 기록을 확인합니다.

"사용자 상태 확인에 대한 응답으로 인스턴스가 서비스에서 제외되었습니다."

Amazon EC2 Auto Scaling에서 사용자 지정 상태 확인을 정의할 수 있습니다. 사용자 지정 상태 확인을 통해 인스턴스에 이상이 있는 것으로 확인된 경우 이러한 확인으로 인해 SetInstanceHealth가 수동으로 트리거되고 인스턴스 상태가 [비정상(Unhealthy)]으로 설정됩니다. Amazon EC2 Auto Scaling은 이상 있는 인스턴스를 다음 실행 시 종료합니다.

"그룹의 영역 밸런싱을 지원하기 위해 인스턴스가 시작되었습니다." 또는 "us-east-1a 영역의 인스턴스를 다른 영역과 밸런싱하기 위해 인스턴스가 시작되었습니다."

기본적으로 Amazon EC2 Auto Scaling은 모든 가용 영역에서 인스턴스의 균형을 조정합니다. 사용자가 Auto Scaling 그룹에 새 가용 영역을 추가하면 Amazon EC2 Auto Scaling이 해당 영역에서 새 인스턴스를 시작하고 재밸런싱으로 인해 다른 영역의 인스턴스가 종료될 수 있습니다.

"2018-02-12T13:48:46Z에서 모니터 경보 XXX-High-CPU-Utilization in state ALARM이 원하는 용량을 2에서 1로 변경하며 정책 AAA-scaledown을 트리거 했습니다"

Amazon EC2 Auto Scaling은 구성된 CloudWatch 경보에 따라 그룹의 인스턴스를 종료할 수 있습니다. 그룹 정책 및 CloudWatch 경보 기록을 확인합니다.

Auto Scaling 그룹 정책을 확인하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [Auto Scaling]에서 [Auto Scaling 그룹(Auto Scaling Groups)]을 선택합니다.
  3. 인스턴스의 그룹을 선택합니다.
  4. 조정 정책 창을 선택하여 정책을 보고 편집합니다.

CloudWatch 경보 기록을 보려면 다음을 수행합니다.

  1. Amazon CloudWatch 콘솔을 엽니다.
  2. 탐색 창에서 [경보(Alarms)]를 선택합니다.
  3. 경보를 선택하고 [기록(History)] 보기를 선택합니다.
  4. 경보에 대한 상태 변경 또는 경보 구성에 대한 수정 이력을 확인합니다.

"2018-02-12T13:49:12Z에서 AutoScalingGroup 제약 조건을 최소: 1, 최대: 9, 원하는 용량: 1로 업데이트하여 원하는 용량을 2에서 1로 변경하는 예약된 작업입니다. [...]"

사용자는 Auto Scaling 그룹의 최소, 최대 또는 원하는 용량을 변경하는 예약 작업을 구성할 수 있습니다. 예약된 작업에 따라 원하는 용량이 감소하면 Amazon EC2 Auto Scaling이 새 원하는 용량에 맞추기 위해 하나 이상의 인스턴스를 종료합니다.

"AutoScalingGroup 제약 조건을 최소: 0, 최대: 2, 원하는 용량: 1로 업데이트하여 원하는 용량을 2에서 1로 변경하는 사용자 요청입니다"

사용자가 Auto Scaling 그룹의 제약 조건을 수동으로 변경하는 경우(예: 원하는 용량 감소), Amazon EC2 Auto Scaling은 새 설정에 맞게 인스턴스를 종료할 수 있습니다.