Cloud Runを用いたデータ分析効率化の取り組み - 資金管理最適化での実践例

コインチェック株式会社 / 梅下 慎也
メンバー / データエンジニア
| 利用プラン | ツールの利用規模 | ツールの利用開始時期 |
|---|---|---|
Cloud Run サービス | 10名以下 | 2026年2月 |
| 利用プラン | Cloud Run サービス |
|---|---|
| ツールの利用規模 | 10名以下 |
| ツールの利用開始時期 | 2026年2月 |
アーキテクチャ
アーキテクチャの意図・工夫
分析画面(サーバーレス運用と認証基盤)
分析ロジックをPythonで書いているため、同じPythonで分析画面を構築できるStreamlitを採用し、Cloud Runのサーバーレス環境上にデプロイしています。アプリケーションコードの開発だけで分析環境を立ち上げ、インフラの運用負荷を抑える狙いがあります。
アクセス制御にはIAP(Identity-Aware Proxy)を使い、Cloud Runの手前で認証・認可を行っています。分析チームで分析し、結果をシステム管理者へ提案するという業務の特性上、分析者のみがアクセスできるようにしました。
デプロイはGitHub Actionsで自動化しており、コードをマージすると自動的にデプロイされます。開発・運用の負担を小さくして、分析そのものに集中できる仕組みを意識しました。
分析結果の共有方法(既製ツールの活用)
システム管理者向けの分析結果表示では、ダッシュボードなどの画面を自作することも可能でしたが、仕組み構築の工数を抑えつつ誰もが手軽に使えるよう、スプレッドシート・Looker Studioを使用しました。
導入の背景・解決したかった問題
導入背景
資金管理最適化という分析業務でCloud Runを導入しました。背景や課題の詳細は 【Google Cloud × Streamlit】ブラウザ上でデータ分析できるようにして、分析効率を上げてみた - 資金管理最適化での実践例 | 背景 をご覧いただけますと幸いです。
ツール導入前の課題
分析モデル作成や検証を行う立ち上げフェーズが完了し、定常的に分析を回していく運用フェーズに移行するタイミングでした。

立ち上げフェーズでは、複数のPythonスクリプトをローカルで実行して分析を行っており、分析モデルの構築や検証を進める上ではこの方法で十分でした。一方で運用フェーズでは、パラメータを変えながら繰り返し分析を回せるように分析の作業効率を上げることや、関係者への分析結果の共有のしやすさが求められました。
どのような状態を目指していたか
- 分析実行の手軽さ: メンバーがローカルでPython環境を構築したり、実行手順・コマンド操作方法を把握していなくても、手軽に分析を実行できるようにする
- パラメータ管理: コードを編集せずにパラメータ(分析対象の暗号資産や分析日数など)を変更でき、また過去の実行条件も追跡できるようにして再現性を高める
- 結果の確認・共有: ローカルで分析結果のグラフ画像やCSVファイルを手動で確認・共有するのではなく、関係者全員がアクセスできる場所に自動保存されるようにする
選定理由
Google Cloudへの集約
コインチェックの分析データはBigQueryに蓄積されており、クラウドをまたいだデータ連携を不要にするため、Google Cloud内のプロダクトに絞って検討しました。
その中で、以下に挙げる理由からCloud Runを選定しました。
低コスト
分析で使用する頻度は週次であり、常時稼働させる必要はありませんでした。Cloud Runは最小インスタンス数を0に設定することで、リクエストがない間(使用していない時間帯)のコストを抑えられます。また、金銭的なランニングコストだけでなく、サーバーレスのためインフラ構築・運用の工数も抑えられる点が選定理由の一つでした。
IAP認証による手軽なアクセス管理
Google CloudのIAP認証をCloud Runに適用することで、Googleアカウントによる認証・認可が可能になります。別途認証基盤を用意することなく、必要なメンバーだけにアクセスを絞れる点も選定理由の一つでした。
導入の成果
改善したかった課題はどれくらい解決されたか
Cloud Runを使ったことによる改善点としては、分析実行の手軽さの向上が挙げられます。画面上で分析を実行できるようになり、1回あたり約30分かかっていた分析時間が5〜10分に短縮されました。
どのような成果が得られたか
分析実行の手軽さが向上したことで、分析の属人化が防止されるという効果もありました。これまではPythonの環境構築やコマンド実行、パラメータ設定のためにファイル編集が必要でした。改善後は、画面へのアクセス権があれば誰でも分析を実行できるようになり、分析したい人が自由に分析を回せる状態になりました。
導入に向けた社内への説明
上長・チームへの説明
もともとチーム内で以下のニーズがあったため、それが実現できるという点を説明しました。
- 「分析の実行」や「分析結果をもとにしたシステム管理者への数値提案準備」の効率化
- チームメンバーが自由なタイミングで分析できる仕組みの構築
活用方法
よく使う機能
- Cloud Runサービス: Streamlitアプリのホスティング先として使用している
- Artifact Registry: Dockerイメージの管理のために使用している。GitHubからGitHub ActionsでDockerイメージをビルド・プッシュし、最新イメージをCloud Runに適用している
ツールの良い点
- 低コスト: 使用頻度やユーザー数が少ないケース(例: 社内ツール)であれば、ランニングコストを低く抑えられる
- 構築・運用の手軽さ: サーバーレスのため、インフラの構築や運用に手間がかからない
- 開発環境との一貫性: Artifact Registryと組み合わせることで、手軽にDockerイメージベースでアプリを管理できる。ローカルでもCloud Runに近い環境をDockerで構築できるため、開発効率と再現性が高まる
ツールの課題点
- コールドスタート時の起動遅延: インスタンス数がゼロの状態からの起動時、画面表示までに時間がかかる
- 意図しない常時接続による課金: Streamlitは内部的にWebSocketを使用しており、ブラウザで画面を開いている間は画面操作をしていなくてもCloud Runとの通信が続く。Cloud RunはWebSocket接続中もリクエスト処理中と見なすため、ブラウザを閉じ忘れるとその分だけ課金が発生してしまう
- この意図しない課金を防ぐには、一定時間操作がない場合にWebSocketを切断するといった対策を独自に実装する必要がある
ツールを検討されている方へ
データ分析観点では、サーバーレスなCloud Runで分析環境を構築することで、開発・運用の負担を抑えられるため、分析そのものに集中したいというケースにおすすめです。
また今回の対応を通じて、分析時間の短縮という効果も得られました。チーム内の分析の作業効率に課題を感じている場合、「Cloud Runで分析環境を整備することで費用対効果が見込める」といった点も導入の説明材料の一つになるでしょう。
今後の展望
他の分析業務への展開
画面を使った分析効率化の取り組みを他の分析にも応用したいと考えています。その中で、より機密性の高いデータを扱う場合は、Cloud ArmorとCloud Load BalancingをIAPと組み合わせることでIPベースの制限を加えるなど、より多層なアクセス制御を検討していきたいです。
分析ロジックの実行時間短縮
現時点では許容範囲内ですが、今後実行時間の長さがクリティカルな問題になった場合は、データ入出力処理の改善やCloud RunのCPU・メモリ割り当ての最適化を検討したいです。

コインチェック株式会社 / 梅下 慎也
メンバー / データエンジニア
よく見られているレビュー

コインチェック株式会社 / 梅下 慎也
メンバー / データエンジニア
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法


