このページについて

AWS Glueのコストが気になるため、ジョブごとのコストを確認したく、そのために必要な情報をcsvに出力するスクリプトをPythonで作成しました。

AWS Glue Studio

AWS Glue Studioの Monitoring ページで、ジョブ実行状況を確認することはできます。
ただ、いくつか制限があります。

  • 表示対象の日付指定が30日間まで
  • ジョブ実行履歴の件数が1,000件まで
AWS Glue Studio の概要: 抽出、変換、ロード (ETL) ワークフローを作成、実行、およびモニタリングするための使いやすいビジュアルインターフェイスです。

boto3

Pythonスクリプトを作成し、boto3で情報取得することにしました。

使用したGlueのAPI

csv出力する項目

項目 内容
JobId GlueジョブID
JobName Glueジョブ名
StartedOn Glueジョブ開始時間
CompletedOn Glueジョブ完了時間
ExecutionTime(s) Glueジョブの実行でリソースを消費した時間(秒)
ExecutionTimeRollup(s) 最小課金処理を実施したExecutionTime
MaxCapacity Glueジョブの実行に割り当てられるGlueデータ処理ユニット(DPU)の数
Cost 料金(MaxCapacity × ExecutionTimeRollup(s) / 3600 × 0.44 )https://aws.amazon.com/jp/glue/pricing/
Job_Type ジョブタイプ(SparkジョブまたはPython Shellジョブ)
GlueVersion Glueのバージョン(バージョンによりGlue がサポートするSparkとPythonのバージョンを決定する)
Timestamp スクリプト開始時刻

Glueのコスト計算について

基本的な料金計算式

DPU(MaxCapacity) × Execution Time(h) × 0.44

GlueStudioで表示されるDPU hoursは、DPU(MaxCapacity) × Execution Time(h)と同じとなります。

また、ジョブタイプによって最小課金単位が変わってくるため、それも考慮します。

ジョブタイプ AWS Glueバージョン 最小課金単位
Apache Spark または Spark ストリーミングジョブ 0.9, 1.0 最小10分
Apache Spark または Spark ストリーミングジョブ 2.0以降 最小1分
Python シェルジョブ 最小1分
AWS Glue はサーバーレスであるため、インフラストラクチャの購入、設定、管理は不要です。AWS Glue では、クローラ (データの検出) と ETL ジョブ (データの処理とロード) に対して時間あたりの料金が秒単位で課金されます。

作成したPythonスクリプト

Contribute to isseeeeey55/resource_usage development by creating an account on GitHub.

参考記事

Glue Jobの実行履歴をコマンドラインのワンライナーで見る方法を以前にブログに書きました。たくさんのAWS Glue Jobを実行している環境で実行履歴をまとめて見るワンライナーが、日時の表示がイケてなくて、使いづらか...

元記事はこちら

Glueジョブ実行履歴取得
著者:Issei Matsuki


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアコンサルティングパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://www.iret.co.jp/contact/service/form/