

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

# 종료 방지를 사용하여 Amazon EMR 클러스터가 실수로 종료되지 않도록 보호
<a name="UsingEMR_TerminationProtection"></a>

종료 방지는 실수로 인한 종료로부터 클러스터를 보호하므로 중요한 워크로드를 처리하는 장기 실행 클러스터에 특히 유용합니다. 장기 실행 클러스터에서 종료 방지 기능이 활성화된 경우 클러스터를 종료할 수는 있지만 먼저 클러스터에서 종료 방지 기능을 명시적으로 제거합니다. 그러면 실수 또는 오류로 인해 EC2 인스턴스가 종료되는 것을 방지할 수 있습니다. 클러스터를 생성할 때 종료 방지 기능을 활성화할 수 있으며 실행 중인 클러스터의 설정을 변경할 수 있습니다.

종료 방지 기능을 활성화하면 Amazon EMR API의 `TerminateJobFlows` 작업이 작동하지 않습니다. 사용자는 이 API를 사용하거나 또는 AWS CLI에서 `terminate-clusters` 명령을 사용하여 클러스터를 종료할 수 없습니다. API에서 오류를 반환하고 CLI가 0이 아닌 반환 코드와 함께 종료됩니다. Amazon EMR 콘솔을 사용하여 클러스터를 종료하면 종료 방지 기능을 해제할 것인지 묻는 추가 단계가 메시지로 표시됩니다.

**주의**  
종료 방지 기능은 SSH를 사용하여 인스턴스에 연결된 동안 명령줄에서 재부팅 명령을 실행하거나 인스턴스에서 실행 중인 애플리케이션 또는 스크립트가 재부팅 명령을 실행하거나 Amazon EC2 또는 Amazon EMR API를 사용하여 종료 방지 기능을 비활성화하는 경우 등 인적 오류가 발생한 경우 데이터 유지나 해결 방법을 보장하지 않습니다. Amazon EMR 릴리스 7.1 이상을 실행하고 인스턴스가 비정상이고 복구할 수 없는 경우에도 마찬가지입니다. 종료 방지가 활성화된 경우에도 HDFS 데이터를 포함하여 인스턴스 스토리지에 저장된 데이터가 손실될 수 있습니다. 데이터 출력을 Amazon S3 위치에 기록하고 비즈니스 연속성 요구 사항에 따라 적절한 백업 전략을 생성합니다.

종료 방지 기능은 다음 작업 중 하나를 사용하여 클러스터 리소스를 확장하는 기능에 영향을 미치지 않습니다.
+  AWS Management Console 또는를 사용하여 클러스터의 크기를 수동으로 조정합니다 AWS CLI. 자세한 내용은 [실행 중인 Amazon EMR 클러스터 크기 수동 조정](emr-manage-resize.md) 단원을 참조하십시오.
+ 자동 조정과 함께 확장 정책을 사용하여 코어 또는 작업 인스턴스 그룹에서 인스턴스 제거. 자세한 내용은 [Amazon EMR의 인스턴스 그룹에서 사용자 지정 정책과 함께 자동 조정 사용](emr-automatic-scaling.md) 단원을 참조하십시오.
+ 대상 용량을 줄여 인스턴스 플릿에서 인스턴스 제거. 자세한 내용은 [인스턴스 플릿 옵션](emr-instance-fleet.md#emr-instance-fleet-options) 단원을 참조하십시오.

## 종료 방지 및 Amazon EC2
<a name="emr-termination-protection-ec2"></a>

Amazon EMR 클러스터의 종료 방지 설정은 클러스터 내 모든 Amazon EC2 인스턴스에서 `DisableApiTermination` 속성에 해당합니다. 예를 들어, EMR 클러스터에서 종료 방지를 활성화하면 Amazon EMR은 EMR 클러스터 내의 모든 EC2 인스턴스에 대해 `DisableApiTermination`을 true로 자동 설정합니다. 종료 방지를 비활성화하는 경우에도 마찬가지입니다. Amazon EMR은 EMR 클러스터 내 모든 EC2 인스턴스에 대해 `DisableApiTermination`을 false로 자동 설정합니다. Amazon EMR에서 클러스터를 종료하거나 스케일 다운하고 EC2 인스턴스에 대해 Amazon EC2 설정이 충돌하는 경우 Amazon EMR은 Amazon EC2의 `DisableApiStop` 및 `DisableApiTermination` 설정보다 Amazon EMR 설정을 우선하며 EC2 인스턴스를 계속 종료합니다.

예를 들어, Amazon EC2 콘솔을 사용하여 종료 방지가 비활성화된 EMR 클러스터의 Amazon EC2 인스턴스에서 종료 방지를 활성화할 수 있습니다. Amazon EMR 콘솔, AWS CLI또는 Amazon EMR API를 사용하여 클러스터를 종료하거나 축소하는 경우 Amazon EMR은 `DisableApiTermination` 설정을 재정의하고, false로 설정하고, 다른 인스턴스와 함께 인스턴스를 종료합니다.

또한 Amazon EC2 콘솔을 사용하여 종료 방지가 비활성화된 EMR 클러스터의 Amazon EC2 인스턴스에서 중지 방지를 활성화할 수 있습니다. 클러스터를 종료하거나 스케일 다운하면 Amazon EC2에서 Amazon EMR이 `DisableApiStop`을 false로 설정되고 다른 인스턴스와 함께 인스턴스가 종료됩니다.

Amazon EMR은 클러스터를 종료하거나 스케일 다운할 때만 `DisableApiStop` 설정을 재정의합니다. EMR 클러스터에서 종료 방지를 활성화하거나 비활성화하는 경우 Amazon EMR은 해당 EMR 클러스터의 EC2 인스턴스에 대한 `disableApiStop` 설정을 변경하지 않습니다.

**중요**  
종료 방지 기능이 있는 Amazon EMR 클러스터의 일부로 인스턴스를 생성하고 Amazon EC2 API 또는 AWS CLI 명령을 사용하여 `DisableApiTermination`가가 되도록 인스턴스를 수정`false`한 다음 Amazon EC2 API 또는 AWS CLI 명령이 `TerminateInstances` 작업을 실행하면 Amazon EC2 인스턴스가 종료됩니다.

## 종료 방지 및 비정상 YARN 노드
<a name="emr-termination-protection-unhealthy"></a>

Amazon EMR은 클러스터의 코어 및 태스크 Amazon EC2 인스턴스에서 실행 중인 노드의 Apache Hadoop YARN 상태를 주기적으로 점검합니다. 상태는 [NodeManager health checker service](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/NodeManager.html#Health_checker_service)를 통해 보고됩니다. 노드에서 `UNHEALTHY`를 보고하면 Amazon EMR 인스턴스 컨트롤러는 노드를 거부 목록에 추가하고 YARN 컨테이너가 다시 정상이 될 때까지 노드에 YARN 컨테이너를 할당하지 않습니다. 종료 방지 상태, 비정상 노드 교체 및 Amazon EMR 릴리스 버전에 따라 Amazon EMR은 [비정상 인스턴스를 교체하거나 인스턴스에 컨트롤러 할당을 중지](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-node-replacement.html)합니다.

## 종료 방지 및 단계 실행 후 종료
<a name="emr-termination-protection-steps"></a>

단계 실행 후 종료를 활성화하고 종료 방지 기능*도* 활성화하면 Amazon EMR은 종료 방지 기능을 무시합니다.

클러스터에 단계를 제출할 때, `ActionOnFailure` 속성을 설정하여 단계가 오류로 인해 실행을 완료할 수 없는 경우 수행할 작업을 결정할 수 있습니다. 이 설정의 가능한 값은 `TERMINATE_CLUSTER`(이전 버전의 `TERMINATE_JOB_FLOW`), `CANCEL_AND_WAIT` 및 `CONTINUE`입니다. 자세한 내용은 [Amazon EMR 클러스터에 작업 제출](emr-work-with-steps.md) 단원을 참조하십시오.

`ActionOnFailure`를 `CANCEL_AND_WAIT`로 설정하여 구성된 단계가 실패하면 단계 실행 이후 종료가 활성화된 경우 후속 단계를 실행하지 않고 클러스터가 종료됩니다.

`ActionOnFailure`를 `TERMINATE_CLUSTER`로 설정하여 구성된 단계가 실패하면 아래 설정 테이블을 사용하여 출력을 결정합니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)

## 종료 방지 및 스팟 인스턴스
<a name="emr-termination-protection-spot"></a>

스팟 가격이 최고 스팟 가격을 초과하는 경우 Amazon EMR 종료 방지 기능은 Amazon EC2 스팟 인스턴스가 종료되는 것을 방지하지 않습니다.

## 클러스터 시작 시 종료 방지 구성
<a name="emr-termination-protection-create-cluster"></a>

콘솔 AWS CLI, 또는 API를 사용하여 클러스터를 시작할 때 종료 방지를 활성화하거나 비활성화할 수 있습니다.

단일 노드 클러스터의 경우 기본 종료 방지 설정은 다음과 같습니다.
+ Amazon EMR 콘솔에서 클러스터 시작 - 기본적으로 종료 방지는 **비활성화**되어 있습니다.
+ 클러스터 시작 기준 AWS CLI `aws emr create-cluster`-를 지정하지 않으면 종료 방지가 **비활성화**`--termination-protected`됩니다.
+ Amazon EMR API [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow) 명령으로 클러스터 시작 - `TerminationProtected` 부울 값이 `true`로 설정되지 않는 한 종료 방지는 **비활성화**됩니다.

고가용성 클러스터의 경우 기본 종료 방지 설정은 다음과 같습니다.
+ Amazon EMR 콘솔에서 클러스터 시작 - 기본적으로 종료 방지는 **활성화**되어 있습니다.
+ 클러스터 시작 기준 AWS CLI `aws emr create-cluster`-를 지정하지 않으면 종료 방지가 **비활성화**`--termination-protected`됩니다.
+ Amazon EMR API [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow) 명령으로 클러스터 시작 - `TerminationProtected` 부울 값이 `true`로 설정되지 않는 한 종료 방지는 **비활성화**됩니다.

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

**콘솔을 사용하여 클러스터를 생성하는 경우 종료 방지 기능을 켜거나 끄는 방법**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) Amazon EMR 콘솔을 엽니다.

1. 왼쪽 탐색 창의 **EMR on EC2**에서 **클러스터**를 선택하고 **클러스터 생성**을 선택합니다.

1. **EMR 릴리스 버전**에서 **emr-6.6.0** 이상을 선택합니다.

1. **클러스터 종료 및 노드 교체**에서 **종료 방지 기능 사용**이 미리 선택되어 있는지 확인하거나 선택을 취소하여 기능을 끕니다.

1. 클러스터에 적용할 다른 옵션을 선택합니다.

1. 클러스터를 시작하려면 **클러스터 생성**을 선택합니다.

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

**를 사용하여 클러스터를 생성할 때 종료 방지 기능을 켜거나 끄려면 AWS CLI**
+ 를 사용하면 `--termination-protected` 파라미터가 있는 `create-cluster` 명령으로 종료 방지 기능이 활성화된 클러스터를 시작할 AWS CLI수 있습니다. 종료 방지 기능은 기본적으로 비활성화됩니다.

  다음은 종료 방지 기능이 활성화된 클러스터를 생성하는 예제입니다.
**참고**  
가독성을 위해 Linux 줄 연속 문자(\$1)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

  ```
  aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-7.12.0 \
  --applications Name=Hadoop Name=Hive Name=Pig \
  --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \
  --instance-count 3 --termination-protected
  ```

  에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 내용은 섹션을 AWS CLI참조하세요[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr).

------

## 실행 중인 클러스터에 대한 종료 방지 구성
<a name="emr-termination-protection-running-cluster"></a>

콘솔 또는 AWS CLI를 사용하여 실행 중인 클러스터에 대해 종료 방지 기능을 구성할 수 있습니다.

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

**콘솔을 사용하여 실행 중인 클러스터에 대해 종료 방지 기능을 켜거나 끄는 방법**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) Amazon EMR 콘솔을 엽니다.

1. 왼쪽 탐색 창의 **EMR on EC2**에서 **클러스터**를 선택하고 업데이트할 클러스터를 선택합니다.

1. 클러스터 세부 정보 페이지의 **속성** 탭에서 **클러스터 종료**를 찾아 **편집**을 선택합니다.

1. **종료 방지 기능 사용** 확인란을 선택하거나 선택 취소하여 기능을 켜거나 끕니다. 그런 다음 **변경 사항 저장**을 선택하여 확인합니다.

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

**를 사용하여 실행 중인 클러스터에 대해 종료 방지 기능을 켜거나 끄려면 AWS CLI**
+  AWS CLI를 사용하여 실행 중인 클러스터에 대해 종료 방지 기능을 활성화하려면 `--termination-protected` 파라미터와 함께 `modify-cluster-attributes` 명령을 사용합니다. 이 기능을 비활성화하려면 `--no-termination-protected` 파라미터를 사용합니다.

  다음 예에서는 ID가 *j-3KVTXXXXXX7UG*인 클러스터에서 종료 방지 기능을 활성화합니다.

  ```
  1. aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --termination-protected
  ```

  다음 예에서는 동일한 클러스터에서 종료 방지 기능을 비활성화합니다.

  ```
  1. aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected
  ```

------