Amazon EMR でクラスターサイズ変更のプロビジョニングのタイムアウト期間をカスタマイズする - Amazon EMR

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

Amazon EMR でクラスターサイズ変更のプロビジョニングのタイムアウト期間をカスタマイズする

クラスター内の各フリートにスポットインスタンスをプロビジョニングするためのタイムアウト期間を定義できます。Amazon EMR はスポット容量をプロビジョニングできない場合、サイズ変更リクエストをキャンセルし、追加のスポット容量をプロビジョニングしようとする試みを停止します。クラスター作成時にタイムアウトを設定できます。実行中のクラスターでは、タイムアウトを追加や更新できます。

タイムアウト期間が終了すると、Amazon EMR は自動的にイベントを Amazon CloudWatch Events ストリームに送信します。では CloudWatch、指定したパターンに従ってイベントを照合するルールを作成し、イベントをターゲットにルーティングしてアクションを実行できます。例えば、E メール通知を送信するようにルールを設定できます。ルールの作成方法の詳細については、「を使用した Amazon EMR イベントのルールの作成 CloudWatch」を参照してください。さまざまなイベントの詳細については、「インスタンスフリートの状態変更イベント」を参照してください。

クラスターのサイズ変更におけるプロビジョニングのタイムアウトの例

AWS CLIでサイズ変更のプロビジョニングのタイムアウトを指定する

次の例では、create-cluster コマンドを使用して、サイズ変更のプロビジョニングのタイムアウトを追加しています。

aws emr create-cluster \ --release-label emr-5.35.0 \ --service-role EMR_DefaultRole \ --ec2-attributes '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-XXXXX"]}' \ --instance-fleets '[{"InstanceFleetType":"MASTER","TargetOnDemandCapacity":1,"TargetSpotCapacity":0,"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":100,"InstanceType":"m5.xlarge"}],"Name":"Master - 1"},{"InstanceFleetType":"CORE","TargetOnDemandCapacity":1,"TargetSpotCapacity":1,"LaunchSpecifications":{"SpotSpecification":{"TimeoutDurationMinutes":120,"TimeoutAction":"SWITCH_TO_ON_DEMAND"},"OnDemandSpecification":{"AllocationStrategy":"lowest-price"}},"ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":20},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":25}},"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":1,"InstanceType":"m5.xlarge"}],"Name":"Core - 2"}]'

次の例では、modify-instance-fleet コマンドを使用して、サイズ変更のプロビジョニングのタイムアウトを追加しています。

aws emr modify-instance-fleet \ --cluster-id j-XXXXXXXXXXXXX \ --instance-fleet '{"InstanceFleetId":"if-XXXXXXXXXXXX","ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":30},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":60}}}' \ --region us-east-1

次の例では、add-instance-fleet-command を使用して、サイズ変更のプロビジョニングのタイムアウトを追加しています。

aws emr add-instance-fleet \ --cluster-id j-XXXXXXXXXXXXX \ --instance-fleet '{"InstanceFleetType":"TASK","TargetOnDemandCapacity":1,"TargetSpotCapacity":0,"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":100,"InstanceType":"m5.xlarge"}],"Name":"TaskFleet","ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":30},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":35}}}' \ --region us-east-1

でサイズ変更と起動のプロビジョニングタイムアウトを指定する AWS CLI

次の例では、create-cluster コマンドを使用して、サイズ変更と起動のプロビジョニングのタイムアウトを追加しています。

aws emr create-cluster \ --release-label emr-5.35.0 \ --service-role EMR_DefaultRole \ --ec2-attributes '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-XXXXX"]}' \ --instance-fleets '[{"InstanceFleetType":"MASTER","TargetOnDemandCapacity":1,"TargetSpotCapacity":0,"LaunchSpecifications":{"OnDemandSpecification":{"AllocationStrategy":"lowest-price"}},"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":100,"InstanceType":"m5.xlarge"}],"Name":"Master - 1"},{"InstanceFleetType":"CORE","TargetOnDemandCapacity":1,"TargetSpotCapacity":1,"LaunchSpecifications":{"SpotSpecification":{"TimeoutDurationMinutes":120,"TimeoutAction":"SWITCH_TO_ON_DEMAND"},"OnDemandSpecification":{"AllocationStrategy":"lowest-price"}},"ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":20},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":25}},"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":1,"InstanceType":"m5.xlarge"}],"Name":"Core - 2"}]'

サイズ変更のプロビジョニングのタイムアウトに関する考慮事項

インスタンスフリートに対してクラスターのプロビジョニングのタイムアウトを設定するときは、以下の動作を考慮してください。

  • スポットインスタンスとオンデマンドインスタンスの両方でプロビジョニングのタイムアウトを設定できます。プロビジョニングの最小タイムアウトは 5 分です。プロビジョニングの最大タイムアウトは 7 日間です。

  • プロビジョニングのタイムアウトは、インスタンスフリートを使用する EMR クラスターにのみ設定できます。コアフリートとタスクフリートはそれぞれ個別に設定する必要があります。

  • クラスターの作成時に、プロビジョニングのタイムアウトを設定できます。実行中のクラスターに対してタイムアウトを追加したり、既存のタイムアウトを更新したりできます。

  • 複数のサイズ変更操作を送信すると、Amazon EMR は各サイズ変更操作のプロビジョニングのタイムアウトを追跡します。例えば、クラスターのプロビジョニングのタイムアウトを 60 分に設定します。次に、時間 T1 にサイズ変更操作 R1 を送信します。時間 T2 に 2 つ目のサイズ変更操作 R2 を送信します。R1 のプロビジョニングのタイムアウト期限は T1 + 60 分です。R2 のプロビジョニングのタイムアウト期限は T2 + 60 分です。

  • タイムアウト時間が過ぎる前に新しいスケールアップのサイズ変更操作を送信した場合、Amazon EMR は EMR クラスターの容量をプロビジョニングし続けようとします。