ユニフォームインスタンスグループの設定 - Amazon EMR

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

ユニフォームインスタンスグループの設定

インスタンスグループの構成では、各ノードタイプ (マスター、コア、またはタスク) は、インスタンスに対して同じインスタンスタイプおよび同じ購入オプションで構成されます。オンデマンドまたはスポット。これらの設定は、インスタンスグループを作成するときに指定します。この価格を後で変更することはできません。ただし、同じタイプと同じ購入オプションのインスタンスを、コアインスタンスグループおよびタスクインスタンスグループに追加できます。インスタンスを削除することもできます。

クラスターのオンデマンドインスタンスが、アカウントで使用可能なオープンキャパシティー予約(インスタンスタイプ、プラットフォーム、テナンシー、アベイラビリティーゾーン)の属性と一致する場合、キャパシティ予約は自動的に適用されます。マスターノード、コアノード、およびタスクノードに対してオープンキャパシティ予約を使用できます。ただし、インスタンスグループを使用してクラスターをプロビジョニングする場合、ターゲットキャパシティー予約を使用したり、一致する属性を持つオープンキャパシティ予約でインスタンスが起動しないようにすることはできません。ターゲットキャパシティ予約を使用するか、インスタンスがオープンキャパシティ予約に起動しないようにする場合は、代わりにインスタンスフリートを使用します。詳細については、「」を参照してくださいインスタンスフリートでキャパシティ予約を使用する

クラスターの作成後に異なるインスタンスタイプを追加するには、タスクインスタンスグループを追加することができます。インスタンスグループごとに、異なるインスタンスタイプと購入オプションを選択できます。詳細については、「」を参照してくださいクラスターリソースのスケーリング

インスタンスを起動するとき、オンデマンドインスタンスのキャパシティ予約プリファレンスはデフォルトでopen。これにより、一致する属性 (インスタンスタイプ、プラットフォーム、アベイラビリティーゾーン) を持つオープンなキャパシティーの予約で実行できます。オンデマンドキャパシティー予約の詳細については、「」を参照してください。インスタンスフリートでキャパシティ予約を使用する

このセクションでは、ユニフォームインスタンスグループでクラスターを作成する手順を説明します 手動でのインスタンスグループの追加または削除、あるいは移動スケーリングによって既存のインスタンスグループを変更する詳細については、「 クラスターを管理する」を参照してください。

コンソールを使用してユニフォームインスタンスグループを設定する

次の手順は、クラスターを作成するときの [Advanced Options (詳細オプション)] を示しています。[Quick options (クイックオプション)] によっても、インスタンスグループ構成でクラスターを作成できます。[Quick options (クイックオプション)] を使用する詳細については、入門チュートリアルを参照してください。

コンソールを使用してユニフォームインスタンスグループでクラスターを作成するには

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

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

  3. [Go to advanced options (詳細オプションに移動する)] を選択し、[ソフトウェアの構成] オプションに入り、[次へ] を選択します。

  4. [Hardware Configuration (ハードウェア構成)] 画面で、[Uniform instance groups (ユニフォームインスタンスグループ)] を選択した状態のままにします。

  5. [Network (ネットワーク)] を選択し、クラスター用の [EC2 Subnet (EC2 サブネット)] を選択します。選択したサブネットが、各サブネットにリストされたアベイラビリティーゾーンと関連付けられます。詳細については、「」を参照してくださいネットワーキングを設定する

    注記

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

  6. 各 [Node type (ノードタイプ)] 行で次の手順に従います。

    • []ノードの種類、インスタンスグループのデフォルト名を変更する場合、鉛筆アイコンを選択してわかりやすい名前を入力します。を削除する場合タスクインスタンスグループの [X] アイコンを選択します。選択タスクインスタンスグループの追加[] を追加するにはタスクインスタンスグループ。

    • []インスタンスタイプで、鉛筆アイコンを選択し、そのノードタイプに使用するインスタンスタイプを選択します。

      重要

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

    • []インスタンスタイプで、の鉛筆アイコンを選択します設定をクリックし、インスタンスグループごとにアプリケーションの設定を編集します。

    • [Instance count (インスタンス数)] に、各ノードタイプに使用するインスタンス数を入力します。

    • []購入オプション、選ぶオンデマンドまたはスポット。[スポット] を選択した場合は、スポットインスタンスの上限価格のオプションを選択します。デフォルトでは、次にようになります。オンデマンドを最高価格として使用が選択されています。[最高価格 ¥/時の設定] を選択し、上限価格を入力できます。選択した [EC2 Subnet (EC2 サブネット)] のアベイラビリティーゾーンは、[Maximum Spot price (最大スポット料金)] を下回っています。

      ヒント

      の情報ツールチップで一時停止するスポットをクリックして、現在のリージョンのアベイラビリティーゾーンの現在のスポット価格を確認します。最低のスポット価格は緑色で表示されます。[EC2 Subnet (EC2 サブネット)] の選択の変更に、この情報を使用できます。

    • [Auto Scaling for Core and Task node types (コアノードタイプとタスクノードタイプの自動スケーリング)] で、鉛筆アイコンをクリックして、自動スケーリングオプションを設定します。詳細については、「」を参照してくださいインスタンスグループのカスタムポリシーで自動スケーリングを使用する

  7. 必要に応じて [Add task instance group (タスクインスタンスグループの追加)] を選択して、前の手順で説明したように設定します。

  8. [次へ] を選択してクラスター設定を変更し、続いてクラスターを起動します。

を使用するAWS CLIユニフォームインスタンスグループでクラスターを作成するには

を使用してクラスターのインスタンスグループ設定を指定するにはAWS CLIで、create-clusterコマンドとともに--instance-groupsパラメータ。を指定しない限り、Amazon EMR はオンデマンドインスタンスオプションを引き継ぎます。BidPriceインスタンスグループの引数。例create-clusterオンデマンドインスタンスとさまざまなクラスターオプションで、ユニフォームインスタンスグループを起動するコマンドaws Amazon EMR create-cluster help コマンドラインで、またはを参照してくださいcreate-clusterAWS CLIコマンドリファレンス

AWS CLIを使用して、スポットインスタンスを使用するクラスターにユニフォームインスタンスグループを作成できます。提供されるスポット価格はアベイラビリティーゾーンによって異なります。CLI または API を使用する場合、AvailabilityZone 引数 (EC2-classic ネットワークを使用している場合)、または --ec2-attributes パラメータの SubnetID 引数でアベイラビリティーゾーンを指定することができます。選択するアベイラビリティーゾーンまたはサブネットはクラスターに適用されるため、すべてのインスタンスグループに使用されます。アベイラビリティーゾーンまたはサブネットを明示的に指定しない場合、Amazon EMR はクラスターの起動時に最低のスポット料金のアベイラビリティーゾーンを選択します。

次の例は、すべてがスポットインスタンスを使用しているマスター、コア、および 2 つのタスクインスタンスグループを作成する、 create-cluster コマンドを示しています。置換MyKeyを Amazon EC2 のkey pair 名前にします。

注記

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

aws Amazon EMR create-cluster --name "MySpotCluster" --release-label emr-5.33.0 \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-groups InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,BidPrice=0.25 \ InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=2,BidPrice=0.03 \ InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=4,BidPrice=0.03 \ InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=2,BidPrice=0.04

CLI を使用して、インスタンスグループ内のインスタンスタイプごとに一意のカスタム AMI を指定するユニフォームインスタンスグループクラスターを作成できます。これにより、同じインスタンスグループ内で異なるインスタンスアーキテクチャを使用できます。各インスタンスタイプは、アーキテクチャが一致するカスタム AMI を使用する必要があります。たとえば、x86_64 アーキテクチャのカスタム AMI を使用して m5.xlarge インスタンスタイプを構成し、m6g.xlarge インスタンスタイプを対応するAWS AARCH64(ARM) アーキテクチャカスタム AMI。

次の例は、2 つのインスタンスタイプで作成され、それぞれ独自のカスタム AMI を持つユニフォームインスタンスグループクラスターを示しています。カスタム AMI は、クラスタレベルではなく、インスタンスタイプレベルでのみ指定されることに注意してください。これは、クラスタレベルでのインスタンスタイプ AMI と AMI 間の競合を回避するため、クラスターの起動に失敗します。

aws Amazon EMR create-cluster --instance-groups InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 InstanceGroupType=CORE,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-234567

実行中のクラスターに追加するインスタンスグループに、複数のカスタム AMI を追加できます。-CustomAmiId引数は、add-instance-groupsコマンドを次の例で示します。

aws Amazon EMR add-instance-groups —cluster-id j-123456 —instance-groups InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456

Java SDK を使用してインスタンスグループを作成する

クラスターのインスタンスグループの構成を指定する InstanceGroupConfig オブジェクトをインスタンス化します。スポットインスタンスを使用するには、 withBidPrice オブジェクトで、 withMarket および InstanceGroupConfig プロパティを設定します。次のコードは、スポットインスタンスを実行するマスター、コア、およびタスクインスタンスグループを定義する方法を示します。

InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig() .withInstanceCount(1) .withInstanceRole("MASTER") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.25"); InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig() .withInstanceCount(4) .withInstanceRole("CORE") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.03"); InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig() .withInstanceCount(2) .withInstanceRole("TASK") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.10");