Amazon EC2 Auto Scaling이 이상 있는 인스턴스를 종료하지 않는 이유는 무엇입니까?

5분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 오토 스케일링 그룹이 설정되어 있지만, 비정상적인 Amazon EC2 인스턴스를 종료하지 않습니다. 해결하려면 어떻게 해야 하나요?

간략한 설명

Amazon EC2 Auto Scaling은 Amazon EC2 상태 확인 및 Elastic Load Balancing(ELB) 상태 확인을 사용하여 인스턴스의 상태를 자동으로 확인할 수 있습니다. Amazon EC2 Auto Scaling 그룹의 모든 조정 작업은 Amazon EC2 콘솔의 [Activity History]에 기록됩니다. 가끔, [Activity History]를 확인하는 것만으로는 Amazon EC2 Auto Scaling이 이상 있는 인스턴스를 종료하지 않은 이유를 파악하지 못할 수 있습니다.

이상 있는 인스턴스의 상태 및 인스턴스를 종료하는 방법에 대한 추가 세부 정보를 Amazon EC2 콘솔 안에서 찾을 수 있습니다. 다음 설정을 확인하십시오.

  • 상태 확인 유예 기간
  • 일시 중지된 프로세스
  • EC2 콘솔의 인스턴스 상태
  • Auto Scaling 그룹의 인스턴스 상태
  • ELB 상태 확인

​해결 방법

먼저, Amazon EC2 Auto Scaling에서 인스턴스 상태를 확인합니다.

  1. Amazon EC2 콘솔에 로그인합니다. 탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택한 다음 인스턴스의 그룹을 선택합니다.
  2. 인스턴스 보기를 선택하고 인스턴스의 상태를 확인합니다.

상태 확인 유예 기간

상태 확인 유예 기간이 만료되기 전까지 Amazon EC2 Auto Scaling은 EC2 상태 확인 및 ELB 상태 확인을 기준으로 서비스에 들어온 인스턴스를 종료하지 않습니다. 유예 기간을 확인하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔 탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택한 다음 인스턴스의 그룹을 선택합니다.
  2. 세부 정보 보기를 선택하고 상태 확인 유예 기간 길이를 확인합니다.

일시 중지된 프로세스

HealthCheck, ReplaceUnhealthy 또는 Terminate 같은 일시 중지 프로세스는 이상 있는 인스턴스를 탐지, 대체 또는 종료하는 Amazon EC2 Auto Scaling 기능에 영향을 미칩니다.

  1. Amazon EC2 콘솔 탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택한 다음 인스턴스의 그룹을 선택합니다.
  2. 세부 정보 보기를 선택합니다.
  3. [Edit]를 선택하고 [Suspended Processes]에서 [HealthCheck], [ReplaceUnhealthy] 또는 [Terminate] 프로세스(있는 경우)를 제거합니다.
  4. 저장을 선택하여 프로세스를 다시 시작합니다.

Amazon EC2 콘솔의 인스턴스 상태

Amazon EC2 Auto Scaling은 [Impaired] 상태의 인스턴스를 즉시 종료하지 않습니다. 대신 Amazon EC2 Auto Scaling은 인스턴스가 복구될 때까지 잠시 대기합니다. 인스턴스가 손상되었는지 확인하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔 탐색 창의 인스턴스에서 인스턴스를 선택한 다음 인스턴스를 선택합니다.
  2. 상태 확인 보기를 선택하고 인스턴스의 상태가 손상됨인지 확인합니다.

인스턴스가 상태 확인을 위한 데이터를 보고하지 않는 경우 Amazon EC2 Auto Scaling이 인스턴스 종료를 지연하거나 수행하지 않을 수 있습니다. 이 동작은 일반적으로 Amazon CloudWatch의 상태 확인 지표 데이터가 충분하지 않은 경우 발생합니다. 이러한 인스턴스를 수동으로 종료하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔 탐색 창의 인스턴스에서 인스턴스를 선택한 다음 인스턴스를 선택합니다.
  2. 모니터링 보기를 선택하고 인스턴스의 상태를 확인합니다.
  3. 상태가 데이터 부족인 경우 인스턴스를 다시 선택하고 작업 메뉴에서 인스턴스 상태를 선택한 다음 종료를 선택합니다.

Auto Scaling 그룹의 인스턴스 상태

Amazon EC2 Auto Scaling은 [Standby] 상태의 인스턴스에 대해 상태 확인을 수행하지 않습니다. [Standby] 상태의 인스턴스를 [InService] 상태로 설정하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔 탐색 창의 Auto Scaling 그룹에서 인스턴스의 그룹을 선택한 다음 인스턴스 보기를 선택합니다.
  2. 모든 수명 주기 상태 필터 메뉴를 선택한 다음 대기를 선택합니다.
  3. 상태 확인을 다시 시작하려면 인스턴스에 대한 상황별 메뉴(오른쪽 클릭)를 열고 [Set to InService]를 선택하여 [Standby] 상태를 종료합니다.

수명 주기 후크의 완료를 기다리는 경우 Amazon EC2 Auto Scaling은 인스턴스를 종료하지 않고 대기합니다. 수명 주기 상태를 확인하고 수명 주기 후크를 완료하려면 다음을 수행합니다.

  1. Amazon EC2 콘솔 탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택한 다음 인스턴스의 그룹을 선택합니다.
  2. 인스턴스 보기를 선택하고 인스턴스의 수명 주기 상태를 확인합니다.
  3. 상태가 [terminating:wait]인 경우 하트비트 제한 시간을 확인한 다음 [completing-lifecycle-action]을 실행하여 수명 주기 후크를 완료할 수 있습니다.

ELB 연결 드레이닝 기간의 완료를 기다리는 경우 Amazon EC2 Auto Scaling은 인스턴스를 종료하지 않고 대기합니다.

  1. Amazon EC2 콘솔 탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택한 다음 인스턴스의 그룹을 선택합니다.
  2. 인스턴스 보기를 선택하고 인스턴스의 수명 주기종료 중인지 확인합니다.
  3. 활동 기록 보기를 선택합니다.
  4. 필터에서 ELB 연결 드레이닝 대기를 선택하여 그룹이 인스턴스 종료를 기다리고 있는지 확인합니다.

ELB 상태 확인

ELB 설정은 상태 확인 및 인스턴스 대체에 영향을 미칠 수 있습니다. ELB 콘솔에서 인스턴스 상태를 확인합니다.

  1. Amazon EC2 콘솔 탐색 창의 [Load Balancing]에서 [Load Balancers]를 선택한 다음 인스턴스가 등록된 로드 밸런서를 선택합니다.
  2. 인스턴스 보기를 선택하고 인스턴스 상태 및 설명을 확인합니다.

그룹의 상태 확인 구성이 EC2로 설정된 경우 Amazon EC2 Auto Scaling은 인스턴스 상태를 확인할 때 ELB 상태 확인의 결과를 사용하지 않습니다. 따라서 Amazon EC2 Auto Scaling은 ELB 상태 확인에 실패한 인스턴스를 종료하지 않습니다. 인스턴스 상태가 ELB 콘솔에서 [OutofService]로 표시되지만 Amazon EC2 Auto Scaling 콘솔에서 [Healthy]인 경우 상태 확인 유형이 [ELB]로 설정되었는지 확인합니다.

  1. Amazon EC2 콘솔 탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택한 다음 인스턴스의 그룹을 선택합니다.
  2. 세부 정보 보기를 선택하고 상태 확인 유형을 확인합니다.
  3. [Edit]를 선택하고 [ELB]를 [Health Check Type]으로 선택한 다음 [Save]를 선택합니다.

그룹의 상태 확인 유형이 이미 [ELB]이고, ELB 콘솔의 인스턴스 상태가 [OutofService]인 경우 이전에 확인한 상태 설명을 사용하여 추가 단계를 결정합니다.

  • Instance registration is still in progress(인스턴스 등록이 진행 중): 로드 밸런서의 인스턴스 등록이 완료되고 인스턴스가 [InService] 상태로 전환될 때까지 대기합니다.
  • Instance is in the Amazon EC2 Availability Zone for which LoadBalancer is not configured to route traffic to(인스턴스가 로드 밸런서에서 트래픽을 라우팅하도록 구성되지 않은 Amazon EC2 가용 영역에 위치): Auto Scaling 그룹의 서브넷을 편집하거나 로드 밸런서를 편집하여 인스턴스의 서브넷과 동일한 서브넷을 사용하도록 합니다.
  • Instance hasn't passed the configured HealthyThreshold number of health checks consecutively(인스턴스가 구성된 HealthyThreshold 수의 상태 확인을 연속으로 통과하지 못함): ELB의 상태 확인이 완료되고 인스턴스가 InService 상태로 전환될 때까지 대기합니다.

관련 정보

상태 확인에 실패한 인스턴스 문제 해결

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

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