BigQueryのコストを抑えろ! DeNAが取り組む「BQドクター」の実態 1年で1600万円を削減見込み

0

2022年12月07日 15:22  ITmedia NEWS

  • チェックする
  • つぶやく
  • 日記を書く

ITmedia NEWS

警告メールのイメージ(DeNAのエンジニアブログから引用)

 米Google Cloudが提供するクラウドデータウェアハウス「BigQuery」。くら寿司やヤフーなど、さまざまな企業がデータ分析に活用している。ディー・エヌ・エー(DeNA)もその1社で、数百以上のプロジェクトに取り入れるなど、全社的に活用しているという。



【その他の画像】



 ただ、DeNAではBigQueryの活用に課題を抱えていた。社内におけるBigQuery活用の統制・管理が徹底できていなかったことだ。特にコスト管理や、事故による予算超過を防ぐ仕組みが確立できていなかったという。



 一方、DeNAでは対策も進めている。同社では「BQドクター」と題し、BigQueryの課題改善に向けた取り組みを実施している。コスト管理の仕組み作りなどを進めた結果、2022年度は年間で約1600万円の費用を削減できる見込みという。



 DeNAで活躍するBQドクターの取り組みについて、同社やGoogle Cloud日本法人などが12月6日に共催したオンラインイベント「【Google Cloud × GAME】ゲーム開発におけるGoogle Cloud活用事例」で、渡辺ブルーノさん(データ本部データエンジニアリング第4グループアナリティクスエンジニア)と中村宥哉さん(IT本部IT基盤部第三グループインフラエンジニア)が解説した。



●使命はデータのガバナンス維持 BQドクターのお仕事内容



 渡辺さんによれば、DeNAにおけるBQドクターは、データのガバナンス(管理・統制)を維持する取り組みの総称。プロジェクト横断で数人のメンバーが参加しており、今回の問題が表出する前から定常的に活動していたという。例えば、コスト最適化の観点ではデータの整理や、テーブル(表)の保存期間の設定などを請け負っていた。



 ただ、事故によるコスト超過を防ぐ仕組みまでは手が回っていなかった。例えば、従来は各プロジェクトにおける1日当たりのクエリ(データベースへの指示)のデータ使用量はデフォルト設定のままで、上限がなかったという。



 つまり従量制であるBigQueryの料金に上限がなかったわけだ。このままでは誤って大量のクエリを実行したり、連続で実行したりした場合に、際限なくコストがかかるリスクがあった。



 そこでBQドクターでは、プロジェクト当たりの月間データ使用量に上限を策定。月100TiB(テビバイト、109.951TB)まで利用可能とし、事故によるコスト超過に対策した。BigQueryでは、1TiB当たり約5.5ドルのコストがかかる(米国リージョンの場合)ので「100TiBなら事故が起きてもプロジェクト当たり最大550ドルの被害で済む」(中村さん)計算という。



 上限額の設定に当たっては内製のプロジェクト管理ツールを活用。ツールから各プロジェクトの情報を取得し、上限額が定まっていないものを絞り込んだ。その後、対象のプロジェクトには、Google Cloudのリソース管理ツール「gcloud CLI」で課金の上限額を設定した。



 上限額を超えそうなプロジェクトがあった場合、アラートを発するツールも制作。月間データ使用量が上限の8割に達した場合や、何らかの要因で上限が無制限になってしまった場合に、プロジェクトの管理者に警告のメールを送信する仕組みを作った。



●BQドクターそのものが抱える課題も コスト削減以外の取り組み



 ただ、BQドクターにはコスト削減に加えて、取り組みそのものが抱える課題もいくつかあったと渡辺さん。例えば(1)プロジェクト横断で活動しているので、メンバーのコミュニケーションコストが高い、(2)定常的な活動なので、次第にタスクの優先度が下がり形骸化するリスクがある、(3)BQドクターの管轄外になっているプロジェクトがある──という問題があった。



 3つの問題は、コスト管理と並行して解決を図った。(1)と(2)については、一時的に具体的なコスト削減目標を定め、メンバーを専門チーム化して取り組みを進めることで対策したという。



 さらに目標達成後もBQドクターとしての取り組みを行えるよう、必要な情報がまとまったダッシュボードをBI(ビジネスインテリジェンス)ツールの「Looker」で作成。社内の各事業領域を担当するデータエンジニアに展開した。「短期的かつ継続的に効果が出るBQドクターを目指した」(渡辺さん)という。



 (3)については、管轄できていなかったプロジェクトについてもデータ収集の仕組みを作り、BQドクターのメンバーで管理できるようにした。データ収集にはGoogle Cloudが提供するログ監査の仕組み「Cloud Audit Logs」を活用した。



 中でも活躍したのはCloud Audit Logsの機能“集約シンク”だ。通常、Cloud Audit Logsで集めた情報は各プロジェクトでの保存になるが、集約シンクを使えば1カ所(組織・フォルダなど)に集められる。今回はBQドクターのプロジェクトに割り振ったという。



 ただし集約シンクを使うと、各プロジェクトが抱える、機密性が高く集めたくない情報まで集約してしまう可能性がある。そこで今回は、ログを収集してもよいプロジェクトとそうでないプロジェクトをフォルダ単位で仕分け。ログを集めてもよいフォルダのみ集約シンクの対象にした。これにより、約300のプロジェクトから新たに情報を集められたという。



●約1600万円のコスト削減見込み 一方で残る課題も



 一連の施策を展開した結果「全社に向けてBQドクターを拡張しつつ、一定のガバナンスを守る基盤を作ることができた」と渡辺さん。約1600万円のコスト削減見込みという定量的な成果も実現できた。



 ただ、まだ残っている課題もある。渡辺さんによれば、可視化したコストの情報がデータエンジニアなど一部メンバーしか閲覧できないなどの問題があるという。



 「現状はデータエンジニアを介してしかBigQueryのガバナンスを効かせられない。全社員が適切に閲覧権限を割り振られた状態で確認できるようにしていきたい」(渡辺さん)


    ランキングIT・インターネット

    前日のランキングへ

    ニュース設定