翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Glue 向けの Auto Scaling の使用
Auto Scaling は、AWS Glue ETL および AWS Glue バージョン 3.0 以降のストリーミングジョブで使用できます。
Auto Scaling を有効にすると、次の利点が得られます。
-
AWS Glue は、ジョブ実行の各ステージでの並行処理またはマイクロバッチに応じて自動的にワーカーをクラスターに追加、またはクラスターから削除します。
-
AWS Glue ETL ジョブに割り当てるワーカーの数について実験して判断する必要性を排除します。
-
最大数のワーカーを選択する場合、AWS Glue がワークロードに適したサイズのリソースを選択します。
-
ジョブの実行中にクラスターのサイズがどのように変化するかについては、AWS Glue Studio のジョブ実行の詳細ページで CloudWatch メトリクスを確認できます。
AWS Glue ETL およびストリーミングジョブ向けの Auto Scaling は、AWS Glue ジョブのコンピューティングリソースのオンデマンドでのスケールアップとスケールダウンを可能にします。オンデマンドのスケールアップは、ジョブ実行の起動当初に必要なコンピューティングリソースを割り当てるだけでなく、ジョブ実行中の需要に応じて必要なリソースをプロビジョニングするためにも役立ちます。
Auto Scaling は、ジョブの過程全体での AWS Glue ジョブリソースの動的なスケールダウンもサポートします。ジョブ実行中に Spark アプリケーションにより多くのエグゼキューターが要求されると、クラスター に追加されるワーカーが増えます。 エグゼキュータがアクティブな計算タスクなしでアイドル状態になると、エグゼキュータと対応するワーカーが削除されます。
Auto Scaling が Spark アプリケーション のコストと使用率に役立つ一般的なシナリオを含める Spark ドライバーは、Amazon S3 内の多数のファイルを一覧表示したり、エグゼキューターが非アクティブのときにロードを実行したり、オーバープロビジョニングのために少数のエグゼキューターだけで実行される Spark ステージ、Spark ステージ間でデータスキューや不均一な計算要求を実行します。
要件
Auto Scaling は、AWS Glue バージョン 3.0 以降でのみ利用可能です。Auto Scaling を使用するには、「移行ガイド」に従って既存のジョブをバージョン 3.0 以降の AWS Glue に移行するか、AWS Glue のバージョン 3.0 以降を使用して新しいジョブを作成します。
Auto Scaling は AWS Glue のジョブと G.1X
、G.2X
、G.4X
、G.8X
、または G.025X
(Streaming ジョブ用) ワーカータイプで利用可能です。スタンダード DPU はサポートされていません。
AWS Glue Studio の Auto-Scaling を有効にする
AWS Glue Studio の [Job details] (ジョブ詳細) タブで、タイプに [Spark] または [Spark Streaming] を選択し、[Glue version] (Glue バージョン) には [Glue 3.0
] もしくは [Glue 4.0
] を選択します。次に、[Worker type] (ワーカータイプ) の下にチェックボックスが表示されます。
-
[Automatically scale the number of workers] (ワーカー数を自動的にスケーリングする) を選択します。
-
ワーカーの最大数をセットして、ジョブ実行に投入できるワーカーの最大数を定義します。
AWS CLI または SDK を使用した Auto Scaling の有効化
Auto Scaling を有効にするには、ジョブ実行の AWS CLI から、次の設定で start-job-run
を実行します。
{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X and G.2X are allowed for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }
ETL ジョブ実行が終了したら、get-job-run
を呼び出して、実行されたジョブの実際のリソース使用量を DPU 秒単位で確認することもできます。注: 新しいフィールド [DPUSeconds] は、Auto Scaling が有効になっている AWS Glue 3.0 以降のパッチジョブに対してのみ表示されます。このフィールドは、ストリーミングジョブではサポートされません。
$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }
同じ設定で AWS Glue SDK を使用して、Auto Scaling でジョブ実行を設定することもできます。
Amazon CloudWatch メトリクスを使用した Auto Scaling のモニタリング
Auto Scaling を有効にすると、CloudWatch の実行者メトリクスが AWS Glue 3.0 以降のジョブで利用できるようになります。メトリクスを使用して、Auto Scaling で有効化された Spark アプリケーションでのエグゼキューターの需要と最適化された使用状況をモニタリングできます。詳しくは、「Amazon CloudWatch メトリクスを使用した AWS Glue のモニタリング 」を参照してください。
-
glue.driver.executoraAllocationManager.executors.numberallExecutor
-
glue.driver.executorAllocationManager.executors.numbermaxNeededExecutors
これらのメトリクスの詳細については、「DPU の容量計画のモニタリング」を参照してください。
Spark UI による Auto Scaling のモニタリング。
Auto Scaling を有効にすると、Glue Spark UI を使用して、AWS Glue ジョブの需要に基づいた動的なスケールアップとスケールダウンで追加または削除されるエグゼキュターをモニタリングすることもできます。詳しくは、「AWS Glue ジョブ用の Apache Spark ウェブ UI の有効化 」を参照してください。
Auto Scaling ジョブ実行の DPU 使用量モニタリング
[AWS Glue Studio ジョブ実行ビュー] を使用して、Auto Scaling ジョブの DPU 使用量をチェックします。
-
AWS Glue Studio ナビゲーションペインから [モニタリング] を選択します。[Monitoring] (モニタリング) ページが表示されます。
-
ジョブ実行チャートまでスクロールダウンします。
-
チェックしたいジョブ実行に移動して、[DPU hours] (DPU 時間) 列を下にスクロールして、そのジョブ実行の使用量をチェックします。
制限事項
AWS Glue ストリーミングの Auto Scaling は現在、ForEachBatch
外で作成された静的 DataFrame とのストリーミング DataFrame の結合をサポートしていません。ForEachBatch
内で作成された 静的 DataFrame は、期待通りに動作します。