Slide 1

Slide 1 text

© 2024 Wantedly, Inc. 機械学習で使用しているGCS の料金を激減させた話 第1回 AWSコスト削減 天下一武道会 Feb. 1 2024 - @nogawanogawa

Slide 2

Slide 2 text

自己紹介 © 2024 Wantedly, Inc. - 名前 - 角川拓也 (@nogawanogawa) - 所属 - ウォンテッドリー株式会社 データサイエンティスト - ex. - ITコンサル @コンサル会社 - SE @金融系SIer

Slide 3

Slide 3 text

はじめに : AWSコスト削減 天下一武道会なのにGCPの話? © 2024 Wantedly, Inc. LT会ではGCPの話でもOKとのことだったので、 GCPの話をします!!! (AWSの話を聞きに来た人は AWSの話じゃなくてごめんなさい 󰢛󰢛) https://no1.connpass.com/event/305664/ より

Slide 4

Slide 4 text

推薦チームの開発環境と事情 © 2024 Wantedly, Inc.

Slide 5

Slide 5 text

機械学習ジョブの環境構成 © 2024 Wantedly, Inc. ウォンテッドリーではプロダクトの様々なところで機械学習を使用しており、バッチジョブのフローは大まかに下記 のようになっています 1. BigQuery・GCSからデータを取得 2. 様々な処理 3. 結果をBigQuery・GCSに出力 BigQuery 機械学習ジョブ BigQuery Cloud Storage Amazon EKS k8s上で動いているため Pod内のファイルは揮発性 処理1 処理2 処理3 処理N ロード 保存 中間生成物を出力 Cloud Storage

Slide 6

Slide 6 text

DS視点での問題意識 : 過去の機械学習の出力を再現できるようにしたい © 2024 Wantedly, Inc. - 再実行しても過去に実行した機械学習ジョブの挙動を完全に再現する事が難しい - 機械学習ジョブの一部にランダム性が入り込む箇所があるのが原因 - 異常などが発生した際に後から機械学習ジョブの挙動を再現したくなるケースがある - そこでジョブの中間出力を GCSに保存する運用に 元々の方針 初期の問題意識 機械学習ジョブ 処理1 処理2 処理3 処理N 中間生成物 機械学習ジョブ 処理1 処理2 処理3 処理N ①中間生成物を GCSに保存 ②後で調査が必要になる際は 中間生成物から実行を再現 中間生成物が保存できないと 実行の再現ができない Cloud Storage

Slide 7

Slide 7 text

DS視点での問題意識 : 過去の機械学習の出力を再現できるようにしたい © 2024 Wantedly, Inc. - 再実行しても過去に実行した機械学習ジョブの挙動を完全に再現する事が難しい - 機械学習ジョブの一部にランダム性が入り込む箇所があるのが原因 - 異常などが発生した際に後から機械学習ジョブの挙動を再現したくなるケースがある - そこでジョブの中間出力を GCSに保存する運用に 過去の機械学習ジョブの 中間出力を全てGCSに保存 → これがコストが高い原因 うわっ… 私のGCSの料金高すぎ… 元々の方針 機械学習ジョブ 処理1 処理2 処理3 処理N ①中間生成物を GCSに保存 Cloud Storage

Slide 8

Slide 8 text

GCS料金を減らすための方針 © 2024 Wantedly, Inc.

Slide 9

Slide 9 text

コスト削減のアイデア : ストレージクラスを最適化する © 2024 Wantedly, Inc. GCSにはストレージクラスが複数あり、コストのかかり方が異なる Standard ストレージ Nearline ストレージ Coldline ストレージ Archive ストレージ 保存のコスト アクセスのコスト 高 安 高 安 あまりアクセスし ないファイル 頻繁にアクセス するファイル 方針 もともとはす べて Standerd ストレージクラス

Slide 10

Slide 10 text

GCSの使用用途の整理 © 2024 Wantedly, Inc. 調べたところ、DSによるGCSの用途は大きく3種類 - それぞれオブジェクトに対するアクセスパターンが異なる 日々実行される ジョブの中間生成物 開発時の 中間生成物 機械学習ジョブの中で 利用されるアセット 1 2 3 アクセス 頻度 滅多にアクセスされない 開発時は頻繁にアクセス その後は滅多にアクセス されない 実行のたびにアクセス Standardストレージ のまま 保存後にしばらく時間が経過した後は ストレージクラスを変えて問題ない 方針

Slide 11

Slide 11 text

対応 : アクセスパターンを考慮してストレージクラスを動的変更 © 2024 Wantedly, Inc. アクセスされにくいファイルをコールドなストレージクラスに自動で移行させる - 手法 - ライフサイクルを設定(今回は細かい調整をするためにこちらで実施) - Autoclassを設定 すべてStandard ストレージ Before After 動的にストレージクラスを変更 保存後時間に応じて ストレージクラスを 自動で移行 頻繁にアクセスされる or 最近保存された ファイルはそのまま Standard Nearline, Coldline

Slide 12

Slide 12 text

結果 : コスト大幅削減 © 2024 Wantedly, Inc. 対応後コストを確認したところ、 50%以上削減に成功 🎉🎉 - GCSのコストを大幅削減しつつ、機械学習ジョブの運用にも大きな影響なし 🎉🎉 作業期間 対応前 対応後 50%以上削減

Slide 13

Slide 13 text

[PR] We are hiring! © 2024 Wantedly, Inc. 弊社にご興味が湧いた方はぜひ話を聞きに来てください! バックエンド エンジニア インフラ エンジニア