Auto Scaling 그룹에서 인스턴스 분리 또는 연결 - Amazon EC2 Auto Scaling

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

Auto Scaling 그룹에서 인스턴스 분리 또는 연결

Auto Scaling 그룹에서 인스턴스를 분리할 수 있습니다. 인스턴스가 분리되면 해당 인스턴스는 독립적이 되고 자체적으로 관리되거나 원래 속해 있던 그룹과 별도로 다른 Auto Scaling 그룹에 연결할 수 있습니다. 예를 들어 애플리케이션을 이미 실행 중인 기존 인스턴스를 사용하여 테스트를 수행하려는 경우 유용할 수 있습니다.

이 주제에서는 인스턴스를 분리하고 연결하는 방법에 대한 지침을 제공합니다. 인스턴스를 연결할 때 분리된 인스턴스가 아닌 기존 인스턴스를 사용할 수도 있습니다.

인스턴스를 분리했다가 동일한 그룹에 다시 연결하는 대신 대기 절차를 사용하여 그룹에서 인스턴스를 일시적으로 제거하는 것이 좋습니다. 자세한 내용은 Auto Scaling 그룹에서 일시적으로 인스턴스 제거 단원을 참조하십시오.

인스턴스 분리 시 고려 사항

인스턴스를 분리할 때는 다음 사항에 유의하세요.

  • 인스턴스가 InService 상태에 있는 경우에만 인스턴스를 분리할 수 있습니다.

  • 인스턴스를 분리한 후에도 계속 실행되고 요금이 발생합니다. 불필요한 요금을 피하려면 분리된 인스턴스가 더 이상 필요하지 않을 때 다시 연결하거나 종료해야 합니다.

  • 분리하려는 인스턴스 수에 따라 원하는 용량을 줄이도록 선택할 수 있습니다. 용량을 줄이지 않기로 선택하면 Amazon EC2 Auto Scaling은 새 인스턴스를 시작하여 분리된 인스턴스를 대체하여 원하는 용량을 유지합니다.

  • 분리하려는 인스턴스 수가 Auto Scaling 그룹을 최소 용량 미만으로 만드는 경우 최소 용량을 줄여야 합니다.

  • 원하는 용량을 줄이지 않고 동일한 가용 영역에서 여러 인스턴스를 분리하면 AZRebalance 프로세스를 일시 중지하지 않는 한 그룹이 자체적으로 균형을 다시 맞춥니다. 자세한 내용은 Amazon EC2 Auto Scaling 프로세스 일시 중지 및 재개 단원을 참조하십시오.

  • 연결된 로드 밸런서 대상 그룹 또는 Classic Load Balancer가 있는 Auto Scaling 그룹에서 인스턴스를 분리하면 해당 인스턴스가 로드 밸런서에서 등록 취소됩니다. 로드 밸런서에 연결 드레이닝(등록 취소 지연)이 활성화된 경우 Amazon EC2 Auto Scaling은 전송 중 요청이 완료될 때까지 기다립니다.

참고

Standby 상태에 있는 인스턴스를 분리하는 경우, 주의하세요. 인스턴스를 Standby 상태로 전환한 후 인스턴스를 분리하려고 하면 다른 인스턴스가 예기치 않게 해지될 수 있습니다.

인스턴스 연결 시 고려 사항

인스턴스를 연결할 때 다음 사항에 유의하세요.

  • Amazon EC2 Auto Scaling은 연결된 인스턴스를 그룹 자체에서 시작된 인스턴스와 동일하게 처리합니다. 즉, 연결된 인스턴스를 선택한 경우 스케일 인 이벤트 중에 종료할 수 있습니다. 에서 부여한 권한 AWSServiceRoleForAutoScaling 서비스 연결 역할을 사용하면 Amazon EC2 Auto Scaling에서 이렇게 할 수 있습니다.

  • 인스턴스를 연결하면 연결되는 인스턴스 수에 따라 그룹의 원하는 용량을 늘립니다. 새 인스턴스를 추가한 후 원하는 용량이 그룹의 최대 크기를 초과하는 경우 인스턴스를 더 연결하라는 요청이 실패합니다.

  • 그룹에 인스턴스를 추가하여 가용 영역 간에 고르지 않은 배포가 발생하는 경우 Amazon EC2 Auto Scaling은 AZRebalance 프로세스를 일시 중지하지 않는 한 그룹을 리밸런싱하여 균등한 배포를 다시 설정합니다. 자세한 내용은 Amazon EC2 Auto Scaling 프로세스 일시 중지 및 재개 단원을 참조하십시오.

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

연결할 인스턴스는 다음 기준을 충족해야 합니다.

  • 인스턴스가 Amazon 의 running 상태입니다EC2.

  • 인스턴스를 시작하는 데 AMI 사용되는 가 여전히 있어야 합니다.

  • 인스턴스가 다른 Auto Scaling 그룹의 구성원이 아닙니다.

  • 인스턴스는 Auto Scaling 그룹에 정의된 가용 영역 중 하나로 시작됩니다.

  • Auto Scaling 그룹에 로드 밸런서 대상 그룹 또는 Classic Load Balancer 가 연결된 경우 인스턴스와 로드 밸런서는 모두 동일한 에 있어야 합니다VPC.

분리 및 연결을 사용하여 인스턴스를 다른 그룹으로 이동

다음 절차 중 하나를 사용하여 Auto Scaling 그룹에서 인스턴스를 분리하고 다른 Auto Scaling 그룹에 연결합니다.

분리된 인스턴스에서 새 Auto Scaling 그룹을 생성하려면 기존 인스턴스의 파라미터를 사용하여 Auto Scaling 그룹 생성 (권장하지 않음, 시작 구성 생성)을 참조하세요.

Console
Auto Scaling 그룹에서 인스턴스를 분리하려면
  1. 에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling Groupshttps://console.aws.amazon.com/ec2/선택합니다.

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

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

  3. 인스턴스 관리(Instance management) 탭의 인스턴스(Instances)에서 인스턴스를 선택하고 작업(Actions), 분리(Detach)를 선택합니다.

  4. 인스턴스 분리 대화 상자에서 인스턴스 교체 확인란을 선택한 상태로 유지하여 교체 인스턴스를 시작합니다. 원하는 용량을 줄이려면 확인란을 선택 취소합니다.

  5. 확인하라는 메시지가 표시되면 detach를 입력하여 Auto Scaling 그룹에서 지정된 인스턴스의 삭제를 확인한 다음 인스턴스 분리를 선택합니다.

이제 인스턴스를 다른 Auto Scaling 그룹에 연결할 수 있습니다.

새 Auto Scaling 그룹에 인스턴스 연결
  1. 에서 Amazon EC2 콘솔을 엽니다https://console.aws.amazon.com/ec2/.

  2. (옵션) 탐색 창의 Auto Scaling에서 Auto Scaling Groups(Auto Scaling 그룹)를 선택합니다. Auto Scaling 그룹을 선택하고 Auto Scaling 그룹의 최대 크기가 다른 인스턴스를 추가할 수 있을 만큼 큰지 확인합니다. 그렇지 않으면 세부 정보(Details) 탭에서 최대 용량을 늘립니다.

  3. 탐색 창의 인스턴스(Instances)에서 인스턴스(Instances)를 선택한 다음 인스턴스를 선택합니다.

  4. Actions(작업), Instance settings(인스턴스 설정), Attach to Auto Scaling Group(Auto Scaling 그룹에 연결)을 차례로 선택합니다.

  5. Auto Scaling 그룹에 연결 페이지에서 Auto Scaling Group(Auto Scaling 그룹)에 대한 Auto Scaling 그룹을 선택하고 Attach(연결)를 선택합니다.

  6. 인스턴스가 기준을 충족하지 않으면 세부 정보가 포함된 오류 메시지가 표시됩니다. 예컨대, Auto Scaling 그룹과 동일한 가용 영역에 있지 않을 수도 있습니다. 닫기를 선택하고 기준을 충족하는 Auto Scaling 그룹으로 다시 시도하세요.

AWS CLI

인스턴스를 분리하고 연결하려면 다음 예제 명령을 사용합니다. 각각 바꾸기 user input placeholder 자신의 정보를 사용합니다.

Auto Scaling 그룹에서 인스턴스를 분리하려면
  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", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }
  2. 원하는 용량을 줄이지 않고 인스턴스를 분리하려면 다음 detach-instances 명령을 사용합니다.

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg

    인스턴스를 분리하고 원하는 용량을 줄이려면 --should-decrement-desired-capacity 옵션을 포함합니다.

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

이제 인스턴스를 다른 Auto Scaling 그룹에 연결할 수 있습니다.

새 Auto Scaling 그룹에 인스턴스 연결
  1. 다른 Auto Scaling 그룹에 인스턴스를 연결하려면 다음 attach-instances 명령을 사용합니다.

    aws autoscaling attach-instances --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg-for-testing
  2. 인스턴스를 연결한 후 Auto Scaling 그룹의 크기를 확인하려면 다음 describe-auto-scaling-groups 명령을 사용합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg-for-testing

    다음 예제 응답은 그룹에 실행 중인 인스턴스가 두 개 있으며, 그 중 하나가 연결한 인스턴스임을 보여줍니다.

    { "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg-for-testing", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, ... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-00dcdfffdf5175890", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], ... } ] }