메뉴
Amazon EC2 Auto Scaling
사용 설명서

축소 시 Auto Scaling 인스턴스 종료 제어

각 Auto Scaling 그룹에서 네트워크 아키텍처로부터 인스턴스를 추가(확장)하거나 제거(축소)하는 시점을 제어합니다. 인스턴스를 연결하거나 분리하여 수동으로 그룹 크기를 조정하거나 조정 정책을 사용하여 프로세스를 자동화할 수 있습니다.

자동 축소를 구성할 때 어떤 인스턴스가 우선 종료되어야 하는지 결정하고 종료 정책을 설정해야 합니다.

인스턴스 보호를 사용하여 자동 축소 동안 특정 인스턴스가 종료되지 않도록 할 수도 있습니다.

기본 종료 정책

기본 종료 정책은 네트워크 아키텍처 전반에서 가용 영역이 균일하게 적용되도록 하기 위해 설계되었습니다. 기본 종료 정책을 통한 Auto Scaling 그룹의 동작은 다음과 같습니다.

  1. 여러 가용 영역 내 인스턴스가 있는 경우 인스턴스가 가장 많으며 축소로부터 보호되지 않는 인스턴스가 최소 하나 이상 있는 가용 영역을 선택합니다. 인스턴스 수가 동일한 가용 영역이 둘 이상이면 가장 오래된 시작 구성을 사용하는 인스턴스를 가진 가용 영역을 선택합니다.

  2. 선택한 가용 영역에서 가장 오래된 시작 구성을 사용하는 비보호 인스턴스를 확인합니다. 그러한 인스턴스가 있으면 이를 종료합니다.

  3. 가장 오래된 시작 구성을 사용하는 인스턴스가 여러 개인 경우, 다음 번 결제 시간에 가장 근접한 비보호 인스턴스가 무엇인지 확인합니다. (이것은 EC2 인스턴스의 사용을 극대화하고 Amazon EC2 사용 비용을 관리할 수 있도록 합니다.) 그러한 인스턴스가 있으면 이를 종료합니다.

  4. 다음 번 결제 시간에 가장 근접한 비보호 인스턴스가 둘 이상인 경우 이러한 인스턴스 중 하나를 임의로 선택합니다.

다음 흐름 다이어그램은 기본 종료 정책이 어떻게 작동하는지 설명합니다.

 Auto Scaling 그룹에서 기본 종료 정책을 사용하여 인스턴스를 종료하는 방법을 보여주는 흐름 차트입니다.

Auto Scaling 그룹에 2개의 가용 영역이 있고 원하는 용량은 2개의 인스턴스이며 특정 임계값이 충족되는 경우 인스턴스 수가 1개씩 증가하거나 감소하는 조정 정책이 있다고 가정합니다. 이 그룹에 있는 2개의 인스턴스는 다음과 같이 배포됩니다.

 기본 Auto Scaling 그룹.

확장 정책에 대한 임계값이 충족되면 정책이 적용되고 Auto Scaling 그룹에서 새로운 인스턴스를 시작합니다. 이제 Auto Scaling 그룹에 3개의 인스턴스가 있고 다름과 같이 배포됩니다.

 조정 작업 수행 후의 Auto Scaling 그룹.

축소 정책에 대한 임계값이 충족되면 정책이 적용되고 Auto Scaling 그룹에서 인스턴스 한 개를 종료합니다. 그룹에 특정 종료 정책을 할당하지 않은 경우 기본 종료 정책을 사용합니다. 인스턴스가 2개인 가용 영역을 선택하고 가장 오래된 시작 구성을 시작하는 인스턴스를 종료합니다. 인스턴스가 동일한 시작 구성에서 시작된 경우 Auto Scaling 그룹은 다음 번 결제 시간에 가장 근접한 인스턴스를 선택한 후 이를 종료합니다.

종료 정책 사용자 지정

Auto Scaling 그룹에 할당된 기본 종료 정책은 대체로 대부분의 상황에 적용됩니다. 하지만 기본 정책을 사용자 지정 정책과 교체하는 옵션이 제공됩니다.

종료 정책을 사용자 지정할 때 가용 영역에 그룹에서 사용하는 다른 가용 영역 외에 추가 인스턴스가 있으면 종료 정책은 불균형이 있는 가용 영역의 인스턴스에 적용됩니다. 그룹에서 사용하는 가용 영역이 균형적인 경우 종료 정책은 그룹에 대한 모든 가용 영역에 걸쳐 적용됩니다.

Amazon EC2 Auto Scaling은 현재 다음 사용자 지정 종료 정책을 지원합니다.

  • OldestInstance. 그룹에서 가장 오래된 인스턴스를 종료합니다. 이 옵션은 Auto Scaling 그룹의 인스턴스를 새로운 EC2 인스턴스 유형으로 업그레이드할 때 유용합니다. 따라서 이전 유형의 인스턴스를 새로운 유형의 인스턴스로 점진적으로 교체할 수 있습니다.

  • NewestInstance. 그룹에서 가장 새로운 인스턴스를 종료합니다. 이 정책은 새로운 시작 구성을 테스트하지만 프로덕션 상태로 유지하고 싶지 않은 경우에 유용합니다.

  • OldestLaunchConfiguration. 가장 오래된 시작 구성을 가진 인스턴스를 종료합니다. 이 정책은 그룹을 업데이트하고 이전 구성에서 인스턴스를 단계적으로 종료할 때 유용합니다.

  • ClosestToNextInstanceHour. 다음 번 결제 시간에 가장 근접한 인스턴스를 종료합니다. 이 정책은 인스턴스의 사용을 극대화하고 Amazon EC2 사용 비용을 관리할 수 있도록 합니다.

  • Default. 기본 종료 정책에 따라 인스턴스를 종료합니다. 이 정책은 그룹에 대한 조정 정책이 둘 이상일 경우에 유용합니다.

콘솔을 사용하여 종료 정책을 사용자 지정하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [Auto Scaling Groups]를 선택합니다.

  3. Auto Scaling 그룹을 선택합니다.

  4. [Actions]애 대해 [Edit]을 선택합니다.

  5. [Details] 탭에서 [Termination Policies]를 찾습니다. 종료 정책을 하나 이상의 선택합니다. 정책을 여러 개 선택할 경우 적용할 순서대로 나열합니다. Default 정책을 사용할 경우 목록에서 이 정책이 제일 마지막에 오도록 합니다.

  6. [Save]를 선택합니다.

AWS CLI를 사용하여 종료 정책을 사용자 지정하려면

다음 명령 중 하나를 사용합니다.

이러한 정책을 개별적으로 사용하거나 정책 목록으로 결합할 수 있습니다. 예를 들어, 다음 명령으로 Auto Scaling 그룹을 업데이트하여 먼저 OldestLaunchConfiguration 정책을 사용한 다음 ClosestToNextInstanceHour 정책을 사용합니다.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --termination-policies "OldestLaunchConfiguration,ClosestToNextInstanceHour"

Default 종료 정책을 사용하는 경우 이 정책이 종료 정책 목록의 맨 마지막에 오도록 합니다. 예, --termination-policies "OldestLaunchConfiguration,Default".

인스턴스 보호

축소 시 Auto Scaling 그룹에서 특정 인스턴스를 종료할지 여부를 제어하려면 인스턴스 보호를 사용합니다. Auto Scaling 그룹 또는 개별 Auto Scaling 인스턴스의 인스턴스 보호 설정을 활성화할 수 있습니다. Auto Scaling 그룹에서 인스턴스를 시작할 때 해당 인스턴스는 Auto Scaling 그룹의 인스턴스 보호 설정을 상속합니다. Auto Scaling 그룹 또는 Auto Scaling 인스턴스의 인스턴스 보호 설정을 언제든 변경할 수 있습니다.

인스턴스 상태가 InService이면 인스턴스 보호가 시작됩니다. 종료로부터 보호되는 인스턴스를 분리하면 인스턴스 보호 설정이 손실됩니다. 인스턴스를 그룹에 다시 연결하면 해당 그룹의 현재 인스턴스 보호 설정을 상속합니다.

축소 및 축소 이벤트 발생 시 Auto Scaling 그룹의 모든 인스턴스가 종료로부터 보호되는 경우, 원하는 용량을 줄입니다. 그러나 Auto Scaling 그룹은 인스턴스 보호 설정이 비활성화될 때까지 필요한 수의 인스턴스를 종료하지 않습니다.

인스턴스 보호는 다음 경우에 Auto Scaling 인스턴스를 보호하지 않습니다.

  • Amazon EC2 콘솔, terminate-instances 명령 또는 TerminateInstances 작업을 통한 수동 종료. 수동 종료로부터 Auto Scaling 인스턴스를 보호하려면 종료 방지 기능을 활성화합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서종료 방지 기능 활성화를 참조하십시오.

  • 인스턴스가 상태 확인을 통과하지 못한 경우 상태 확인 교체.

  • 스팟 인스턴스 중단.

그룹의 인스턴스 보호 활성화

Auto Scaling 그룹을 만들 때 인스턴스 보호를 활성화할 수 있습니다. 기본적으로 인스턴스 보호는 비활성화되어 있습니다.

콘솔을 사용하여 인스턴스 보호를 활성화하려면

Auto Scaling 그룹을 만드는 경우, [Configure Auto Scaling group details] 페이지에서 [Advanced Details] 아래의 [Instance Protection]에서 Protect From Scale In 옵션을 선택합니다.

 마법사를 사용하여 인스턴스 보호 활성화.

AWS CLI를 사용하여 인스턴스 보호를 활성화하려면

다음 create-auto-scaling-group 명령을 사용하여 인스턴스 보호를 활성화합니다.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...

그룹의 인스턴스 보호 설정 수정

Auto Scaling 그룹의 인스턴스 보호 설정을 활성화하거나 비활성화할 수 있습니다.

콘솔을 사용하여 그룹의 인스턴스 보호 설정을 변경하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [Auto Scaling Groups]를 선택합니다.

  3. Auto Scaling 그룹을 선택합니다.

  4. [Details] 탭에서 [Edit]를 선택합니다.

  5. [Instance Protection]에서 Protect From Scale In을 선택합니다.

     세부 정보 탭의 인스턴스 보호 보기.
  6. [Save]를 선택합니다.

AWS CLI를 사용하여 그룹의 인스턴스 보호 설정을 변경하려면

다음 update-auto-scaling-group 명령을 사용하여 지정된 Auto Scaling 그룹의 인스턴스 보호를 활성화합니다.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in

다음 명령을 사용하여 지정된 그룹의 인스턴스 보호를 비활성화합니다.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --no-new-instances-protected-from-scale-in

인스턴스의 인스턴스 보호 설정 수정

기본적으로 인스턴스는 속해 있는 Auto Scaling 그룹의 인스턴스 보호 설정을 가져옵니다. 그러나 인스턴스의 인스턴스 보호를 언제든 활성화하거나 비활성화할 수 있습니다.

콘솔을 사용하여 인스턴스의 인스턴스 보호 설정을 변경하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [Auto Scaling Groups]를 선택합니다.

  3. Auto Scaling 그룹을 선택합니다.

  4. [Instances] 탭에서 인스턴스를 선택합니다.

  5. 인스턴스 보호를 활성화하려면 [Actions], [Instance Protection], [Set Scale In Protection]을 차례로 선택합니다. 메시지가 표시되면 [Set Scale In Protection]을 선택합니다.

  6. 인스턴스 보호를 비활성화하려면 [Actions], [Instance Protection], [Remove Scale In Protection]을 차례로 선택합니다. 메시지가 표시되면 [Remove Scale In Protection]을 선택합니다.

AWS CLI를 사용하여 인스턴스의 인스턴스 보호 설정을 변경하려면

다음 set-instance-protection 명령을 사용하여 지정된 인스턴스의 인스턴스 보호를 활성화합니다.

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --protected-from-scale-in

다음 명령을 사용하여 지정된 인스턴스의 인스턴스 보호를 비활성화합니다.

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --no-protected-from-scale-in