

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR クラスターを誤ったシャットダウンから保護するための終了保護の使用
<a name="UsingEMR_TerminationProtection"></a>

終了保護は、クラスターを偶発的な終了から保護します。これは、重要なワークロードを処理する長時間稼働しているクラスターで特に役立ちます。長時間稼働クラスターで削除保護が有効になっていてもクラスターを終了することはできますが、最初にクラスターから明示的に削除保護を削除する必要があります。これにより、事故やエラーで EC2 インスタンスがシャットダウンされることがなくなります。削除保護はクラスターの作成時に有効にできます。また、実行中のクラスターで設定を変更することもできます。

終了保護が有効になっていると、Amazon EMR API の `TerminateJobFlows` アクションは機能しません。ユーザーは、この API や AWS CLIの `terminate-clusters` コマンドでクラスターを終了することはできません。この API はエラーを返し、CLI はゼロ以外のリターンコードで終了します。Amazon EMR コンソールを使用してクラスターを終了する場合、終了保護を無効にする追加ステップが示されます。

**警告**  
終了保護は、ヒューマンエラーや回避策が発生した場合にデータが保持されることを保証するものではありません。例えば、SSH を使用してインスタンスに接続しているときにコマンドラインから再起動コマンドが発行された場合、インスタンスで実行されているアプリケーションまたはスクリプトによって再起動コマンドが発行された場合、または Amazon EC2 や Amazon EMR API が使用されて終了保護が無効にされた場合などです。これは、Amazon EMR リリース 7.1 以降を実行していて、インスタンスが異常で回復不能になった場合も同様です。終了保護が有効になっている場合でも、HDFS データを含むインスタンスストレージに保存されたデータは失われる可能性があります。Simple Storage Service (Amazon S3) のロケーションにデータ出力を書き込み、ビジネス継続性の要件に応じてバックアップ戦略を作成します。

削除保護は、以下のアクションによるクラスターリソースのスケールに影響することはありません。
+  AWS マネジメントコンソール または を使用してクラスターを手動でサイズ変更します 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 EMR は Amazon EC2 で `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 ヘルスチェッカーサービス](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/NodeManager.html#Health_checker_service)によって報告されます。ノードが `UNHEALTHY` を報告すると、Amazon EMR のインスタンスコントローラーはノードを拒否リストに追加し、再び正常な状態になるまで 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/ja_jp/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>

コンソール、、または API を使用してクラスターを起動するときに、終了保護を有効 AWS CLIまたは無効にできます。

単一ノードクラスターの場合、デフォルトの終了保護設定は次のとおりです。
+ 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 マネジメントコンソール、[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**
+ では AWS CLI、 `--termination-protected`パラメータを指定して `create-cluster` コマンドを使用して終了保護を有効にしたクラスターを起動できます。削除保護はデフォルトで無効になっています。

  次の例では、削除保護を有効にしたクラスターを作成します。
**注記**  
読みやすくするために、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 マネジメントコンソール、[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を使用して実行中のクラスターで終了保護を有効にするには、`modify-cluster-attributes` コマンドと `--termination-protected` パラメータを使用します。削除保護を無効にするには、`--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
  ```

------