ファインディ株式会社におけるEmbulkの導入事例
ファインディ株式会社 / shunsock
メンバー / データエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 51名〜100名
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
10名以下 | 2024年12月 | B to B B to C |
ツールの利用規模 | 10名以下 |
---|---|
ツールの利用開始時期 | 2024年12月 |
事業形態 | B to B B to C |
アーキテクチャ
アーキテクチャの意図・工夫
ファインディのWebサーバーとデータベースはAWS上に配置されていますが、分析や機械学習はGoogle Cloud上で実行されています。今回作成したEmbulkのコンテナは、この両者をつなぐ橋渡しの役割を果たします。AWSからGoogle Cloudへデータを転送する方法はいくつかありますが、費用や工数を考慮した結果、Embulk on ECSを採用しました。この手法では、ECSをMySQLのリードレプリカと同じアベイラビリティゾーン(AZ)に配置することで、通信関連の工数を削減することが可能です。
さらに、Embulkの監視にはCloudWatchのMetrics Filter、CloudWatch Alarm、SNS、Chatbotを組み合わせて利用しています。この手法では、Lambda関数を利用しないため、Terraformの管理に集中できます。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
ユーザー行動ログとデモグラフィックデータを掛け合わせた分析をしたいが準備の負担が大きいという課題がありました。具体的には、Web Serverのコンテナからユーザーの行動ログを取得する作業、Web Serverのコンテナを踏み台にDBのデモグラフィックデータを取得する作業が必要でした。
どのような状態を目指していたか
ユーザーの行動ログとデモグラフィックデータを掛け合わせた分析が、単一のデータウェアハウスでSQLを実行することで可能である状態。
比較検討したサービス
- Embulk on ECS
- Embulk on Cloud Run with VPC Peering
- Datastream
比較した軸
費用と工数の2軸で判断しました。Findy Toolsは現在、リアルタイム・ニアリアルタイムでデータを処理する社内ニーズが無いです。Datastreamは強力なデータ送信技術で、候補にもあがりましたが、今回の構築ではオーバーエンジニアリングと判断しました。また、AWSのMySQLと通信する時にAWS側においておくとVPC Peeringの開通作業が不要になり、工数を減らせるのでECSを選択しました。
選定理由
EmbulkはCLIで、設定ファイルを書くだけで機能するため、開発にかかる工数がプログラムを書くより少なく済みます。また、社内の他のプロジェクトで導入実績があり、知見があることも選定の後押しになりました。
導入の成果
改善したかった課題はどれくらい解決されたか
滞りなく解決されました。
どのような成果が得られたか
SQLが書ければ誰でも行動ログとデモグラフィックデータを掛け合わせたデータ分析を始められるようになりました。
導入時の苦労・悩み
開発環境からAWSのMySQLに直接アクセスすることができないため、ローカルのDockerでの検証が難しい課題がありました。そこで開発時はAWSの検証環境で検証しています。なお、生のawsコマンドは指定する綱目が多く負担になるため、ラッパーコマンドを自作しています。
導入に向けた社内への説明
上長・チームへの説明
DesignDocを作成し、データエンジニアチームとFindy Toolsの開発チームに承認をいただきました。費用対効果については、DesignDoc内のそれぞれの費用の試算と工数の大小を確認いただいた上で、会議をしました。本件では、AWSのMySQLに接続可能・スケジュール実行が可能であるという要件がありました。
活用方法
作成したデータ基盤の利活用は、データエンジニアリングチームとFindy Toolsチーム(ビジネスサイドを含む)の共同で進めています。Embulk自体は、CloudWatch Schedulerを使用して、指定した日時にデータ転送処理を実行しています。
よく使う機能
データの取得および転送
ツールの良い点
設定ファイルで管理可能。 設定ファイルがシンプルで可読性が高い。
ツールの課題点
今後メンテナンスされるか不透明。
ツールを検討されている方へ
Embulkは枯れた技術ではありますが、2024年秋頃からメンテナンスに動きがあるので、よく確認してから使うべきと考えます。
今後の展望
作成したデータ基盤を用いて、Findy Toolsのデータ活用を進めていく所存です。
ファインディ株式会社 / shunsock
メンバー / データエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 51名〜100名
ファインディ株式会社 2024.08-now, 株式会社PR TIMES 2022.02-2024.08
ファインディ株式会社 / shunsock
メンバー / データエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 51名〜100名
ファインディ株式会社 2024.08-n...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法