본문 바로가기
[Cloud & Infrastructure]/[AWS]

[AWS] EC2 Auto Scaling 그룹에 속한 인스턴스를 Reboot(재부팅) 또는 중지 하는 방법

by 코드몽규 2024. 3. 3.
반응형

 



EC2 인스턴스를 사용하다 보면 인스턴스의 상태가 "인스턴스 상태 확인 실패" 로 전환 될 때가 있다.   

 

주로 인스턴스의 OS 내에서 발생한 장애로 "인스턴스 상태 확인 실패"가 발생하게 되는데 원인을 알기 위해서는 인스턴스의 상태를 재부팅(Reboot)을 시도하여 복구하거나 또는 복구 인스턴스를 통해 문제가 발생한 인스턴스의 루트 볼륨을 장착하여 시스템 로그를 확인, 분석 하하여 진행하는 방법이 있다.


이렇듯 인스턴스를 사용하다 보면 어떠한 이유로 인스턴스를 재부팅 또는 중지해야 하는 상황이 존재할 수 있는데,
인스턴스가 Auto Scaling Group(ASG)에 존재하는 경우에 위의 작업(재부팅, 루트 볼륨 탈착을 위한 인스턴스 중지)을 진행할 시 진행 과정 동안 상태 확인에 실패하여 EC2 Auto Scaling이 인스턴스를 비정상으로 감지하여 종료하게 된다.

 

때문에 이러한 인스턴스가 ASG에 위치한 경우 아래의 3가지 방법을 이용하여 ASG에 속한 인스턴스를 중지 또는 재부팅 할 수 있게 된다. 

 

1. 인스턴스를 대기(Standby) 상태로 전환
2. 인스턴스를 그룹에서 분리
3. 상태 검사 프로세스 일시 중지


EC2 Auto Scaling 그룹에 속한 인스턴스 재부팅 또는 중지시 발생하는 일

 

Auto Scaling Group에 속한 인스턴스를 재부팅 또는 중지 시 아래와 같은 경고 문구가 표시된다. 

 

경고 내용은 만약 해당 인스턴스를 재부팅 또는 중지할시 EC2 Auto Scaling 에서는 해당 인스턴스에 대한 새로운 대체 인스턴스를 생성할할 수 있음을 알려주고 있으며, 이러한 작업을 원치 않을 경우 인스턴스를 ASG에서 분리하라고 안내하고 있다.

 

 


EC2 Auto Scaling 그룹으로 부터 인스턴스 분리 하기 

 

 

ASG(오토 스케일링 그룹)으로 부터 인스턴스를 분리하는 방법은 아래의 3가지가 존재한다. 

 

  • 인스턴스를 대기(Standby) 상태로 전환
  • 인스턴스를 그룹에서 분리
  • 상태 검사 프로세스 일시 중지 (* 해당 방법을 사용하면 ASG에 속한 모든 인스턴스에 영향이 갈 수 있다.)

 

이 중 2 가지 방법을 통해 실제 인스턴스를 ASG 에서 분리하는 방법을 아래에 자세히 정리하였다.

[ ASG에 속한 인스턴스를 대기(Standby) 상태로 전환 ] 

대기 상태의 인스턴스에 대해서는 ASG는 상태 확인(Health Check)를 진행하지 않는다.

 

- 방법 - 

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [Auto Scaling]에서 [Auto Scaling 그룹]을 선택합니다.
  3. 재부팅하려는 인스턴스 그룹을 선택합니다. 인스턴스(Instances) 보기에서 재부팅할 인스턴스를 선택합니다.
  4. **작업(Actions)**을 선택한 후 **대기로 설정(Set to Standby)**을 선택합니다. 대기로 설정 페이지에서 대기로 설정을 선택합니다.
  5. 탐색 창의 **인스턴스(Instances)**에서 **인스턴스(Instances)**를 선택합니다.
    참고: 필요한 경우 새 인스턴스를 Auto Scaling 그룹에 추가하여 로드 균형 유지를 선택하여 그룹 용량을 유지할 수 있습니다.
  6. 대기(Standby) 상태로 설정한 인스턴스를 선택합니다. 작업을 선택하고 인스턴스 상태를 선택한 후 재부팅을 선택합니다.
  7. 인스턴스를 다시 선택한 후 상태 검사 보기를 선택합니다. 시스템 상태 검사인스턴스 상태 검사를 통과하는지 확인합니다.
  8. 탐색 창의 [Auto Scaling]에서 [Auto Scaling 그룹]을 선택합니다.
  9. [Standby] 상태로 설정한 인스턴스의 그룹을 선택합니다.
  10. 재부팅한 인스턴스를 선택합니다. 작업을 선택한 후 InService로 설정을 선택합니다. InService로 설정(Set to InService) 페이지에서 **InService로 설정(Set to InService)**을 선택합니다.

 


- Test를 위한 ASG 생성 -

=> Desired Capacity(원하는 용량) 를 "2"로 설정하여 ASG가 "2"의 인스턴스를 수를 항상 유지하도록 설정한다.



 

- ASG에 속한 인스턴스 ASG1, ASG2 - 

=> 설정한 Desired Capacity(원하는 용량) 대로 인스턴스 2대가 생성된것을 확인할 수 있다.

 

 

- ASG1 인스턴스를 대기 상태로 전환하지 않고 중지 - 

 

 

- ASG1 인스턴스는 삭제되고 새로운 인스턴스가 생성된 것을 확인 -

EC2 관리 콘솔
ASG Activity History

 

- ASG2 인스턴스를 Standby (대기상태) 로 설정 후 중지(Stop) -

(* ASG에 속한 인스턴스를 대기 상태로 전환하면 ASG는 해당 인스턴스에 대한 상태확인 검사를 진행하지 못하며, 기존 트래픽의 부하를 다만 해당 과정에서 "Replace Instance" 옵션을 활성화 하였을 때 진행된다. )

(* 만약 대기 상태로 중지된 인스턴스를 EC2 관리 콘솔에서 "종료" 하면 EC2 Auto Scaling을 이를 인식하지 못한다. 참고 문서 )

 

 

대기 상태로 전환하지 않아 "종료" 된 ASG1 인스턴스
대기 상태로 전환하여 중지 되어도 "종료"되지 않은 ASG2 인스턴스
대기 상태의 ASG2 인스턴스

 


[ 인스턴스를 ASG 에서 분리 ] 

 인스턴스를 수동으로 ASG 으로 부터 분리하여 작업한다.

 

- 방법 -

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [Auto Scaling]에서 [Auto Scaling 그룹]을 선택합니다.
  3. 재부팅하려는 인스턴스 그룹을 선택합니다. 인스턴스 보기에서 인스턴스를 선택합니다.
  4. 작업을 선택하고 분리를 선택합니다.
  5. 인스턴스 분리 페이지에서 인스턴스 분리를 선택합니다.
    참고: 필요한 경우 새 인스턴스를 Auto Scaling 그룹에 추가하여 로드 균형 유지를 선택하여 분리한 인스턴스를 교체할 수 있습니다.
  6. 탐색 창의 **인스턴스(Instances)**에서 **인스턴스(Instances)**를 선택합니다.
  7. 분리한 인스턴스를 선택합니다. 작업을 선택하고 인스턴스 상태를 선택한 후 재부팅을 선택합니다.
  8. 인스턴스를 선택한 후 상태 검사 보기를 선택합니다. 시스템 상태 검사인스턴스 상태 검사를 통과하는지 확인합니다.
  9. 인스턴스를 선택하고 작업을 선택한 후 인스턴스 설정을 선택한 후 Auto Scaling 그룹에 연결을 선택합니다.
  10. Auto Scaling 그룹에 연결인스턴스에 연결에서 기존 Auto Scaling 그룹을 선택합니다. 인스턴스를 분리한 그룹을 선택하거나 검색합니다. 그런 다음 **연결(Attach)**을 선택합니다.

 

- ASG 으로 부터 ASG2 인스턴스를 분리 -

(* ASG에 속한 인스턴스를 분리 하면 ASG은 설정된 목표 용량을 유지하기 위해 새로운 인스턴스를 생성한다. 다만 해당 과정에서 "Replace Instance" 옵션을 활성화 하였을 때 진행되기 때문에 이를 원치 않을 때는 해당 옵션을 체크 해제 하여 진행한다. )

 


 

해당 글을 통해 ASG 에 속한 인스턴스를 개별적으로 분리 또는 대기 상태로 전환하여 관리하는 방법을 확인 해 보았다.

 

 

반응형

댓글