Amazon EC2 Auto Scaling
사용 설명서

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

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

자동 축소를 구성할 경우에는 Auto Scaling 그룹이 먼저 종료할 인스턴스를 선택할 때 사용할 종료 정책을 설정해야 합니다.

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

참고

시간당 사용량 최대화에 대한 이 단원의 내용은 시간당 요금이 부과되는 Microsoft Windows 또는 Linux 배포를 실행하는 인스턴스에 적용됩니다. 해당 Auto Scaling 그룹에서 Amazon Linux 또는 Ubuntu를 사용하는 경우 EC2 사용량은 초 단위로 요금이 부과됩니다. 초 단위 요금 부과에 대한 자세한 내용은 Amazon EC2 요금을 참조하십시오.

기본 종료 정책

기본 종료 정책은 인스턴스를 고르게 분포시켜 가용 영역을 높이도록 설계되었습니다.

기본 종료 정책을 통한 Auto Scaling 그룹의 동작은 다음과 같습니다.

  1. 인스턴스가 가장 많으며 축소로부터 보호되지 않는 인스턴스가 최소 하나 이상 있는 가용 영역을 확인합니다.

  2. 대부분의 인스턴스를 포함하는 가용 영역에서 선택할 수 있는 보호되지 않는 인스턴스가 여러 개 있는 경우:

    1. 전체 요금 옵션과 인스턴스 유형에서 인스턴스를 시작하도록 Auto Scaling 그룹을 구성하려면

      나머지 인스턴스를 온디맨드 및 스팟 인스턴스의 할당 전략, 현재 선택되어 있는 인스턴스 유형, N 최저가 스팟 풀 배포에 맞추기 위해 종료할 인스턴스를 결정합니다.

    2. 선택할 인스턴스가 여러 개인 경우에는 이 중에서 가장 오래된 시작 구성 또는 템플릿을 사용하는 인스턴스가 있는지 확인합니다. 그러한 인스턴스가 있으면 이를 종료합니다.

    3. 시작 구성을 사용하는 Auto Scaling 그룹

      이 중에서 가장 오래된 시작 구성을 사용하는 인스턴스가 있는지 확인합니다. 그러한 인스턴스가 있으면 이를 종료합니다.

  3. 위의 기준에 따라 종료할 비보호 인스턴스가 여러 개인 경우 다음 결제 시간에 가장 근접한 인스턴스를 확인합니다. (이렇게 하면 시간제로 요금이 청구되는 인스턴스의 사용을 극대화할 수 있습니다.) 그러한 인스턴스가 있으면 이를 종료합니다.

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

시작 구성을 사용하는 Auto Scaling 그룹을 고려합니다. 여기에는 인스턴스 유형 1개, 가용 영역 2개, 두 인스턴스의 목표 용량, 특정 임계값이 충족될 때 인스턴스 수가 1씩 증감하는 조정 정책이 있습니다. 이 그룹에 있는 2개의 인스턴스는 다음과 같이 배포됩니다.


                    기본 Auto Scaling 그룹.

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


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

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

Amazon EC2 Auto Scaling을 사용한 고가용성에 대한 자세한 내용은 가용 영역에 인스턴스 분산을 참조하십시오.

종료 정책 사용자 지정

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

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

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

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

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

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

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

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

  • OldestLaunchTemplate. 시작 템플릿이 가장 오래된 인스턴스를 종료합니다. 먼저 현재 템플릿이 아닌 템플릿을 종료한 후 현재 시작 템플릿의 가장 오래된 버전을 종료합니다. 이 정책은 그룹을 업데이트하고 이전 구성에서 인스턴스를 단계적으로 종료할 때 유용합니다.

  • AllocationStrategy. Auto Scaling 그룹의 인스턴스를 종료하여 온디맨드 및 스팟 인스턴스의 할당 전략, 현재 선택되어 있는 인스턴스 유형, N 최저가 스팟 풀 배포에 인스턴스 배포를 맞춥니다.

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

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

  2. 탐색 창에서 Auto Scaling 그룹을 선택합니다.

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

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

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

  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 인스턴스를 보호하지 않습니다.

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

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

  • 스팟 인스턴스 중단.

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

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

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

Auto Scaling 그룹을 만드는 경우, Auto Scaling 그룹 세부 정보 구성 페이지에서 고급 세부 정보 아래의 인스턴스 보호에서 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 그룹을 선택합니다.

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

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

  5. 인스턴스 보호에서 스케일 인 보호를 선택합니다.

    
                                세부 정보 탭의 인스턴스 보호 보기.
  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 그룹을 선택합니다.

  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