Amazon EMR
管理ガイド

削除保護の使用

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

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

警告

削除保護では、ヒューマンエラーまたは回避の場合にデータが保持されることは保証されません — たとえば、SSH を使用してインスタンスに接続されている間にコマンドラインからリブートコマンドが発行された場合、インスタンス上で実行されているアプリケーションまたはスクリプトでリブートコマンドが発行された場合、または Amazon EC2 または Amazon EMR API を使用して削除保護を無効かしている場合などがあります。削除保護を有効にしても、HDFS データなど、インスタンスストレージに保存されたデータは失われる可能性があります。ビジネス継続性の要件に応じて、データ出力を Amazon S3 の場所に書き込むか、バックアップ戦略を作成します。

削除保護は、以下のアクションによるクラスターリソースのスケールに影響することはありません。

削除保護と Amazon EC2

削除保護が有効になっている Amazon EMR クラスターでは、クラスターのすべての Amazon EC2 インスタンスに disableAPITermination 属性が設定されています。終了リクエストの送信元が Amazon EMR でインスタンスの競合に関する Amazon EMR と Amazon EC2 の設定が行われている場合、Amazon EMR の設定が Amazon EC2 の設定に優先します。たとえば、Amazon EC2 コンソールを使用して削除保護が無効になっているクラスターの Amazon EC2 インスタンスで削除保護を有効にする場合、Amazon EMR のコンソール、Amazon EMR の AWS CLI コマンド、または Amazon EMR API でクラスターを終了すると、Amazon EMR は DisableApiTerminationfalse に設定して他のインスタンスとともにインスタンスを終了します。

重要

削除保護を設定した Amazon EMR クラスターの一部としてインスタンスを作成し、DisableApiTerminationfalse になるように Amazon EC2 API または AWS CLI のコマンドを使用してインスタンスを変更してから、Amazon EC2 API か AWS CLI のコマンドで TerminateInstances アクションを実行した場合、Amazon EC2 インスタンスは終了します。

削除保護と異常な状態の YARN ノード

Amazon EMR は、クラスターのコアおよびタスク Amazon EC2 インスタンスで実行されている Apache Hadoop YARN のノードのステータスを定期的にチェックします。ヘルスステータスは、NodeManager Health Checker Service によって報告されます。ノードが UNHEALTHY を報告すると、Amazon EMR のインスタンスコントローラーはノードをブラックリストに追加し、再び正常な状態になるまで YARN コンテナを割り当てません。ノードが異常な状態になる一般的な理由としては、ディス使用率が 90% を超えることが挙げられます。異常な状態のノードを特定して復旧する方法の詳細については、「リソースエラー」を参照してください。

ノードが UNHEALTHY の状態が 45 分以上続く場合、Amazon EMR は削除保護のステータスに基づいて以下のアクションを実行します。

終了保護 結果

有効 (推奨)

Amazon EC2 のインスタンスは、ブラックリストに入れられたまま引き続きクラスターのキャパシティーとしてカウントされます。設定とデータ復旧のために Amazon EC2 インスタンスに接続し、クラスターのサイズを変更してキャパシティーを追加できます。詳細については、「リソースエラー」を参照してください。

Disabled

Amazon EC2 インスタンスは終了されます。Amazon EMR は、インスタンスグループかインスタンスフリート用のターゲットキャパシティーで指定されたインスタンス数に基づいて新しいインスタンスをプロビジョニングします。すべてのコアノードが 45 分以上 UNHEALTHY の状態になっている場合、クラスターは NO_SLAVES_LEFT ステータスを報告して終了します。

重要

異常な状態が原因でコアインスタンスが終了すると、HDFS のデータが失われる可能性があります。他のノードにレプリケートされなかったブロックがノードに格納されている場合、それらのブロックは失われるため、データ損失が発生する可能性があります。必要に応じてインスタンスに接続してデータを復旧できるよう、削除保護を使用することをお勧めします。

削除保護、自動終了、およびステップ実行

自動終了設定は、削除保護より優先されます。両方を有効にした場合、ステップの実行が完了すると、クラスターは待ち状態になるのではなく終了します。

クラスターにステップを送信するときに ActionOnFailure プロパティを設定することにより、エラーが原因でステップの実行を完了できなかった場合に何が起きるのかを確認できます。この設定に使用できる値は、TERMINATE_CLUSTER (以前のバージョンでは TERMINATE_JOB_FLOW)、CANCEL_AND_WAIT、および CONTINUE です。詳細については、「CLI およびコンソールを使用した手順の作業」を参照してください。

ActionOnFailureCANCEL_AND_WAIT に設定したステップが失敗した場合、自動終了が有効になっているとクラスターは後続のステップを実行せずに終了します。

ActionOnFailureTERMINATE_CLUSTER に設定されているステップが失敗した場合は、以下の設定の表で結果を確認してください。

ActionOnFailure 自動終了 終了保護 結果

TERMINATE_CLUSTER

有効

Disabled

クラスターが終了

有効

有効

クラスターが終了

Disabled

有効

クラスターの稼働が継続

Disabled

Disabled

クラスターが終了

終了保護とスポットインスタンス

Amazon EMR の削除保護を有効にしても、スポット料金が最大スポット料金を超えた場合の Amazon EC2 スポットインスタンスの終了を防ぐことはできません。

クラスターを起動するときに削除保護を設定する

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

デフォルトの削除保護設定は、クラスターの起動方法によって異なります。

  • Amazon EMR コンソールのクイックオプション—削除保護はデフォルトで無効になっています。

  • Amazon EMR コンソールの詳細オプション—削除保護はデフォルトで有効になっています。

  • AWS CLI の aws emr create-cluster--termination-protected が指定されている場合を除いて、削除保護は無効になっています。

  • Amazon EMR API の RunJobFlow コマンド—TerminationProtected のブール値が true に設定されている場合を除いて、削除保護は無効になっています。

コンソールを使用してクラスターを作成するときに削除保護を有効または無効にするには

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [Create cluster] を選択します。

  3. [Go to advanced options] を選択します。

  4. [Step 3: General Cluster Settings (ステップ 3: 一般的なクラスターの設定)] の [General Options (一般オプション)] で [Termination protection (削除保護)] が選択されて有効になっていることを確認するか、選択を解除して無効にします。

    クラスターを作成するための詳細オプションの削除保護設定。
  5. 必要に応じてアプリケーションの他の設定を選択し、[Next (次へ)] を選択してクラスターの設定を終了します。

AWS CLI を使用してクラスターを作成するときに削除保護を有効にするには

  • AWS CLI を使用して、create-cluster コマンドと --termination-protected パラメータで削除保護を有効にしたクラスターを起動できます。削除保護はデフォルトで無効になっています。

    次の例では、削除保護を有効にしたクラスターを作成します。

    注記

    読みやすくするため、Linux の行連結文字 (\) を含めています。Linux コマンドでは、これらの文字は削除することも、使用することもできます。Windows の場合は、削除するか、キャレット (^) で置き換えます。

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

    AWS CLI での Amazon EMR コマンドの使用方法の詳細については、https://docs.aws.amazon.com/cli/latest/reference/emr を参照してください。

実行中のクラスターに対する終了保護の設定

コンソールまたは AWS CLI を使用して、実行中のクラスターに対して終了保護を設定することができます。

コンソールを使用して実行中のクラスターの削除保護を有効または無効にするには

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [Clusters (クラスター)] ページでクラスターの名前を選択します。

  3. [Summary (概要)] タブで [Termination protection (削除保護)] の [Change (変更)] を選択します。

  4. 削除保護を有効にするには、[On (オン)] を選択します。削除保護を無効にするには、[Off (オフ)] を選択します。次に緑のチェックマークを選択して確定します。

    
							削除保護の変更の確認

AWS CLI を使用して実行中のクラスターの削除保護を有効または無効にするには

  • AWS CLI を使用して実行中のクラスターで終了保護を有効にするには、modify-cluster-attributes コマンドと --termination-protected パラメータを使用します。削除保護を無効にするには、--no-termination-protected パラメータを使用します。

    次の例では、ID j-3KVTXXXXXX7UG のクラスターで削除保護を有効にします。

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

    次の例では、同じクラスターで削除保護を無効にします。

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