[アップデート]AWS GlueでのETLワークロードのコスト削減する実行オプション『Flexジョブ』が登場しました

開発環境や優先度の低いジョブにおすすめ
2022.08.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

データアナリティクス事業本部インテグレーション部コンサルティングチーム・新納(にいの)です。

AWS GlueでETLを行っている方に朗報なアップデートです。ETLワークロードのコスト削減可能な新たな実行オプション「Flexジョブ」が使えるようになりました!

Flexジョブとは?

専用ではなく予備のコンピューティングリソースを利用してAWS Glueジョブを実行することで、最大34%コストを削減可能な実行オプションです。

2022年8月10日現在、利用可能なリージョンは以下の通り。

  • Asia Pacific (Tokyo)
  • Asia Pacific (Seoul)
  • Asia Pacific (Mumbai)
  • Asia Pacific (Singapore)
  • Asia Pacific (Sydney)
  • Canada (Central)
  • Europe (Frankfurt)
  • Europe (Ireland)
  • Europe (London)
  • Europe (Paris)
  • South America (Sao Paulo)
  • US East (N. Virginia)
  • US East (Ohio)
  • US West (N. California)
  • US West (Oregon)

ユースケース

優先度の低いジョブ実行、一度だけ実行したいワークロード、開発環境での実行に向いています。

設定方法

AWS Glueの画面に移動し、左ペインのメニューから「Jobs」に移動します。ジョブ作成もしくは編集画面のJob detailsタブから設定します。

  • 「Flex execution」チェックボックスにチェックを入れます。
  • デフォルトではジョブのタイムアウト時間は2880分に設定されていますが、ここではFlexジョブのデフォルト値である120分に設定しておきます。
  • FlexジョブはAWS Glue 3.0で利用可能です。

Flexジョブで実行されているかどうかは実行履歴からも確認できます。Runsタブで「Execution class」がFLEXになっていれば設定は適用されています。(通常はSTANDARDと表示される)

AWS CLIからも設定が可能です。コマンド実行方法については以下をご参照ください。

料金

東京リージョンの場合、FlexジョブはDPU時間あたり$0.29課金されます。(通常ジョブではDPU時間あたり$0.44)

ワーカー数で指定した数に満たない数で実行された場合、実際に使われた数のみ課金対象となります。(例:ワーカー数10を指定したが、Flexジョブに割り当て可能なワーカーが5つ分しかなかった場合、5つ分のみが課金対象)

また、使用可能なリソースが無い場合ジョブステータスは「WAITING」となりますが、この段階では課金は発生せず、「RUNNING」に移行してから課金が開始されます。

まとめ

Glueのコストを削減する実行オプション、Flexジョブのご紹介でした。リソースが無い場合は確保できるまでジョブ開始されませんが、特に開発環境でのテスト実行や、時間がかかっても問題ない優先度の低い夜間実行などのケースでコスト削減できるうれしいアップデートですね。設定も簡単ですのでGlue 3.0をお使いでユースケースに当てはまる方はぜひお試しください!

参考資料