自動終了ポリシーを使用する - Amazon EMR

自動終了ポリシーを使用する

自動終了ポリシーを使用すると、未使用のクラスターをモニタリングして手動で終了することなく、クラスターのクリーンアップをオーケストレーションできます。クラスターに自動終了ポリシーを追加する場合、クラスターが自動的にシャットダウンするまでのアイドル時間を指定します。

リリースバージョンに応じて、Amazon EMR は異なる基準を使用してクラスターをアイドルとしてマークします。次の表は、Amazon EMR がクラスターのアイドル状態を決定する方法の概要を示しています。

使用するバージョン クラスターがアイドル状態と見なされる基準
Amazon EMR バージョン 5.34.0 以降、および 6.4.0 以降
  • アクティブな YARN アプリケーションがない

  • HDFSの使用率が 10% を下回っている

  • アクティブな EMR ノートブックまたは EMR Studio 接続がない

  • クラスター上のアプリケーションユーザインターフェイスが使用されていない

Amazon EMR バージョン 5.30.0~5.33.0 および 6.1.0~6.3.0
  • アクティブな YARN アプリケーションがない

  • クラスターにアクティブな Spark ジョブがない

注記

Amazon EMR はクラスターをアイドルとしてマークし、アクティブな Python3 カーネルがある場合でも、クラスターを自動的に終了することがあります。これは、Python3 カーネルを実行しても Spark ジョブがクラスターで送信されないためです。Python3 カーネルで自動終了を使用するには、Amazon EMR バージョン 6.4.0 以降を使用することをお勧めします。

注記

Amazon EMR バージョン 6.4.0 以降では、プライマリノードでのアクティビティを検出するためのクラスター上のファイル /emr/metricscollector/isbusy がサポートされています。クラスターを使用してシェルスクリプトまたは非 Yarn アプリケーションを実行する場合、isbusy を定期的に変更または更新して、クラスターがアイドル状態ではないことを Amazon EMR に伝えることができます。

クラスターの作成時に自動終了ポリシーをアタッチしたり、既存のクラスターにポリシーを追加したりできます。自動終了を変更または無効にするには、ポリシーを更新または削除することができます。

考慮事項

自動終了ポリシーを使用する前に、次の機能と制限を考慮してください。

  • アジアパシフィック (ジャカルタ) では、Amazon EMR の自動終了は Amazon EMR 6.14.0 以降で使用できます。

  • 以下の AWS リージョンでは、Amazon EMR の自動終了は Amazon EMR 5.30.0 および 6.1.0 以降で使用できます。

    米国東部 (バージニア北部、オハイオ)、米国西部 (オレゴン、北カリフォルニア)、南米 (サンパウロ)、欧州 (フランクフルト、アイルランド、ロンドン、ミラノ、パリ、ストックホルム)、カナダ (中部)、アジアパシフィック (香港、ムンバイ、ソウル、シンガポール、シドニー、東京)、中東 (バーレーン)、アフリカ (ケープタウン)、AWS GovCloud (米国東部)、AWS GovCloud (米国西部)、Sinnet が運営する中国 (北京)、NWCD が運営する中国 (寧夏)。

  • アイドルタイムアウトは、時間を指定しない場合、デフォルトで 60 分 (1 時間) です。最小アイドルタイムアウトには 1 分、最大アイドルタイムアウトには 7 日間を指定できます。

  • Amazon EMR バージョン 6.4.0 以降では、Amazon EMR コンソールで新しいクラスターを作成すると、自動終了がデフォルトで有効になります。

  • クラスターの自動終了を有効にする場合、Amazon EMR は高解像度の Amazon CloudWatch メトリクスを公開します。これらのメトリクスを使用して、クラスターのアクティビティとアイドル状態を追跡できます。詳細については、「クラスター容量メトリクス」を参照してください。

  • Presto、Trino、HBase などの非 Yarn アプリケーションを使用する場合、自動終了はサポートされません。

  • 自動終了を使用するには、メトリクスコレクタープロセスが API Gateway の自動終了用のパブリック API エンドポイントに接続できる必要があります。Amazon Virtual Private Cloud でプライベート DNS 名を使用すると、自動終了は正しく機能しません。自動終了が動作するようにするには、次のアクションの 1 つを実行することをお勧めします。

  • (EMR 5.30.0 以降) プライマリセキュリティグループのデフォルトの [すべて許可] アウトバウンドルールを削除して 0.0.0.0/ にした場合、サービスアクセス用のセキュリティグループへのアウトバウンド TCP 接続をポート 9443 で許可するルールを追加する必要があります。サービスアクセス用のセキュリティグループで、プライマリセキュリティグループからのインバウンド TCP トラフィックをポート 9443 で許可する必要もあります。セキュリティグループの設定の詳細については、「Amazon EMR-managed security group for the primary instance (private subnets))」を参照してください。

自動終了を使用するためのアクセス許可

Amazon EMR の自動終了ポリシーを適用および管理するには、次の EMR クラスターを管理する IAM リソースへの IAM アクセス許可ポリシーの例に記載されている、アクセス許可にアタッチする必要があります。

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowAutoTerminationPolicyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:PutAutoTerminationPolicy", "elasticmapreduce:GetAutoTerminationPolicy", "elasticmapreduce:RemoveAutoTerminationPolicy" ], "Resource": "<your-resources>" } }

自動終了ポリシーをアタッチ、更新、または削除する

このセクションでは、Amazon EMR クラスターに自動終了ポリシーをアタッチ、更新、または削除する手順について説明します。自動終了ポリシーを使用する前に、必要な IAM アクセス許可があることを確認してください。「自動終了を使用するためのアクセス許可」を参照してください。

注記

Amazon EMR コンソールは、再設計され、使いやすくなりました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「コンソールの新機能」を参照してください。

New console
新しいコンソールでクラスターの作成時に自動終了ポリシーをアタッチするには
  1. AWS Management Consoleにサインインし、Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。

  2. 左側のナビゲーションペインの [EMR on EC2] で、[クラスター] を選択し、[クラスターの作成] を選択します

  3. [クラスターの終了] で、[アイドル時間後にクラスターを終了] を選択します。

  4. クラスターが自動終了するまでのアイドル時間および分数を指定します。デフォルトのアイドル時間は 1 時間です。

  5. クラスターに適用するその他のオプションを選択します。

  6. クラスターを起動するには、[クラスターの作成] を選択します。

新しいコンソールを使用して、実行中のクラスターで自動終了ポリシーをアタッチ、更新、または削除するには
  1. AWS Management Consoleにサインインし、Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。

  2. 左側のナビゲーションペインの [EMR on EC2][クラスター] を選択し、更新するクラスターを選択します。

  3. クラスターの詳細ページの [プロパティ] タブで、[クラスターの終了] を見つけて [編集] を選択します。

  4. [自動終了を有効にする] を選択または選択解除して、機能を有効または無効にします。自動終了を有効にする場合は、クラスターが自動終了するまでのアイドル時間および分数を指定します。次に [変更の保存] を選択して確定します。

Old console
古いコンソールでクラスターの作成時に自動終了ポリシーをアタッチするには
  1. 新しい Amazon EMR コンソールに移動し、サイドナビゲーションから [古いコンソールに切り替え] を選択します。古いコンソールに切り替えたときの動作の詳細については、「Using the old console」を参照してください。

  2. [Create cluster] (クラスターを作成) を選択します。

  3. [ハードウェア構成] を選択して、[Auto-termination] (自動終了) を選択します。

  4. クラスターが自動終了するまでのアイドル時間および分数を指定します。デフォルトのアイドル時間は 1 時間です。

  5. 必要に応じてアプリケーションの他の設定を選択し、[Create cluster (クラスターの作成)] を選択します。

古いコンソールを使用して、実行中のクラスターで自動終了ポリシーをアタッチ、更新、または削除するには
  1. 新しい Amazon EMR コンソールに移動し、サイドナビゲーションから [古いコンソールに切り替え] を選択します。古いコンソールに切り替えたときの動作の詳細については、「Using the old console」を参照してください。

  2. [クラスター] を選択し、更新するクラスターを選択します。

  3. クラスター詳細ページで、[ハードウェア] を選択します。

  4. [自動終了を有効にする] を選択または選択解除して、機能を有効または無効にします。自動終了を有効にする場合は、クラスターが自動終了するまでのアイドル時間および分数を指定します。

AWS CLI

開始する前に

自動終了ポリシーを使用する前に、AWS CLI を最新バージョンに更新することをお勧めします。手順については、「AWS CLI のインストール、更新、およびアンインストール」を参照してください。

AWS CLI を使用して自動終了ポリシーをアタッチまたは更新するには
  • aws emr put-auto-termination-policy コマンドを使用して、クラスターに自動終了ポリシーをアタッチまたは更新します。

    次の例では、IdleTimeout に 3600 秒を指定しています。IdleTimeout を指定しない場合、この値はデフォルトで 1 時間に設定されます。

    aws emr put-auto-termination-policy \ --cluster-id <your-cluster-id> \ --auto-termination-policy IdleTimeout=3600
    注記

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

    aws emr create-cluster コマンドを使用する場合は、--auto-termination-policy の値を指定することもできます。AWS CLI での Amazon EMR コマンドの使用の詳細については、「AWS CLI コマンドリファレンス」を参照してください。

AWS CLI を使用して自動終了ポリシーを削除するには
  • aws emr remove-auto-termination-policy コマンドを使用して、クラスターから自動終了ポリシーを削除します。AWS CLI での Amazon EMR コマンドの使用の詳細については、「AWS CLI コマンドリファレンス」を参照してください。

    aws emr remove-auto-termination-policy --cluster-id <your-cluster-id>