AWS Glueのコストを削減している話

722 Views

April 07, 25

スライド概要

profile-image

どこか事業会社のクラウド周りのエンジニア

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

AWS Glueのコストを削減している話 JAWS-UG山梨 第5回勉強会 Yasuda Sequence Tower, 3-1, Kanda Nishiki-Cho, Chiyoda-Ku, Tokyo, 101-0054, JAPAN JINS Inc. www.jins.com

2.

大間 俊樹の自己紹介 ◼ 所属 ◼ ◼ ◼ 役割 ◼ クラウドエンジニア ◼ ちょっとデータエンジニア 出身 ◼ ◼ 株式会社ジンズ このアイコンの@tskomaで Zenn とかやってます 山梨県甲府市 趣味 ◼ コーヒーと日本酒と温泉 2

3.

コスト削減対象となるシステム ◼ 既存ETLツールのEOLに伴い、 AWS Glueでリプレイス ◼ ジョブ数は160本(本番環境) ◼ Aurora、SQL Server on EC2、 BigQuery、外部SaaSなどがソース ◼ 既存ツールはETLで組んでいたが、 AWS GlueではELT方式に変更し、 Transformは後段で実施 3

4.

あれ、想像していたよりコストが高い... • Glueはジョブ数160とかあるからまぁ上がるよね…(でも高い) • そしてCloudWatchやけに高くね… 4

5.

主に実施したこと 1.CloudWatchカスタムメトリクスの見直し 2.DPUの見直し

6.

CloudWatchカスタムメトリクスの見直し ◼ ◼ MetricMonitorUsage(メトリクス使用料)とGMD-Metric(バルクAPI)が明らかに多い AWS Glueで「ジョブメトリクス」を有効にしていると、 CloudWatchカスタムメトリクスが生成され追加料金となる。 対象 コスト リクエストされた 1000メトリクスあたり USD 0.01 対象 コスト 最初の10,000メトリクス USD 0.30 次の240,000メトリクス USD 0.10 次の750,000メトリクス USD 0.05 1,000,000超え USD 0.02 ※どちらもap-northeast-1での料金 6

7.

CloudWatchカスタムメトリクスの見直し ◼ ジョブメトリクスを有効にしてあげると、 各ExecutorやDriver nodeのリソース状況が見れる ◼ チューニングや構築時などでは便利 ◼ 一方でジョブ数も多くなるとカスタム メトリクスによる費用もうなぎ登り ◼ ある程度チューニングが終わったジョブ、 ステージング環境一部ジョブなどでは無効化 ◼ 無効化の方法は以下の通り <マネコンから> <Terraform> resource "aws_glue_job" ”main" { default_arguments = { "--enable-metrics" = "false" } 7

8.

DPUの見直し ◼ そもそもDPUとは ◼ AWS GlueはDPU(Data Processing Unit)という単位で リソースが提供され、そこに対して課金が発生する ◼ USD 0.44/DPU-時間 が秒で課金され、最小請求期間1分(Glueバージョン2.0以降) ◼ Apache Sparkジョブが6DPUで15分実行した場合は 6DPU x 0.25h x 0.44 → 0.66USD となる (参考)https://aws.amazon.com/jp/glue/pricing/ ◼ 稼働しているこのジョブだと1回あたり約1.98USD、1ヶ月59.4USD(約9,000円)… 8

9.

DPUの見直し ◼ DPU削減に実施したこと 1. Automatically scale the number of workersの有効化 ◼ ワーカー数の自動最適をやってくれる! ◼ 先のジョブはこれで 4.50DPU→2.29DPU に削減 ◼ マネコン/AWS SDK/AWS CLIからしかでないと有効化できず、 Terraformから作っていることもあり、わりと気づかなかった… 2. 取得対象データの差分取得に変更 ◼ 全件取得していたデータを差分取得する方式に変更しデータ量削減 ◼ 全件取得→差分取得への変更は後段のDWH側で吸収 9

10.

結果 30%削減! 10