Zenn
💽

Redashのデータソース移行プロジェクト:Aurora DBからBigQueryへ

2025/03/28に公開

こんにちは。
株式会社カンリーのプラットフォーム部でSREをしている吉村です。
今回の記事では、最近取り組んだRadashのデータソース移行プロジェクトについて事例を共有したいと思います。

はじめに:実施の背景

カンリーでは、Redashを活用してデータの可視化と分析を行っていましたが、本番DB(Amazon Aurora)への直接クエリによる負荷問題やデータ分析の制約といった課題が生じていました。

そこで今回、分析環境の改善と本番システムの安定性向上を両立させるためのデータソース移行プロジェクトに取り組むこととなりました。

現状の課題(おさらい)

カンリーのCS業務では、データ可視化ツールとしてRedashを活用していましたが、以下のような課題を抱えていました。

本番DB(Amazon Aurora)への負荷

分析クエリが直接本番DB(Amazon Aurora)に実行されており、通常時は問題なく動作していましたが、顧客の店舗に関わるCM放映などの大規模プロモーション時にはサービスへのアクセスが急増します。そのようなタイミングで重い分析クエリが実行されると、それらが複合的に作用し、サービスのパフォーマンスに影響が発生することがありました。

クエリの制限

本番DB(Amazon Aurora)への負荷を考慮し、特にトラフィックが増加する時間帯や大型プロモーション期間中は、複雑なクエリや大量データの集計を避ける必要がありました。これにより分析チームは業務上必要なデータ分析がタイムリーに行えないというジレンマを抱えていました。

これらの課題を解決するため、BigQueryをデータソースとして活用する構成へと移行し、本番DBの負荷軽減と分析業務の柔軟性の整備を実現することとなりました。

目指した解決策

  • Redashのデータソースを本番DB(Amazon Aurora)から切り替える
  • 他プロダクトへの適用も視野に入れ、拡張性を持たせた構成

技術選定と設計

以下の選定理由により、BigQueryをデータソースとして採用することにしました。

  • SQLベースで既存のRedashクエリの移行が容易
  • 大規模データに対する高速なクエリ処理能力
  • Google Cloudのエコシステムとのシームレスな統合が可能で、データ分析の手段の豊富さ

実装:本番Amazon AuroraからBigQueryへのデータソース移行

全体アーキテクチャ

データソース移行のアーキテクチャとしては、AWS環境からGoogle Cloud環境へのデータ連携を実現するために、S3をデータ中継地点として活用する構成としました。
Amazon AuroraからエクスポートされたデータをS3に格納し、そこからGoogle Cloud Data Transferを使ってBigQueryにデータを取り込む流れとしています。

architecture

全体のデータフロー

  1. Step Functionsを実行し、Amazon AuroraからS3へのデータエクスポートを開始(日次実行)
  2. Amazon AuroraからS3へのデータエクスポートが完了
  3. LambdaによるS3内のオブジェクト移動
  4. Google Cloud Data TransferによるS3からBigQueryへのデータロード(日次実行)

data-flow

考慮した点

データソース移行プロジェクトを進める中で、特に重視したのはコスト面です。
この取り組みでは主に以下の2つの技術選択に基づいています。

Parquetファイル形式の採用

Parquet形式は列指向のデータ構造を持ち、高い圧縮率を実現するので、以下の成果が得られました。

  • データ保有コストの削減
  • Google Cloud Data Transfer使用時のデータ転送量の最小化
  • データ処理速度の大幅な向上

Lambdaによる固定パスへのオブジェクト移動

Lambdaを活用したオブジェクト移動・削除を実装した理由は2点あります:

Google Cloud Data Transferのデータソースパスを固定する必要性
StepFunctions経由でのAmazon Aurora to S3 Export実行時に自動付与されるexport-id-xxxxを除去する必要性

この実装により、Google Cloud Data Transfer側から参照するデータソースのパスを固定しつつ、日次でエクスポートしたオブジェクトデータを固定パスに s3 sync --delete コマンドで同期する形を実現しています。

daily-transfer

結果

このデータソース移行の取り組みプロジェクト完了によって以下のような成果が得られる予定です
※ 完了後の負荷軽減については引き続き観測していく予定です

  • 本番DBの負荷低減: 本番DB(Amazon Aurora)への分析クエリがなくなるので、負荷軽減につながります。
  • 分析の自由度向上: プロダクトへの影響を考慮しなくて良いので、集計を行うクエリや分析用の複雑なクエリを投げやすくなり、データ分析業務が以前よりも実行しやすくなりました。

これにより、サービスの安定性が向上するとともに、データを活用した意思決定の質も改善されました。今後も継続的に監視しながら、必要に応じて改善を重ねていく予定です。

カンリーテックブログ

Discussion

ログインするとコメントできます