

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

# Amazon EC2 Auto Scaling의 종료 정책 구성
<a name="ec2-auto-scaling-termination-policies"></a>

종료 정책은 Amazon EC2 Auto Scaling이 특정 순서로 인스턴스를 종료하기 위해 따르는 기준을 제공합니다. 기본적으로 Amazon EC2 Auto Scaling은 오래된 구성을 사용하는 인스턴스를 먼저 종료하도록 설계된 종료 정책을 사용합니다. 종료 정책을 변경하여 먼저 종료하는 것이 가장 중요한 인스턴스를 제어할 수 있습니다.

Amazon EC2 Auto Scaling이 인스턴스를 종료하면 Auto Scaling 그룹에서 사용 가능한 가용 영역 간에 균형을 유지하려고 합니다. 영역 간 균형 유지가 종료 정책보다 우선합니다. 하나의 가용 영역에 다른 가용 영역보다 많은 인스턴스가 있는 경우 Amazon EC2 Auto Scaling은 먼저 불균형한 영역에 종료 정책을 적용합니다. 가용 영역이 균형을 이루면 모든 영역에 종료 정책을 적용합니다.

**Topics**
+ [기본 종료 정책의 작동 방식](#default-termination-policy)
+ [기본 해지 정책 및 혼합 인스턴스 그룹](#default-termination-policy-mixed-instances-groups)
+ [사전 정의된 종료 정책](#predefined-termination-policies)
+ [Auto Scaling 그룹의 종료 정책 변경](custom-termination-policy.md)

**참고**  
Amazon EC2 Auto Scaling은 Auto Scaling 그룹에 의해 비정상으로 간주되지 않는 인스턴스에만 종료 정책을 적용합니다. 따라서 Auto Scaling 상태 확인에서 비정상으로 표시된 인스턴스는 종료 정책 평가를 우회합니다.  
자세한 내용은 [인스턴스 종료를 원활하게 처리할 수 있도록 애플리케이션 설계](gracefully-handle-instance-termination.md) 단원을 참조하십시오.

## 기본 종료 정책의 작동 방식
<a name="default-termination-policy"></a>

Amazon EC2 Auto Scaling이 인스턴스를 종료해야 하는 경우, 먼저 인스턴스가 가장 많고 스케일 인으로부터 보호되지 않는 인스턴스가 하나 이상 있는 가용 영역(또는 영역)을 식별합니다. 그런 다음, 다음과 같이 식별된 가용 영역 내에서 보호되지 않은 인스턴스를 평가합니다.

**오래된 구성을 사용하는 인스턴스**
+ **시작 템플릿을 사용하는 그룹** - 다음 순서대로 우선순위를 지정하여 인스턴스가 오래된 구성을 사용할지 여부를 결정합니다.

  1. 먼저 시작 구성으로 시작된 인스턴스를 확인합니다.

  1. 그런 다음 현재 시작 템플릿 대신 다른 시작 템플릿을 사용하여 시작된 인스턴스를 확인합니다.

  1. 마지막으로 현재 시작 템플릿의 가장 오래된 버전을 사용하는 인스턴스를 확인합니다.
+ **시작 구성을 사용하는 그룹의** - 인스턴스 중 가장 오래된 시작 구성을 사용할지 여부를 결정합니다.

오래된 구성을 사용하는 인스턴스를 찾을 수 없거나 선택할 수 있는 인스턴스가 여러 개 있는 경우, Amazon EC2 Auto Scaling은 다음 청구 시간에 근접하는 인스턴스의 다음 기준을 고려합니다.

**다음 청구 시간에 근접하는 인스턴스**  
이전 기준을 충족하는 인스턴스 중 다음 청구 시간에 가장 가까운 것이 있는지 확인합니다. 여러 인스턴스가 똑같이 닫히면 한 인스턴스를 무작위로 종료합니다. 시간제로 요금이 청구되는 인스턴스의 사용을 극대화하는 데 도움이 됩니다. 하지만 이제 대부분의 EC2 사용량이 초 단위로 청구되므로 이 최적화로 인한 이점이 감소합니다. 자세한 설명은 [Amazon EC2 요금](https://aws.amazon.com/ec2/pricing/)을 참조하세요.

다음 흐름도는 시작 템플릿을 사용하는 그룹의 기본 종료 정책이 작동하는 방식을 보여줍니다.

![\[Auto Scaling 그룹이 기본 종료 정책을 사용하여 인스턴스를 종료하는 방법을 보여주는 흐름도입니다.\]](http://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/images/termination-policy-default-flowchart-diagram.png)


## 기본 해지 정책 및 혼합 인스턴스 그룹
<a name="default-termination-policy-mixed-instances-groups"></a>

Amazon EC2 Auto Scaling은 [혼합 인스턴스 그룹](ec2-auto-scaling-mixed-instances-groups.md)에서 인스턴스를 종료할 때 추가 기준을 적용합니다.

Amazon EC2 Auto Scaling에서 인스턴스를 종료해야 하는 경우 먼저 그룹의 설정에 따라 종료해야 하는 구매 옵션(스팟 또는 온디맨드)을 식별합니다. 이렇게 하면 시간이 지남에 따라 그룹이 스팟 및 온디맨드 인스턴스의 지정된 비율을 향하는 추세를 보이게 됩니다.

그런 다음 각 가용 영역에서 종료 정책을 개별적으로 적용합니다. 가용 영역의 균형을 유지하기 위해 가용 영역을 종료할 스팟 또는 온디맨드 인스턴스를 결정합니다. 인스턴스 유형에 대해 정의된 가중치와 함께 혼합 인스턴스 그룹에도 동일한 논리가 적용됩니다.

각 영역 내에서 기본 종료 정책은 다음과 같이 작동하여 식별된 구매 옵션 내에서 종료할 수 있는 보호되지 않는 인스턴스를 결정합니다.

1. Auto Scaling 그룹에 대해 지정된 [할당 전략](allocation-strategies.md)에 따른 조정을 개선하기 위해 인스턴스를 종료할 수 있는지 여부를 결정합니다. 최적화할 인스턴스가 식별되지 않았거나 선택할 인스턴스가 여러 개 있는 경우, 평가가 계속됩니다.

1. 다음 순서대로 우선순위를 지정하여 인스턴스가 오래된 구성을 사용할지 여부를 결정합니다.

   1. 먼저 시작 구성으로 시작된 인스턴스를 확인합니다.

   1. 그런 다음 현재 시작 템플릿 대신 다른 시작 템플릿을 사용하여 시작된 인스턴스를 확인합니다.

   1. 마지막으로 현재 시작 템플릿의 가장 오래된 버전을 사용하는 인스턴스를 확인합니다.

   오래된 구성이 있는 인스턴스를 찾을 수 없거나 선택할 수 있는 인스턴스가 여러 개 있는 경우, 평가가 계속됩니다.

1. 인스턴스 중 다음 청구 시간에 가장 가까운 인스턴스가 있는지 확인합니다. 여러 인스턴스가 똑같이 가까운 경우 무작위로 하나를 선택합니다.

## 사전 정의된 종료 정책
<a name="predefined-termination-policies"></a>

다음과 같은 사전 정의된 종료 정책 중에서 선택합니다.
+ **`Default`** - 기본 종료 정책에 따라 인스턴스를 종료합니다.
+ **`AllocationStrategy`** - Auto Scaling 그룹의 인스턴스를 종료하여 종료 중인 인스턴스 유형(스팟 인스턴스 또는 온디맨드 인스턴스)에 대한 할당 전략에 나머지 인스턴스를 맞춥니다. 이 정책은 선호하는 인스턴스 유형이 변경된 경우, 유용합니다. 스팟 할당 전략이 `lowest-price`인 경우, 최저가 스팟 풀 N개 전체에서 스팟 인스턴스 배치를 점차 재조정할 수 있습니다. 스팟 할당 전략이 `capacity-optimized`인 경우, 사용 가능한 스팟 용량이 더 여유 있는 스팟 풀에서 스팟 인스턴스 배치를 점차 재조정할 수 있습니다. 또한 점차 우선순위가 낮은 유형의 온디맨드 인스턴스를 우선순위가 높은 유형의 온디맨드 인스턴스로 교체할 수 있습니다.
+ **`OldestLaunchTemplate`** - 가장 오래된 시작 템플릿이 있는 인스턴스를 종료합니다. 이 정책을 사용하는 경우, 최신이 아닌 시작 템플릿을 사용하는 인스턴스가 먼저 해지되고 나서 최신 시작 템플릿의 가장 오래된 버전을 사용하는 인스턴스가 해지됩니다. 이 정책은 그룹을 업데이트하고 이전 구성에서 인스턴스를 단계적으로 해지할 때 유용합니다.
+ **`OldestLaunchConfiguration`** - 가장 오래된 시작 구성이 있는 인스턴스를 종료합니다. 이 정책은 그룹을 업데이트하고 이전 구성에서 인스턴스를 단계적으로 해지할 때 유용합니다. 이 정책을 사용하는 경우, 최신이 아닌 시작 구성을 사용하는 인스턴스가 먼저 해지됩니다.
+ **`ClosestToNextInstanceHour`** - 다음 청구 시간에 가장 근접한 인스턴스를 종료합니다. 이 정책은 시간제로 요금이 청구되는 인스턴스의 사용을 극대화할 수 있도록 합니다.
+ **`NewestInstance`** - 그룹에서 가장 새로운 인스턴스를 종료합니다. 이 정책은 새로운 시작 구성을 테스트하지만 프로덕션 상태로 유지하고 싶지 않은 경우에 유용합니다.
+ **`OldestInstance`** - 그룹에서 가장 오래된 인스턴스를 종료합니다. 이 옵션은 Auto Scaling 그룹의 인스턴스를 새로운 EC2 인스턴스 유형으로 업그레이드할 때 유용합니다. 따라서 이전 유형의 인스턴스를 새로운 유형의 인스턴스로 점진적으로 교체할 수 있습니다.
**참고**  
Amazon EC2 Auto Scaling은 사용 중인 해지 정책과 관계없이 항상 가용 영역 전반에서 인스턴스를 먼저 조정합니다. 따라서 일부 최신 인스턴스가 이전 인스턴스보다 먼저 해지되는 상황이 발생할 수 있습니다. 최근에 추가된 가용 영역이 있거나 가용 영역에 그룹에서 사용하는 다른 가용 영역 외에 추가 인스턴스가 있는 경우를 예로 들 수 있습니다.

# Auto Scaling 그룹의 종료 정책 변경
<a name="custom-termination-policy"></a>

Auto Scaling 그룹의 종료 정책을 변경하려면 다음 방법 중 하나를 사용합니다.

------
#### [ Console ]

Amazon EC2 Auto Scaling 콘솔에서 Auto Scaling 그룹을 처음 생성할 때는 종료 정책을 변경할 수 없습니다. 기본 해지 정책이 자동으로 사용됩니다. Auto Scaling 그룹을 생성한 후, 기본 정책을 적용해야 하는 순서대로 나열된 다른 종료 정책 또는 여러 종료 정책으로 바꿀 수 있습니다.

**Auto Scaling 그룹의 종료 정책을 변경하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 열고 탐색 창에서 **Auto Scaling 그룹(Auto Scaling Groups)**을 선택합니다.

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

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

1. **세부 정보** 탭에서 **고급 구성**, **편집을** 선택합니다.

1. **해지 정책**에서 하나 이상의 해지 정책을 선택합니다. 여러 정책을 선택하는 경우, 평가하려는 순서대로 정책을 배치합니다.

   필요에 따라 **사용자 정의 해지 정책(Custom termination policy)**을 선택한 다음 필요에 맞는 Lambda 함수를 선택할 수 있습니다. Lambda 함수에 대한 버전 및 별칭을 생성한 경우, **버전/별칭(Version/Alias)** 드롭다운에서 버전 또는 별칭을 선택할 수 있습니다. 게시되지 않은 버전의 Lambda 함수를 사용하려면 **버전/별칭(Version/Alias)**을 기본값으로 설정된 상태로 둡니다. 자세한 설명은 [Lambda를 사용하여 사용자 지정 해지 정책 생성](lambda-custom-termination-policy.md) 섹션을 참조하세요.
**참고**  
여러 정책을 사용하는 경우, 해당 순서를 올바르게 설정해야 합니다.  
**기본(Default)** 정책을 사용할 경우, 목록에서 기본 정책이어야 합니다.
**사용자 정의 해지 정책(Custom termination policy)**을 사용하는 경우, 목록의 첫 번째 정책이어야 합니다.

1. **업데이트**를 선택합니다.

------
#### [ AWS CLI ]

다른 정책을 지정하지 않으면 기본 해지 정책이 자동으로 사용됩니다.

**Auto Scaling 그룹의 종료 정책을 변경하려면**  
다음 명령 중 하나를 사용합니다.
+ [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)
+ [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)

해지 정책은 개별적으로 사용하거나 정책 목록으로 결합할 수 있습니다. 예컨대, 다음 명령으로 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"`입니다.

사용자 지정 종료 정책을 사용하려면 먼저를 사용하여 종료 정책을 생성해야 합니다 AWS Lambda. 해지 정책으로 사용할 Lambda 함수를 지정하려면 해지 정책 목록의 첫 번째 항목을 지정합니다. 예를 들어 `--termination-policies "arn:aws:lambda:us-west-2:123456789012:function:HelloFunction:prod" "OldestLaunchConfiguration"`입니다. 자세한 설명은 [Lambda를 사용하여 사용자 지정 해지 정책 생성](lambda-custom-termination-policy.md) 섹션을 참조하세요.

------