종료한 EC2 인스턴스가 자동으로 다시 시작된 이유는 무엇입니까?

4분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 종료했습니다. 그런 다음, 계정에서 동일한 유형의 다른 인스턴스가 자동으로 시작되었습니다. 이 문제가 발생한 이유는 무엇이며, 새 인스턴스가 다시 시작되지 않도록 하려면 어떻게 해야 하나요?

간략한 설명

일부 서비스에서는 종료된 인스턴스를 대체하기 위해 인스턴스를 자동으로 시작할 수 있습니다. 이렇게 하면 애플리케이션의 내결함성을 향상할 수 있습니다.

예를 들어 다음과 같습니다.

  • 유지 관리 중인 인스턴스를 대체하는 인스턴스를 시작하도록 Amazon EC2 Auto Scaling 그룹을 구성할 수 있습니다.
  • 일반적으로 AWS Elastic Beanstalk 환경에는 Auto Scaling 그룹이 기본적으로 포함됩니다.
  • 유지 관리(Maintain) 요청 유형으로 EC2 플릿을 구성할 수 있습니다. 이 시나리오에서 EC2 플릿은 원하는 용량에 대한 비동기 요청을 하고, 중단된 스팟 인스턴스를 자동으로 보충하여 용량을 유지합니다.
  • 스팟 플릿 요청 유형을 유지 관리(Maintain)로 구성할 수 있습니다. 이 시나리오에서 스팟 플릿은 원하는 용량에 대한 비동기 요청을 하고, 중단된 스팟 인스턴스를 자동으로 보충하여 용량을 유지합니다.

서비스가 대체 인스턴스를 시작하지 못하도록 하려면 다음을 수행합니다.

해결 방법

참고: 다음 작업은 선택한 AWS 리소스를 영구적으로 삭제합니다. 이 해결 방법을 진행하기 전에 EC2 인스턴스의 백업을 생성합니다. 필요한 경우 백업을 통해 이전 작업 상태로 되돌릴 수 있습니다.

Auto Scaling 그룹 삭제

1.    다시 시작된 인스턴스의 인스턴스 ID를 기록합니다.

2.    어떤 Auto Scaling 그룹이 재시작을 촉발하는지 확인합니다.
Amazon EC2 콘솔을 엽니다. Amazon EC2 리소스는 리전별로 다릅니다. 올바른 리전에 있는지 확인합니다. 그렇지 않은 경우 화면 상단의 탐색 모음에서 올바른 리전을 선택합니다.
왼쪽 탐색 창에서 **Auto Scaling 그룹(Auto Scaling groups)**을 선택하고 새 창에서 엽니다.
Auto Scaling 그룹을 선택한 다음, 활동 기록(Activity History) 탭을 선택합니다.
다시 시작된 인스턴스의 인스턴스 ID를 확인합니다.
참고: 인스턴스 ID가 일치하지 않거나 이 리전에 Auto Scaling 그룹이 없는 경우 다음 Elastic Beanstalk 환경 종료 섹션으로 이동합니다.

3.    작업(Actions), **삭제(Delete)**를 선택합니다.

4.    **예, 삭제(Yes, delete)**를 선택합니다.

5.    왼쪽 탐색 창에서 **인스턴스(Instances)**를 선택합니다. 인스턴스가 종료되고 새 인스턴스가 시작되지 않습니다.

Elastic Beanstalk 환경 종료

1.    AWS Elastic Beanstalk 콘솔을 엽니다. Amazon EC2 리소스는 리전별로 다릅니다. 올바른 리전에 있는지 확인합니다. 그렇지 않은 경우 화면 상단의 탐색 모음에서 올바른 리전을 선택합니다.

2.    **환경(Environments)**을 선택한 다음, 목록에서 환경 이름을 선택합니다.

3.    다시 시작된 EC2 인스턴스의 이름이 Elastic Beanstalk 환경과 동일한지 확인합니다.

참고: 인스턴스 ID가 일치하지 않는 경우 다음 EC2 플릿 삭제 섹션으로 건너뜁니다.

4.    **환경 작업(Environment actions)**을 선택한 다음, **환경 종료(Terminate environment)**를 선택합니다.

5.    환경 종료를 확인합니다. Elastic Beanstalk가 환경에서 실행 중인 AWS 리소스를 종료하는 데 몇 분 정도 걸릴 수 있습니다.

EC2 플릿 삭제

EC2 플릿은 API 또는 AWS CLI를 통해서만 사용할 수 있습니다. 이번에는 AWS CLI를 사용하여 플릿을 삭제하겠습니다.

1.    시스템에 AWS CLI가 설치구성되어 있는지 확인합니다.

2.    계속하기 전에 올바른 리전에 있는지 확인하고, 그렇지 않은 경우 다음 명령을 실행하여 올바른 리전을 설정합니다.

aws configure

3.    다음 명령을 실행하여 기존 EC2 플릿이 있는지 확인합니다.

aws ec2 describe-fleets

4.    다시 시작할 EC2 인스턴스 ID를 확인하려면 다음 명령을 실행하여 특정 EC2 플릿에 대한 정보를 확인합니다. 다음 명령에서 fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE을 EC2 플릿 ID로 바꿉니다.

aws ec2 describe-fleet-instances --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE

참고: 인스턴스 ID가 일치하지 않는 경우 다음 스팟 플릿 취소 섹션으로 건너뜁니다.

5.    다음 명령을 실행하여 EC2 플릿을 삭제하고 플릿에서 현재 실행 중인 인스턴스를 종료합니다. 다음 명령에서 fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE을 EC2 플릿 ID로 바꿉니다.

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --terminate-instance

스팟 플릿 취소

1.    Amazon EC2 콘솔을 엽니다. Amazon EC2 리소스는 리전별로 다릅니다. 올바른 리전에 있는지 확인합니다. 그렇지 않은 경우 화면 상단의 탐색 모음에서 올바른 리전을 선택합니다.

2.    **스팟 요청(Spot Requests)**을 선택합니다.

3.    어떤 스팟 플릿 요청으로 인해 재시작이 발생하는지 확인합니다. 스팟 플릿 요청을 선택합니다. 구성 세부 정보를 보려면 **설명(Description)**을 선택합니다.

4.    스팟 플릿에 대한 스팟 인스턴스를 확인하려면 **인스턴스(Instances)**를 선택합니다.

5.    스팟 플릿 요청을 선택합니다.

6.    작업(Actions), **스팟 요청 취소(Cancel spot request)**를 차례로 선택합니다.

7.    **스팟 요청 취소(Cancel spot request)**에서 스팟 플릿을 취소할지 여부를 확인합니다. 현재 인스턴스와 이 스팟 플릿에 의해 다시 시작된 인스턴스를 종료하려면 **인스턴스 종료(Terminate instance)**를 선택해야 합니다. 준비가 되면 **확인(Confirm)**을 선택합니다.

또는

다음 cancel-spot-fleet-requests 명령을 사용하여 지정된 스팟 플릿 요청을 취소하고 인스턴스를 종료할 수 있습니다. 다음 명령에서 sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE을 스팟 플릿 ID로 바꿉니다.

aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \--terminate-instances

관련 정보

Amazon EC2 Auto Scaling이란 무엇인가요?

AWS Elastic Beanstalk란 무엇인가요?

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