運用負荷軽減のため、よりマネージドなBigQueryへ移行
かつてZOZOTOWNのインフラでは、データウェアハウスとしてRedshiftが用いられていた。当時のデータフローは下図の通りだ。オンプレミスで動いているZOZOTOWNの各種サービスとAWSのクラウド環境をAWS Direct Connectで結び、ETLツールのTalendによってAmazon S3(以下、S3)にCSVファイルをコピーしていた。
配置されたCSVファイルは、Amazon Data Pipelineを経由してRedshiftにコピーされる。その後、Redshift上で集計用のクエリが実行されるという流れになっていた。
S3には、ZOZOTOWNやWEAR(ZOZOテクノロジーズが開発・運用する、日本最大級のファッションコーディネートアプリ)のマスタデータ、Google Analytics 360から取得したWeb・ネイティブアプリのアクセスログ、メールやプッシュ通知の配信ログなどが格納されている。総テーブル数は100を超え、データサイズは1TBを超えるという。
「RedshiftからBigQueryへの移行を決めた主な理由は、運用負荷を軽減するためです。社内にRedshiftの知見を持つメンバーがそれほど多くなかったため、データ量が今後も増え続けた場合、自分たちでデータベースを運用していく自信がありませんでした。BigQueryの方がよりマネージドなサービスであるため、運用の負担を減らせると考えたのです」
BigQueryにはインデックスという概念がなく、マシンパワーを使って強引にフルスキャンを走らせる仕組みになっている。瞬間的には100台以上のノードで計算されることもあるという。ストレージの量は実質無制限で、いくらでも使うことができる。データの保存のための価格はS3と同程度か少し安いくらいだ。
Amazon Athenaも候補にあがったが、使用技術を検討していた当時はまだ登場したばかりだったことや、クエリの実行速度はBigQueryの方が高速であることから、BigQueryを採用することとなった。