AWS Startup ブログ

BigQuery から Snowflake への移行。データの流れがよりシンプルで、運用しやすいデータ基盤へ

近年、クラウドベースのデータウェアハウスとして Snowflake が高い評価を受けています。Snowflake はデータを保管するストレージ層とデータの処理を行うコンピュート層を分離した独自のアーキテクチャを採用して、高いスケーラビリティとパフォーマンスを実現。さらに、他のクラウドのデータ関連サービスとシームレスに連携するため、データのインポートやエクスポートが容易です。

株式会社LayerX では、かつて BigQuery を用いて構築していたデータ基盤を、Snowflake を中核にしたアーキテクチャへと変更しました。それにより、データの流れがよりシンプルになり、運用効率やセキュリティなども向上したのです。

今回は同社のバクラク事業部 機械学習・データ部 DataOps チーム 兼 Platform Engineering 部 DevOps チームの中山 貴博(@civitaspo) 氏に、アマゾン ウェブ サービス ジャパン合同会社 スタートアップ事業本部 シニアアカウントマネージャーの間宮 朋康とシニアソリューションアーキテクトの柳 佳音がインタビュー。Snowflake を採用した経緯や新データ基盤のアーキテクチャなどを聞きました。

複数のクラウドを使用することで生じていた課題

間宮:御社の事業概要についてお話しください。

中山:LayerX は「すべての経済活動を、デジタル化する。」というミッションを掲げており、たとえば書類でのやりとりや対面でのコミュニケーションをしなければならないような経済活動をデジタル化し、社会全体の生産性を上げることを目標にしています。

私が所属しているのはバクラク事業で、稟議や経費精算、法人カード、請求書受取、請求書発行、勤怠管理などの業務を効率化するクラウドサービス「バクラク」を提供しています。

株式会社LayerX バクラク事業部 機械学習・データ部 DataOps チーム 兼 Platform Engineering部 DevOps チーム 中山 貴博 氏(写真中央)

柳:今回のインタビューでは、Snowflake を中核にしたデータ基盤についてお話を伺います。もともとは BigQuery を用いてデータ基盤を構築していたそうですが、その時はどのような課題を抱えていたのでしょうか。

中山:旧基盤を構築していた頃、私はまだ社員ではなく業務委託で LayerX の仕事をしていました。LayerX の社員から「BigQuery でなるべく早期にデータ基盤を作ってほしい」と依頼を受けたため、そのリクエストに応える形で基盤を作ったんです。

しかし、BigQuery は非常に優れたデータウェアハウスであるものの、LayerX では AWS を中心にインフラを構築しているため、Google Cloud と AWS という複数のクラウドをまたぐことによる課題が生じていました。課題を挙げていくと、まず Google Cloud と AWS 間でのデータの転送が発生します。これにより、アーキテクチャが複雑になるため運用の負担が増えてしまいます。

また、AWS と Google Cloud という 2 つのクラウドを使用する場合、それぞれの運用ポリシーを整えた上で監視の設定をするなど、別々に運用する手間がかかったり、インフラ管理のために両方を理解できるエンジニアを採用しなければならず、人員の確保も大変になってしまいます。そこで、AWS と親和性があり、目標を達成できるマネージドなデータウェアハウスへと変更することを決めました。

「SQL で操作できる範囲を可能な限り広げる」新基盤

柳:数あるデータウェアハウスのなかから、Snowflake を選ばれたのはなぜですか。

中山: AWS 上で動かせるデータウェアハウスであるのは大前提として、業務オペレーションを組む際に必要なコンポーネントがオールインワンで入っているソリューションだというのが魅力でした。また、あらゆるオペレーションがSQLをインターフェースとして抽象化されているため、SQLさえ理解できれば、新たに学ぶべきことが少ないのも魅力でした。特に、データ基盤に触れるメンバーはエンジニアではないことも多いので、SQL でインターフェースが統一されていることで、そういったメンバーに対する “Enabling” や Self-Service 化がしやすいソリューションだと考えています。

移行後のアーキテクチャは上図なのですが、SQL で操作できる範囲を可能な限り広げるというコンセプトで構築しています。そのため、Snowflake にデータを投入するところまでの部分は、かなり薄く作っていますね。

例を挙げると、Salesforce のデータを取得する箇所については、Snowflake マーケットプレイス から Omnata をインストールして使用しています。これにより、Embulk などを動かす仕組みが不要になり、直接的に SOQL(Salesforce Object Query Language。Salesforce に保存されたオブジェクトのデータを検索できるクエリ言語)を実行して dbt だけでデータ取得・変換・格納ができるようになりました。

他には、Amazon Aurora に格納されているデータは、Aurora S3 Export という機能により Amazon S3 上にファイルとして出力し、Snowflake から SQL で直接それらのファイルにアクセスしています。この部分は Apache Kafka + Debezium による Change Data Capture(CDC)を追加で構築しようと考えていますが、その場合にも AWS のコンポーネントはかなり少なくなるような構成にするつもりです。

より事業の意思決定に役立てられるデータ基盤へ

間宮:この記事を読んで、自社でもデータ基盤を構築してみようかと考えるスタートアップ企業の方々もいるはずです。そうした人たちへのアドバイスはありますか。

アマゾン ウェブ サービス ジャパン合同会社 スタートアップ事業本部 シニアアカウントマネージャー 間宮 朋康

中山:ここまでの話と逆行するようですが、スタートアップがデータ基盤を構築するのであれば、その必要性についてよく検討したほうがいいと思っています。データ基盤の構築・運用にはかなりのコストや工数がかかりますし、基盤を作ってもそれほど価値を創出できない場合もあります。Amazon RDS のリードレプリカを用意して、そのデータベースに何かの BI ツールをつないでデータを可視化する程度で、ほとんどの企業は十分なはずです。

どうしても作らなければならないとか、データ基盤を作っても大きなリターンが得られるくらいのビジネス規模の方々へデータ基盤構築のアドバイスを語るなら、データの可搬性については意識しておくべきだと思います。具体的には、可能な限りデータを持たない、可能な限りデータを複製しない、可能な限り時系列データを持たない、利用者には直接データを参照させない、利用者が参照するデータのインターフェースは絞る、などです。この「データの可搬性」を意識することで、データ基盤のメンテナビリティが格段に上がります。「データの可搬性」を諦めるのは、明確にデータ基盤によるリターンが得られることが分かってからでも遅くはありません。データ基盤構築の初期段階で「データの可搬性」を意識できていないと、業務フローに意図しないデータ依存が生まれたり、意図しない意思決定が発生したりなど、運用フェーズの工数が増えます。それこそ、今回我々が行ったようなデータウェアハウスソリューションの刷新も大きな工数が発生してしまいます。そのため、「データの可搬性」を意識してデータ基盤構築を行うべしだと考えます。

今回の事例では Snowflake をメインに話しましたが、そこまで複雑なデータ分析が必要ない場合には Amazon Athena を選択肢としてもいいと思います。フェデレーテッド・クエリを利用することで、異なるデータソースのデータを分析できるので、Amazon Athena 単体でできることもかなり多いです。

柳:LayerX の DataOps における今後の目標はありますか。

アマゾン ウェブ サービス ジャパン合同会社 スタートアップ事業本部 シニアソリューションアーキテクト 柳 佳音

中山:データ基盤で改善したい部分はまだまだあるので、引き続きアーキテクチャの構築を進め、社内のメンバーたちがデータを活用した施策に注力できるようにしていきます。直近では、機械学習に関連した施策を進めようと思っています。

機械学習で使われるデータは量が膨大なので、複数のクラウドでアーキテクチャを構築していた時代は、クラウドをまたいだデータ転送に課題がありました。そうした転送の課題が解消されたため、機械学習チームが必要なデータをデータ基盤に投入することで、活用しやすい状態にしていきます。

また、これは以前に LayerX 社員の高際 隼が書いた記事に記載されていたことですが、弊社ではもともと、一部のメンバーだけではなく全員が自らデータ分析をして、インサイトを獲得できる状態を理想と考えていました。しかし、個々のメンバーのリテラシーやスキルには差がありますから、データの認知負荷が高くなってしまうとか、データをもとにした適切な意思決定がうまくできないという課題が生じているんですね。

そこで、データ分析に最適化した構造に変換して認知負荷を下げるとか、より意思決定に役立てやすい状態にするなど、事業のイシューに向き合っている人たちをサポートするようなデータ基盤に、進化させていきたいと考えています。

間宮:今回は貴重なお話をありがとうございました。