インスタンスフリートを構成する - Amazon EMR

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

インスタンスフリートを構成する

注記

インスタンスフリート設定は、5.0.0 および 5.0.3 を除く Amazon EMR リリースバージョン 4.8.0 以降でのみ使用できます。

Amazon EMR クラスターのインスタンスフリート設定では、Amazon EC2 インスタンスのさまざまなプロビジョニングオプションを選択でき、クラスター内のノードタイプごとに柔軟で弾力性のあるリソース戦略を開発できます。

インスタンスフリート設定では、ターゲット容量forオンデマンドインスタンスおよびスポットインスタンス各艦隊内。クラスターを起動すると、Amazon EMR はターゲットが満たされるまでインスタンスをプロビジョニングします。価格の値上げまたはインスタンスの障害のために Amazon EC2 が実行中のクラスターのスポットインスタンスを再利用する場合、Amazon EMR は指定するインスタンスタイプのいずれかで、そのインスタンスを置き換えようとします。これにより、スポット料金の急激な増加中に容量を再取得することが容易になります。

Amazon EMR がターゲットを満たすときに使用するフリートごとに最大 5 つの Amazon EC2 インスタンスタイプを指定できます。また、を使用してクラスターを作成する場合は、フリートごとに最大 30 の Amazon EC2 インスタンスタイプを指定できます。AWS CLIまたはAmazon EMR APIと配分戦略オンデマンドインスタンスとスポットインスタンスの場合。

また、異なるアベイラビリティーゾーンに複数のサブネットを選択することもできます。Amazon EMR がクラスターを起動するときは、これらのサブネットで、指定されたインスタンスと購入オプションを探します。Amazon EMR がAWS1 つ以上のアベイラビリティーゾーンで大規模なイベントが発生すると、Amazon EMR は、影響を受けるアベイラビリティーゾーンからトラフィックをルーティングし、選択内容に従って代替アベイラビリティーゾーンでクラスターを起動しようとします。

Considerations

インスタンスフリートを Amazon EMR で使用するときは、以下について検討します。

  • インスタンスフリートは、ノードタイプ (マスター、コア、タスク) あたり 1 つのみ作成できます。を使用してクラスターを作成するときに、各フリートに最大 5 つの Amazon EC2 インスタンスタイプ(またはインスタンスフリートごとに最大 30 のタイプ)を指定できます。AWS CLIまたはAmazon EMR APIとインスタンスフリートに対する配分戦略).

  • Amazon EMR は、スポット購入オプションとオンデマンド購入オプションの両方で、指定された Amazon EC2 インスタンスタイプのいずれかまたはすべてを選択します。

  • コアフリートとタスクフリートのスポットおよびオンデマンドインスタンスのターゲット容量を確立できます。ターゲットに対してカウントされる、各 Amazon EC2 インスタンスに割り当てられた vCPU または汎用ユニットを使用します。Amazon EMR は各ターゲット容量が完全に満たされるまでインスタンスをプロビジョニングします。マスターフリートの場合、ターゲットは常に 1 つです。

  • 1 つのサブネット (アベイラビリティーゾーン) または範囲を選択できます。範囲を選択した場合、Amazon EMR はアベイラビリティーゾーンで最適な容量をプロビジョニングします。

  • スポットインスタンスのターゲット容量を指定するとき、次のことを実行します。

    • インスタンスタイプごとに、最大スポット料金を指定します。スポット料金が最大スポット料金を下回る場合、Amazon EMR はスポットインスタンスをプロビジョニングします。お客様にご負担いただくのはスポット料金であり、必ずしも最大スポット料金ではありません。

    • フリートごとにスポットインスタンスをプロビジョニングするためのタイムアウト期間を定義します。Amazon EMR がスポットキャパシティーをプロビジョニングできない場合は、代わりにクラスターを終了させるか、オンデマンド容量のプロビジョニングに切り替えることができます。

  • フリートごとに、割り当て戦略(オンデマンドインスタンスの最低価格、スポットインスタンス用にキャパシティ最適化)を適用することを選択できます。

  • オンデマンドを使用する各フリートについてallocation strategy - lowest-priceでは、キャパシティ予約オプションを適用するように選択できます。

  • クラスターを起動する前に、サブネットサイズを確認してください。タスクフリートを使用してクラスターをプロビジョニングし、対応するサブネットに十分な IP アドレスがない場合、フリートはエラーでクラスターを終了するのではなく、一時停止状態になります。この問題を回避するには、サブネット内の IP アドレスの数を増やすことをお勧めします。

インスタンスフリートオプション

次のガイドラインを使用して、インスタンスフリートオプションについて理解してください。

ターゲット容量の設定

コアフリートとタスクフリートのターゲット容量を指定します。この操作を行うと、Amazon EMR がプロビジョニングするオンデマンドインスタンスとスポットインスタンスの数が決まります。インスタンスを指定するときは、ターゲットに対してカウントされる各インスタンスの数を決定します。オンデマンドインスタンスがプロビジョニングされると、オンデマンドターゲットに対してカウントされます。スポットインスタンスの場合も同様です。マスターフリートはコアフリートやタスクフリートとは異なり、常に 1 つのインスタンスです。したがって、このフリートのターゲット容量は常に 1 になります。

コンソールを使用する場合、デフォルトではターゲット容量のカウントとして、Amazon EC2 インスタンスタイプの vCPUs が使用されます。これを [Generic units (汎用ユニット)] に変更し、各 EC2 インスタンスタイプの数を指定できます。AWS CLI を使用する場合は、各インスタンスタイプに手動で汎用ユニットを割り当てることができます。

重要

を使用してインスタンスタイプを選択すると、AWS Management Consoleとすると、vCPUそれぞれに表示されます。インスタンスタイプは、そのインスタンスタイプの YARN vcore の数であり、そのインスタンスタイプの EC2 vCPUs の数ではありません。各インスタンスタイプの vCPUs 数の詳細については、「」を参照してください。Amazon EC2 インスタンスタイプ

フリートごとに、最大 5 つの Amazon EC2 インスタンスタイプを指定します。[] を使用した場合インスタンスフリートに対する配分戦略を使用して、クラスターを作成します。AWS CLIまたは、Amazon EMR API を使用する場合は、インスタンスフリートあたり最大 30 つの EC2 インスタンスタイプを指定できます。Amazon EMR は、これらの EC2 インスタンスタイプの任意の組み合わせを選択して、ターゲット容量を満たします。Amazon EMR は完全にターゲット容量を満たそうとするため、超過が発生する可能性があります。たとえば、2 つの満たされていないユニットがある場合、Amazon EMR は 5 ユニットのインスタンスしかプロビジョニングできず、インスタンスは引き続きプロビジョニングされます。つまり、ターゲット容量を 3 ユニット超過します。

ターゲット容量を減らして実行中のクラスターのサイズを変更する場合、Amazon EMR は新しいターゲットに合わせてアプリケーションタスクを完了し、インスタンスを削除しようとします。詳細については、「」を参照してくださいタスクの完了時に終了 Amazon EMR には、サイズ変更オペレーションを完了するための 60 分のタイムアウトがあります。場合によっては、60 分後にノードでまだ実行中のタスクがありますが、Amazon EMR はサイズ変更オペレーションが正常に実行され、新しいターゲットが満たされていないと報告することがあります。

起動オプション

スポットインスタンスの場合、スポット価格の上限フリート内のインスタンスタイプごとに。この料金は、オンデマンド料金のパーセンテージまたは特定の金額として設定できます。アベイラビリティーゾーンの現在のスポット料金が最大スポット料金を下回っている場合、Amazon EMR はスポットインスタンスをプロビジョニングします。お客様にご負担いただくのはスポット料金であり、必ずしも最大スポット料金ではありません。

注記

期間が定義されたスポットインスタンス (スポットブロックとも呼ばれます) は、2021 年 7 月 1 日以降の新規のお客様は、ご利用いただけません。既に、期間が指定されたスポットインスタンスを使用した経験をお持ちのお客様については、2022 年 12 月 31 日まで、この機能を引き続きサポートいたします。

各フリートで、[Provisioning timeout (プロビジョニングのタイムアウト)] を定義することもできます。タイムアウトは、クラスターが作成時に容量をプロビジョニングしているときに、指定どおりにターゲット容量を満たすために十分な数のスポットインスタンスをプロビジョニングできない場合に適用されます。タイムアウト期間と、実行するアクションを指定します。クラスターを終了させるか、残りのスポット容量を満たすためにオンデマンド容量のプロビジョニングに切り替えることができます。オンデマンドへの切り替えを選択した場合、残りのスポット容量は、タイムアウト後に実質的にオンデマンドターゲット容量に追加されます。

Amazon EMR 5.12.1 以降で利用可能で、最適化されたキャパシティ割り当てでスポットおよびオンデマンドインスタンスフリートを起動するオプションがあります。この割り当てストラテジーオプションは、AWS Management Consoleまたは API の使用RunJobFlow。割り当てストラテジーオプションを使用するには、追加のサービスロールの権限が必要です。デフォルトの Amazon EMR サービスロールと管理ポリシーを使用する場合 (EMR_DefaultRoleおよびクラスターの AmazonemrServicePolicy_v2) では、割り当て戦略オプションの権限がすでに含まれています。デフォルトの Amazon EMR サービスロールと管理ポリシーを使用していない場合は、このオプションを使用するには、それらを追加する必要があります。「Amazon EMR のサービスロール (EMR ロール)」を参照してください。

スポットインスタンスの詳細については、「」を参照してください。スポットインスタンスLinux インスタンス用 Amazon EC2 ユーザーガイドを参照してください。オンデマンドインスタンスの詳細については、「」を参照してください。オンデマンドインスタンスLinux インスタンス用 Amazon EC2 ユーザーガイドを参照してください。

最低価格の割り当て戦略でオンデマンドインスタンスフリートを起動する場合は、キャパシティ予約を使用するオプションがあります。キャパシティ予約オプションは、Amazon EMR API を使用して設定できます。RunJobFlow。キャパシティの予約には、これらのオプションを使用するには、追加のサービスロール権限が必要です。「割り当てストラテジーを使用するために必要なIAM アクセス許可」を参照してください。

複数サブネット (アベイラビリティーゾーン) オプション

インスタンスフリートを使用する場合、VPC 内で複数の Amazon EC2 サブネットを指定できます。それぞれが異なるアベイラビリティーゾーンに対応しています。EC2-Classic を使用する場合はアベイラビリティーゾーンを明示的に指定します。Amazon EMR は、フリートの指定に従って、インスタンスを起動するために最適なアベイラビリティーゾーンを識別します。インスタンスは、1 つのアベイラビリティーゾーンのみで常にプロビジョニングされます。プライベートサブネットまたはパブリックサブネットを選択できますが、2 つを組み合わせることはできません。指定するサブネットは同じ VPC 内になければなりません。

マスターノードの設定

マスターインスタンスフリートは単一インスタンスにすぎないため、その構成はコアインスタンスフリートとタスクインスタンスフリートとは多少異なります。マスターインスタンスフリートは 1 つのみのインスタンスで構成されているため、マスターインスタンスフリートにはオンデマンドまたはスポットのいずれかを選択します。コンソールを使用してインスタンスフリートを作成する場合、選択する購入オプションのターゲット容量は 1 に設定されます。AWS CLI を使用する場合、TargetSpotCapacity または TargetOnDemandCapacity のいずれかを必要に応じて 1 に設定します。マスターインスタンスフリートには最大 5 つのインスタンスタイプを選択できます(オンデマンドインスタンスまたはスポットインスタンスの割り当てストラテジーオプションを使用する場合は最大 30)。ただし、Amazon EMR が異なるタイプの複数のインスタンスをプロビジョニングする可能性があるコアインスタンスフリートとタスクインスタンスフリートとは異なり、Amazon EMR はマスターインスタンスフリートにプロビジョニングするために 1 つのインスタンスタイプを選択します。

インスタンスフリートに対する配分戦略

Amazon EMR バージョン 5.12.1 以降では、各クラスターノードのオンデマンドインスタンスとスポットインスタンスで割り当てストラテジーオプションを使用できます。を使用してクラスターを作成する場合AWS CLIまたは Amazon EMR API と割り当てストラテジーオプションでは、デフォルトの Amazon EMR クラスターインスタンスフリート設定を使用する場合に許可される 5 つではなく、フリートごとに最大 30 の Amazon EC2 インスタンスタイプを指定できます。クラスターのプロビジョニング、より正確なスポットインスタンスの割り当て、およびスポットインスタンスの中断の軽減のために、割り当てストラテジーオプションを使用することをお勧めします。

  • オンデマンドインスタンス最低価格のストラテジーを使用して、最低価格のインスタンスを最初に起動します。オンデマンドインスタンスを起動すると、アカウント内でオープンまたはターゲットキャパシティー予約を使用するオプションがあります。マスターノード、コアノード、およびタスクノードに対してオープンキャパシティ予約を使用できます。インスタンスフリートの割り当て戦略でオンデマンドインスタンスを使用すると、容量が不足することがあります。多様化し、容量が不足する可能性を減らすために、インスタンスタイプの数を増やすことをお勧めします。詳細については、「」を参照してくださいインスタンスフリートでキャパシティ予約を使用する

  • スポットインスタンス容量最適化戦略を使用します。これは、起動中のインスタンス数に最適な容量を持つスポットインスタンスプールからスポットインスタンスを起動します。

割り当て戦略オプションを使用するには、デフォルトの Amazon EMR サービスロールと Amazon EMR 管理ポリシー(emr_defaultRole および AmazonemrServicePolicy_v2)に自動的に含まれるいくつかの IAM アクセス権限が必要です。クラスターにカスタムサービスロールまたは管理ポリシーを使用する場合は、クラスターを作成する前にこれらのアクセス許可を追加する必要があります。詳細については、「」を参照してください割り当てストラテジーを使用するために必要なIAM アクセス許可

オンデマンド割り当てストラテジーオプションを使用すると、オプションのオンデマンドキャパシティ予約(ODCR)を使用できます。キャパシティ予約オプションを使用すると、Amazon EMR クラスターに対してリザーブドキャパシティーを最初に使用するためのプリファレンスを指定できます。これを使用して、重要なワークロードが、オープンまたはターゲットの ODCR を使用してすでに予約済みの容量を使用できるようにすることができます。クリティカルでないワークロードの場合、キャパシティ予約プリファレンスを使用して、リザーブドキャパシティを消費するかどうかを指定できます。

キャパシティーの予約は、その属性 (インスタンスタイプ、プラットフォーム、およびアベイラビリティーゾーン) に一致するインスタンスでのみ使用できます。デフォルトでは、インスタンス属性と一致するオンデマンドインスタンスをプロビジョニングするときに、Amazon EMR によってオープンキャパシティーの予約が自動的に使用されます。キャパシティーの予約の属性と一致する実行中のインスタンスがない場合は、属性と一致するインスタンスを起動するまでは使用されません。クラスターの起動時にキャパシティ予約を使用しない場合は、キャパシティ予約プリファレンスをに設定する必要があります。なし起動オプションで。

ただし、特定のワークフローに対してキャパシティーの予約を指定することもできます。これにより、リザーブドキャパシティーで実行できるインスタンスを明示的に制御できます。オンデマンドキャパシティー予約の詳細については、「」を参照してください。インスタンスフリートでキャパシティ予約を使用する

割り当てストラテジーを使用するために必要なIAM アクセス許可

おれのAmazon EMR のサービスロール (EMR ロール)オンデマンドまたはスポットインスタンスフリートの割り当てストラテジーオプションを使用するクラスターを作成するには、追加の権限が必要です。

必要なアクセス許可は、デフォルトの Amazon EMR サービスロールと Amazon EMR 管理ポリシーに自動的に含まれます (EMR_DefaultRoleとAmazonemrServicePolicy_v2)。クラスターのカスタムサービスロールまたは管理ポリシーを使用する場合は、次のアクセス許可を追加する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": "*" } }

オープンまたはターゲットキャパシティ予約を使用するクラスターを作成するために必要なサービスロールのアクセス許可を次に示します。割り当てストラテジーオプションの使用に必要な権限に加えて、これらの権限を含める必要があります。

例 サービスロールキャパシティ予約のポリシードキュメント

オープンキャパシティーの予約を使用するには、次の追加のアクセス許可を含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": "*" } ] }

ターゲット容量予約を使用するには、次の追加のアクセス許可を含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": "*" } ] }

コンソールを使用してインスタンスフリートを構成する

インスタンスフリートを使用してクラスターを作成するには、詳細オプションAmazon EMR コンソールで設定します。

コンソールを使用してインスタンスフリートでクラスターを作成するには

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

  2. [クラスターの作成] を選択します。

  3. コンソールウィンドウの上部で、詳細オプションに移動と入力します。ソフトウェア設定オプションを選択し、

  4. []クラスター構成で、インスタンスフリート。インスタンスフリートオプションを選択すると、オプションが表示され、ターゲット容量オンデマンドインスタンスとスポットインスタンスのうち、クラスターノードとインスタンステーブル。

  5. [Network] に値を入力します。の VPC を選択した場合ネットワークで、シングルを選択します。EC2 サブネットまたは、Ctrl キーを押しながらクリックして複数の Amazon EC2 サブネットを選択します。選択するサブネットは同じ種類 (パブリックまたはプライベート) である必要があります。1 つのみ選択した場合、クラスターはそのサブネット内で起動します。グループを選択した場合は、クラスターの起動時にグループから最適なサブネットが選択されます。

    注記

    アカウントおよびリージョンによっては、選択オプションが提供される場合があります。EC2-Classic でを起動するforネットワーク。そのオプションを選択する場合、[EC2 Subnets (EC2 サブネット)] ではなく、[EC2 Availability Zones (EC2 アベイラビリティーゾーン)] から 1 つ以上を選択します。詳細については、「」を参照してください。Amazon EC2 とAmazon VPCLinux インスタンス用 Amazon EC2 ユーザーガイド

  6. []配分戦略[] で、[] チェックボックスをオンにして、配賦戦略を適用します。

    [新しい配分戦略] オプションを使用しない場合は、このチェックボックスをオフのままにします。

  7. Eacyノードの種類、インスタンスフリートのデフォルト名を変更する場合、鉛筆アイコンを選択してわかりやすい名前を入力します。を削除する場合タスクインスタンスフリートで、[タスク] 行の右側にある X 印のアイコンを選択します。

  8. 選択フリートにインスタンスタイプを追加/削除するをクリックし、マスターインスタンスフリートとコアインスタンスフリートのリストから最大 5 つのインスタンスタイプを選択します。タスクインスタンスフリートには最大 15 のインスタンスタイプを追加します。Amazon EMR は、クラスターを起動するときにこれらのインスタンスタイプの任意の組み合わせをプロビジョニングする可能性があります。

  9. コアおよびタスクインスタンスタイプごとに、加重キャパシティの定義方法を選択します(各インスタンスは X 単位としてカウントされます) の場合。各フリートインスタンスタイプの YARN vCore の数は、デフォルトの加重キャパシティーユニットとして使用されますが、この値は、アプリケーションに適した任意の単位に変更できます。

  10. []ターゲット容量で、フリートごとに必要なオンデマンドインスタンスとスポットインスタンスの総数を定義します。EMR は、フリート内のインスタンスが、オンデマンドおよびスポットターゲットキャパシティの要求されたユニットを確実に満たすようにします。フリートにオンデマンドユニットまたはスポットユニットが指定されていない場合、そのフリートのキャパシティはプロビジョニングされません。

  11. フリートがスポットの Target 容量で構成されている場合、オンデマンド料金の割合として最大スポット料金を入力するか、ドル ($) 金額を米ドルで入力します。

  12. インスタンスタイプがプロビジョニングされるときに EBS ボリュームをアタッチするには、[EBS Storage (EBS ストレージ)] の隣にある鉛筆を選択してから、EBS 構成オプションを入力します。

  13. のインスタントカウントを設定した場合スポット単位セット詳細スポットオプション以下のガイドラインに従います。

    • プロビジョニングタイムアウト— これらの設定を使用して、Amazon EMR がスポットインスタンスをプロビジョニングできない場合に、フリートインスタンスタイプを指定します。分数でタイムアウト期間を入力し、[Terminate the cluster (クラスターを終了する)] か、[Switch to provisioning On-Demand Instances (オンデマンドインスタンスのプロビジョニングに切り替える)] かを選択します。オンデマンドインスタンスへの切り替えを選択をする場合、オンデマンドインスタンスの割り当て済み容量はスポットインスタンスのターゲット容量にカウントされ、Amazon EMR はスポットインスタンスのターゲット容量を満たすまでオンデマンドインスタンスをプロビジョニングします。

  14. 選択で、クラスター設定を変更し、

  15. 新しい割り当てストラテジーオプションを適用するように選択した場合は、セキュリティオプション設定で、EMR ロールおよびEC2 インスタンスプロファイル割り当てストラテジーオプションに必要な権限が含まれています。そうしないと、クラスターの作成は失敗します。

  16. [クラスターの作成] を選択します。

CLI を使用してインスタンスフリートを設定する

  • インスタンスフリートでクラスターを作成して起動するには、 create-cluster パラメータとともに--instance-fleet コマンドを使用します。

  • クラスター内のインスタンスフリートの構成情報を得るには、list-instance-fleetsコマンド。

  • 作成するクラスターに複数のカスタム Amazon Linux AMI を追加するには、CustomAmiIdそれぞれのオプションInstanceType仕様。要件に合わせて、複数のインスタンスタイプと複数のカスタム AMI を持つインスタンスフリートノードを設定できます。「インスタンスフリート設定でクラスターを作成する」を参照してください。

  • インスタンスフリートのターゲット容量に変更を加えるには、 modify-instance-fleet コマンドを使用します。

  • タスクインスタンスがないクラスターにタスクインスタンスを追加するには、 add-instance-fleetコマンドを使用します。

  • add-instance-fleet コマンドで CustomAmiId 引数を使用して、複数のカスタム AMI をタスクインスタンスフリートに追加できます。「インスタンスフリート設定でクラスターを作成する」を参照してください。

  • インスタンスフリートを作成するときに割り当てストラテジーオプションを使用するには、サービスロールを更新して、次のセクションの例ポリシードキュメントを含めます。

  • オンデマンド割り当て戦略を使用してインスタンスフリートを作成するときに、キャパシティ予約オプションを使用するには、サービスロールを更新して、次のセクションの例ポリシードキュメントを含めます。

  • インスタンスフリートは、デフォルトの EMR サービスロールと Amazon EMR 管理ポリシー(emr_defaultRole および AmazonemrServicePolicy_v2)に自動的に含まれます。クラスターにカスタムサービスロールまたはカスタム管理ポリシーを使用している場合は、次のセクションで割り当て戦略の新しいアクセス許可を追加する必要があります。

インスタンスフリート設定でクラスターを作成する

次の例は、 create-cluster コマンドを、組み合わせ可能なさまざまなオプションを使って実行する方法を示しています。

注記

デフォルト Amazon EMR サービスロールと EC2 インスタンスプロファイルを作成したことがない場合、aws Amazon EMR create-default-rolesを使用して、それらを作成する前にcreate-clusterコマンド。

例: オンデマンドマスター、シングルインスタンスタイプのオンデマンドコア、デフォルト VPC

aws Amazon EMR create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']

例: スポットマスター、シングルインスタンスタイプのスポットコア、デフォルト VPC

aws Amazon EMR create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

例: オンデマンドマスター、シングルインスタンスタイプの混在コア、単一の EC2 サブネット

aws Amazon EMR create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']

例: オンデマンドマスター、複数の加重インスタンスタイプのスポットコア、スポットのタイムアウト、EC2 サブネットの範囲

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}

例: オンデマンドマスター、複数の加重インスタンスタイプを持つ混合コアとタスク、コアスポットインスタンスのタイムアウト、EC2 サブネットの範囲

aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']

例: スポットマスター、コアまたはタスクなし、Amazon EBS 設定、デフォルト VPC

aws Amazon EMR create-cluster --release-label Amazon EMR 5.3.1 -service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']

例 複数のカスタム AMI、複数のインスタンスタイプ、オンデマンドマスター、オンデマンドコア

aws Amazon EMR create-cluster —instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']

例 複数のインスタンスタイプと複数のカスタム AMI を持つ実行中のクラスターにタスクノードを追加する

aws Amazon EMR add-instance-fleet —cluster-id j-123456 —instance-fleet InstanceFleetType=Task,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}', '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']

例 JSON 設定ファイルを使用する

JSON ファイルでインスタンスフリートパラメータを構成してから、インスタンスフリートの唯一のパラメータとして JSON ファイルを参照できます たとえば、次のコマンドは JSON 構成ファイルを参照します。my-fleet-config.json:

aws Amazon EMR create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://my-fleet-config.json

-my-fleet-config.jsonfile は、マスター、コア、およびタスクインスタンスフリートを、次の例で示すように指定します。コアインスタンスフリートは、最大スポット価格を使用します (BidPrice) をオンデマンドの割合として、タスクおよびマスターインスタンスフリートでは、米ドルの文字列として、最大スポット料金 (BidPriceAsPercentageofOnDemandPrice) を使用します。

[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]

インスタンスフリートのターゲット容量を変更する

コマンドを使用して、インスタンスフリートの新しいターゲット容量を指定します modify-instance-fleet 。クラスター ID とインスタンスフリート ID を指定しなければなりません。コマンドを使用してインスタンスフリート ID を取得しますlist-instance-fleets

aws Amazon EMR modify-instance-fleet --cluster-id <cluster-id> / --instance-fleet InstanceFleetId='<instance-fleet-id>',TargetOnDemandCapacity=1,TargetSpotCapacity=1

クラスターにタスクインスタンスフリートを追加する

クラスターにマスターインスタンスフリートおよびコアインスタンスフリートしかない場合、 add-instance-fleet コマンドを使用してタスクインスタンスフリートを追加できます。このコマンドは、タスクインスタンスフリートを追加するためだけに使用できます。

aws Amazon EMR add-instance-fleet --cluster-id <cluster-id> --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,/ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},/ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

クラスター内のインスタンスフリートの構成詳細を取得する

クラスター内のインスタンスフリートの構成情報を得るには、 list-instance-fleets コマンドを使用します。コマンドは、クラスター ID を入力として受け入れます。次の例では、このコマンドと、それによるマスタータスクインスタンスグループとコアタスクインスタンスグループを含むクラスターの出力を示しています。完全な応答構文については、「」を参照してください。ListInstanceFleetsAmazon EMR API リファレンス

list-instance-fleets --cluster-id <cluster-id>
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }