기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 그룹에서 인스턴스 분리 또는 연결 단원을 참조하십시오.
대기 상태를 작동하는 방법
대기 상태는 Auto Scaling 그룹에서 인스턴스를 일시적으로 제거할 수 있도록 다음과 같이 작동합니다.
-
인스턴스를 대기 상태에 놓습니다. 인스턴스는 대기 상태를 끝낼 때까지 이 상태로 유지됩니다.
-
Auto Scaling 그룹에 연결된 로드 밸런서 대상 그룹 또는 Classic Load Balancer가 있는 경우, 로드 밸런서에서 해당 인스턴스가 등록 취소됩니다. 로드 밸런서에 대해 Connection Draining이 활성화된 경우, Elastic Load Balancing은 등록 취소 프로세스를 완료하기 전에 300초 동안 대기하는데, 이는 진행 중인 요청을 완료하는 데 도움이 될 수 있습니다.
-
인스턴스를 업데이트하거나 문제를 해결할 수 있습니다.
-
대기 상태를 끝내 인스턴스를 서비스 상태로 되돌립니다.
-
Auto Scaling 그룹에 연결된 로드 밸런서 대상 그룹 또는 Classic Load Balancer가 있는 경우, 로드 밸런서에 해당 인스턴스가 등록됩니다.
Auto Scaling 그룹에서 인스턴스의 수명 주기에 대한 자세한 설명은 Amazon EC2 Auto Scaling 인스턴스 수명 주기 섹션을 참조하세요.
고려 사항
인스턴스를 대기 상태로 전환하거나 대기 상태에서 벗어날 때 고려할 사항은 다음과 같습니다.
-
인스턴스를 대기 상태로 설정할 때 이 작업을 통해 원하는 용량을 줄이거나 동일한 값을 유지할 수 있습니다.
-
Auto Scaling 그룹의 원하는 용량을 줄이지 않도록 선택하면 Amazon EC2 Auto Scaling이 인스턴스를 시작하여 대기 중인 인스턴스를 대체합니다. 하나 이상의 인스턴스가 대기 상태에 있는 동안 애플리케이션의 용량을 유지하기 위해서입니다.
-
Auto Scaling 그룹의 원하는 용량을 점감하도록 선택하면 대기 중인 인스턴스를 교체할 인스턴스가 시작되지 않습니다.
-
인스턴스를 다시 서비스하면 Auto Scaling 그룹에 있는 인스턴스 수를 반영하여 원하는 용량이 증가합니다.
-
증가(및 감소)를 수행하려면 새로 원하는 용량이 최소 그룹 크기와 최대 그룹 크기 사이여야 합니다. 그렇지 않은 경우, 작업이 실패합니다.
-
인스턴스를 대기 상태로 전환하거나 대기 상태를 종료하여 인스턴스를 서비스로 반환한 후 언제든지 Auto Scaling 그룹이 가용 영역 간에 균형을 이루지 못하는 것으로 확인되면 Amazon EC2 Auto Scaling은 AZRebalance
프로세스를 일시 중지하지 않는 한 가용 영역의 균형을 재조정하여 보상합니다. 자세한 내용은 Amazon EC2 Auto Scaling 프로세스 일시 중지 및 재개 단원을 참조하십시오.
-
대기 상태의 인스턴스에 대해 요금이 청구됩니다.
대기 상태의 인스턴스 상태
Amazon EC2 Auto Scaling은 대기 상태인 인스턴스에 대해 상태 확인을 수행하지 않습니다. 인스턴스가 대기 상태에 있는 동안 이 인스턴스의 상태는 대기 상태로 설정되기 전의 상태를 반영합니다. Amazon EC2 Auto Scaling은 인스턴스를 다시 사용할 때까지 인스턴스에 대한 상태 확인을 수행하지 않습니다.
예를 들어 정상 인스턴스를 대기 상태로 설정한 다음 종료하면 Amazon EC2 Auto Scaling은 인스턴스를 정상으로 계속 보고합니다. 대기 상태였던 종료된 인스턴스를 다시 서비스 상태로 전환하려고 하면 Amazon EC2 Auto Scaling은 인스턴스에 대한 상태 확인을 수행하고, 종료 중이고 비정상인지 확인한 다음 대체 인스턴스를 시작합니다. 자세한 내용은 Auto Scaling 그룹의 인스턴스에 대한 상태 확인 단원을 참조하십시오.
인스턴스를 대기 상태로 설정하여 임시로 제거
다음 절차 중 하나를 사용하여 인스턴스를 대기 상태로 전환함으로써 일시적으로 서비스를 중단합니다.
- Console
-
인스턴스를 일시적으로 제거하려면
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling Groups를 선택합니다.
-
Auto Scaling 그룹 옆의 확인란을 선택합니다.
페이지 하단에 분할 창이 열립니다.
-
인스턴스 관리(Instance management) 탭의 인스턴스(Instances)에서 인스턴스를 선택합니다.
-
작업(Actions), 대기로 설정(Set to Standby)을 선택합니다.
-
교체 인스턴스를 시작시키려면 대기로 설정 대화상자에서 인스턴스 교체 체크박스를 선택된 대로 유지하십시오. 원하는 용량을 줄이려면 확인란을 선택 취소합니다.
-
확인 메시지가 표시되면 standby
를 입력하여 지정된 인스턴스를 Standby
상태로 설정하는 것을 확인한 다음 대기 상태로 설정을 선택합니다.
-
필요에 따라 인스턴스를 업데이트하거나 문제 해결할 수 있습니다. 모두 마쳤으면 다음 단계를 계속하여 인스턴스를 서비스 상태로 되돌립니다.
-
인스턴스를 선택하고 작업, InService로 설정을 선택합니다. InService로 설정 대화 상자에서 InService로 설정을 선택합니다.
- AWS CLI
-
Auto Scaling 그룹에서 인스턴스를 일시적으로 제거하려면 다음 예제 명령을 사용합니다. 각를 바꿉니다.user input
placeholder
자신의 정보로.
인스턴스를 일시적으로 제거하려면
-
다음 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"
},
...
]
}
-
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\"}"
}
]
}
-
(선택 사항) 다음 describe-auto-scaling-instances 명령을 Standby
사용하여 인스턴스가에 있는지 확인합니다.
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"
},
...
]
}
-
필요에 따라 인스턴스를 업데이트하거나 문제 해결할 수 있습니다. 모두 마쳤으면 다음 단계를 계속하여 인스턴스를 서비스 상태로 되돌립니다.
-
다음 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\"}"
}
]
}
-
(옵션) 다음 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"
},
...
]
}