Auto Scaling 그룹에서 일시적으로 인스턴스 제거 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Auto Scaling 그룹에서 일시적으로 인스턴스 제거

InService 상태의 인스턴스를 Standby 상태로 설정하고, 인스턴스를 업데이트하거나 문제 해결한 다음, 해당 인스턴스를 서비스 상태로 되돌릴 수 있습니다. 대기 상태의 인스턴스는 Auto Scaling 그룹에 여전히 속하나, 로드 밸런서 트래픽을 처리하지는 못합니다.

이 기능을 사용하면 건전성 체크의 일부로 또는 축소 이벤트 중에 인스턴스를 해지하는 Amazon EC2 Auto Scaling에 대한 걱정 없이 인스턴스를 중지 및 시작하거나 재부팅할 수 있습니다.

예컨대, 출범 템플릿 또는 출범 구성을 변경하여 Auto Scaling 그룹의 Amazon Machine Image(AMI)를 언제든 변경할 수 있습니다. Auto Scaling 그룹이 시작하는 모든 후속 인스턴스가 이 AMI를 사용합니다. 그러나 Auto Scaling 그룹은 현재 서비스 중인 인스턴스를 업데이트하지 않습니다. 이러한 인스턴스를 해지하고 Amazon EC2 Auto Scaling이 인스턴스를 교체하도록 하거나 인스턴스 새로 고침 기능을 사용하여 인스턴스를 해지하고 교체할 수 있습니다. 또는 인스턴스 상태를 대기로 설정하고 소프트웨어를 업데이트한 후 인스턴스를 다시 서비스 상태로 설정할 수 있습니다.

Auto Scaling 그룹에서 인스턴스를 분리하는 것은 인스턴스를 대기 상태로 전환하는 것과 유사합니다. 인스턴스를 다른 그룹에 연결하거나 독립형 EC2 인스턴스처럼 인스턴스를 관리하고 종료하려는 경우 인스턴스를 분리하는 것이 유용할 수 있습니다. 자세한 내용은 인스턴스를 분리하거나 연결합니다. 단원을 참조하십시오.

대기 상태를 작동하는 방법

대기 상태는 Auto Scaling 그룹에서 인스턴스를 일시적으로 제거할 수 있도록 다음과 같이 작동합니다.

  1. 인스턴스를 대기 상태에 놓습니다. 인스턴스는 대기 상태를 끝낼 때까지 이 상태로 유지됩니다.

  2. Auto Scaling 그룹에 연결된 로드 밸런서 대상 그룹 또는 Classic Load Balancer가 있는 경우, 로드 밸런서에서 해당 인스턴스가 등록 취소됩니다. 로드 밸런서에 대해 Connection Draining이 활성화된 경우, Elastic Load Balancing은 등록 취소 프로세스를 완료하기 전에 300초 동안 대기하는데, 이는 진행 중인 요청을 완료하는 데 도움이 될 수 있습니다.

  3. 인스턴스를 업데이트하거나 문제를 해결할 수 있습니다.

  4. 대기 상태를 끝내 인스턴스를 서비스 상태로 되돌립니다.

  5. Auto Scaling 그룹에 연결된 로드 밸런서 대상 그룹 또는 Classic Load Balancer가 있는 경우, 로드 밸런서에 해당 인스턴스가 등록됩니다.

Auto Scaling 그룹에서 인스턴스의 라이프사이클에 대한 자세한 설명은 Amazon EC2 Auto Scaling 인스턴스 라이프사이클 섹션을 참조하세요.

고려 사항

인스턴스를 대기 상태로 전환하거나 대기 상태에서 벗어날 때 고려할 사항은 다음과 같습니다.

  • 인스턴스를 대기 상태로 설정할 때 이 작업을 통해 원하는 용량을 줄이거나 동일한 값을 유지할 수 있습니다.

    • Auto Scaling 그룹의 원하는 용량을 줄이지 않기로 선택하면 Amazon EC2 Auto Scaling이 인스턴스를 출범하여 대기 중인 인스턴스를 교체합니다. 하나 이상의 인스턴스가 대기 상태에 있는 동안 애플리케이션의 용량을 유지하기 위해서입니다.

    • Auto Scaling 그룹의 원하는 용량을 점감하도록 선택하면 대기 중인 인스턴스를 교체할 인스턴스가 출범되지 않습니다.

  • 인스턴스를 다시 서비스하면 Auto Scaling 그룹에 있는 인스턴스 수를 반영하여 원하는 용량이 증가합니다.

  • 증가(및 감소)를 수행하려면 새로 원하는 용량이 최소 그룹 크기와 최대 그룹 크기 사이여야 합니다. 그렇지 않은 경우, 작업이 실패합니다.

  • 인스턴스를 대기 상태로 설정하거나 대기 상태를 해지하여 인스턴스를 서비스로 복귀한 후 언제든지 Auto Scaling 그룹이 가용 영역 간에 균형이 맞지 않는 것으로 확인되면, AZRebalance 프로세스를 일시 중단하지 않는 한 Amazon EC2 Auto Scaling은 가용 영역의 균형을 재조정하여 이를 보완합니다. 자세한 설명은 Auto Scaling 그룹에 대한 프로세스 일시 중단 및 재개 섹션을 참조하세요.

  • 대기 상태의 인스턴스에 대해 요금이 청구됩니다.

대기 상태의 인스턴스 상태

Amazon EC2 Auto Scaling은 대기 상태의 인스턴스에 대한 건전성 체크를 수행하지 않습니다. 인스턴스가 대기 상태에 있는 동안 이 인스턴스의 상태는 대기 상태로 설정되기 전의 상태를 반영합니다. 스턴스를 서비스 상태로 설정할 때까지 Amazon EC2 Auto Scaling은 해당 인스턴스에 대한 건전성 체크를 수행하지 않습니다.

예컨대, 정상인 인스턴스를 대기 상태로 설정한 후 해지하면 Amazon EC2 Auto Scaling은 해당 인스턴스를 정상으로 계속 보고합니다. 대기 상태에 있던 해지된 인스턴스를 다시 서비스 상태로 전환하려면, Amazon EC2 Auto Scaling는 인스턴스에 대한 건전성 체크를 수행하고, 인스턴스가 해지 중이거나 건전하지 않은 것으로 판단되면 교체 인스턴스를 출범합니다. 자세한 설명은 Auto Scaling 그룹의 인스턴스에 대한 상태 확인 섹션을 참조하세요.

인스턴스를 대기 모드로 설정하여 인스턴스를 일시적으로 제거합니다.

다음 절차 중 하나를 사용하여 인스턴스를 대기 상태로 전환하여 인스턴스를 일시적으로 서비스를 중단할 수 있습니다.

Console
인스턴스를 일시적으로 제거하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling Groups(Auto Scaling 그룹)를 선택합니다.

  2. Auto Scaling 그룹 옆의 확인란을 선택합니다.

    페이지 하단에 분할 창이 열립니다.

  3. 인스턴스 관리(Instance management) 탭의 인스턴스(Instances)에서 인스턴스를 선택합니다.

  4. 작업(Actions), 대기로 설정(Set to Standby)을 선택합니다.

  5. 교체 인스턴스를 출범시키려면 대기로 설정 대화상자에서 인스턴스 교체 체크박스를 선택된 대로 유지하십시오. 원하는 용량을 줄이려면 확인란을 선택 취소합니다.

  6. 확인 메시지가 표시되면 standby를 입력하여 지정된 인스턴스를 Standby 상태로 설정하는 것을 확인한 다음 대기 상태로 설정을 선택합니다.

  7. 필요에 따라 인스턴스를 업데이트하거나 문제 해결할 수 있습니다. 모두 마쳤으면 다음 단계를 계속하여 인스턴스를 서비스 상태로 되돌립니다.

  8. 인스턴스를 선택하고 [Actions], [Set to] 를 선택합니다 InService. [설정 대상 InService] 대화 상자에서 [설정 대상] 을 선택합니다 InService.

AWS CLI

Auto Scaling 그룹에서 인스턴스를 일시적으로 제거하려면 다음 예제 명령을 사용하십시오. user input placeholder를 사용자의 정보로 바꿉니다.

인스턴스를 일시적으로 제거하려면
  1. 다음 describe-auto-scaling-instances 명령을 사용하여 업데이트할 인스턴스를 식별합니다.

    aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'

    다음 예제는 이 명령을 실행할 때 생성되는 출력을 보여줍니다.

    그룹에서 제거하려는 인스턴스의 ID를 기록해 둡니다. 다음 단계에서 이 ID가 필요합니다.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceId": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }
  2. enter-standby 명령을 사용하여 인스턴스를 Standby 상태로 이동합니다. --should-decrement-desired-capacity 옵션을 사용하면 원하는 용량을 줄이므로 Auto Scaling 그룹에서는 교체 인스턴스를 출범하지 않습니다.

    aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

    다음은 응답의 예입니다.

    { "Activities": [ { "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StartTime": "2023-12-15T21:31:26.150Z", "StatusCode": "InProgress", "Progress": 50, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  3. (선택 사항) 다음 Standby 명령을 사용하여 인스턴스가 describe-auto-scaling-instances 상태가 되었는지 확인합니다.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    다음은 응답의 예입니다. 인스턴스가 현재 Standby 상태임을 확인할 수 있습니다.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "Standby" }, ... ] }
  4. 필요에 따라 인스턴스를 업데이트하거나 문제 해결할 수 있습니다. 모두 마쳤으면 다음 단계를 계속하여 인스턴스를 서비스 상태로 되돌립니다.

  5. 다음 exit-standby 명령을 사용하여 인스턴스를 다시 서비스 상태로 설정합니다.

    aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

    다음은 응답의 예입니다.

    { "Activities": [ { "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StartTime": "2023-12-15T21:46:14.678Z", "StatusCode": "PreInService", "Progress": 30, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  6. (옵션) 다음 describe-auto-scaling-instances 명령을 사용하여 인스턴스가 다시 서비스 상태가 되었는지 확인합니다.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    다음은 응답의 예입니다. 인스턴스의 상태가 InService입니다.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }