こんにちは。データ・AI戦略部 SREチームの小野です。2020年8月に入社してから早3年。SREエンジニアとして、日々業務改善に励んでいます。
私の所属するデータ・AI戦略部は、クラウドやSaaSの活用を積極的に行っています。私自身も「業務に役立ちそうなサービス」を見つけたら上長に相談するようにしています。
今回は、「1ヶ月でSnowflakeのPoC検証から導入提案まで行った話」をお伝えしたいと思います。ちなみにこのブログの執筆時点では、Snowflakeの導入はまだ実現していません。
<書くこと>
「PoC検証の取り組み方から提案までの手法」を中心に執筆します。今後ChatGPTのような技術革新がますます活発化した時、新しいサービスの検証や提案を「より高品質」に「よりスピーディ」に行うことが必要になってくると思います。そういったニーズの参考になれば幸いです。
<書かないこと>
Snowflakeを題材にしていますが、Snowflakeの機能紹介はしません。今後、Snowflakeを導入し、知見を得た後に改めてエンジニアブログでご紹介したいと思います。
<目次>
Snowflakeを検証しようと思った背景
データ・AI戦略部のマインド
データ・AI戦略部は、業務委託を含めて約20名程度の小さな組織です。しかし、「データ基盤」という専門性の高い、かつ、処理量の大きいシステムを少人数で運用する必要があるため、私たちは以下の考え方を持っています。
- 仕組み化してツール(SaaS、クラウド)に頼れるところは頼っていきたい
- 専門性が高いからこそ、標準化できるところはどんどん推進しよう
取組事例については、以下を参考にしてください。
<仕組み化についての取り組み>
SREエンジニアが組織改善プロジェクトを立ち上げてみた
<標準化についての取り組み>
TerraformとTerraform Cloud Businessを導入してインフラ環境の構築・運用を改善してみた
データ基盤を改善したい
弊社のデータ基盤は、AWSとGCPのマルチクラウド環境から構成されており、Apache AirflowのマネージドサービスであるMWAAやCloud Composerを使って、AWSのS3に蓄積されているデータをGCPへ連携しています。
以下のようなイメージです。
AWS側のETLツールはEMRをメインに使っていますが、他にもAWS StepFunctionsやAWS Batch、その他AWSサービスを使っています。また、基盤を支える内製ツールやバッチもたくさんあるので、運用負荷が高い状態となっています。
そこで、Snowflakeを導入し、運用改善を図ることにしました。
Snowflakeとは
Snowflakeの機能等は記載しませんが、簡単に紹介をさせてください。
まず、Snowflakeはクラウド上で動くSaaS型のデータプラットフォームです。データ処理だけではなく、データシェアやデータエンジニアリングに必要な様々なワークロードを提供していることから「データクラウド」としても認知されています。
もちろんデータウェアハウス(DWH)の機能も兼ね備えており、(それだけではなく)従来のDWHの欠点を克服しています。
Snowflakeの優れている点をあえて4つ挙げるとしたら、以下になります。
Snowflakeを現行のデータ基盤に組み込むことができれば、
- AWSサービスの運用負荷を減らせる
- 内製ツールの運用負荷を減らせる
- インフラの維持コストが減らせる
- 教育・ドキュメント整備コストが減らせる
などのメリットがあると期待して、PoC検証を実施することにしました。
1ヶ月でPoC検証から報告まで終わらせる方法
前提事項
SnowflakeにはFree Trial期間が30日間ほどあります。そのため、この期間内でSnowflakeの機能検証から導入へのメリット・デメリットの把握、提案資料の作成及び提案までやりきることを決意しました。 ※ 検証期間は2023/09/01 ~ 2023/09/29
必ずしもFree Trial期間内で検証を終わらせる必要はなかったのですが、「ビジネスはスピードが命」であるため、この機会に効率的な検証〜 報告方法を習得しておきたいと考えました。
Step1: 検証体制を決める(上長 を巻き込む/ Snowflake社にご協力いただく)
検証を始める前に、検証体制を決めました。
- 検証 — データ基盤メンバー2名
- 上長 — 最終的にSnowflakeを導入することを判断する決裁者
- Snowflake — Snowflake社の営業と技術担当者
「検証段階で上長を巻き込み、Snowflake社にご協力いただく」ことがポイントかと思います。短い期間で何かを達成したいとき、決裁者・有識者(専門家)を巻き込むと物事がスムーズに進みます。
Step2: 定例会をアジャイルに進める
決裁者・有識者を巻き込む方法ですが、「定例会」を開催するのが有効だと感じました。実際に、2023年9月の毎週水曜日に定例会を開き、そこでSnowflakeのPoC検証の報告や疑問点をディスカッションし、懸念事項を潰していきました。
また、昨今のシステム開発でも取り入れられている「アジャイル方式」を意識して報告会を取り仕切りました。
<手順>
- PoC検証の結果を報告する
- 質疑応答を行う
- 次の課題を見つける
- 再検証を行う
- 1~4を疑問がなくなるまで繰り返す
- 導入する
この方式であれば、疑問点を報告会で潰しつつ、足りない観点を次の週で検証できるため、かなり効率的になりました。
検証項目に関してもConfluence上に週単位で表を作って管理することで、その週に何を検証したのか誰が見てもわかるように工夫しました。
検証の報告は、Google Slidesにまとめたものを報告しました。この報告書は検証するたびに更新していくので、定例会最終日には提案資料の出来上がりというわけです。
Step3: リレーションシップを築く
検証を効率よく済ませる方法として、「関係者とリレーションシップを築く」ことも大切です。
実は、定例会開催の提案はSnowflake社側からしていただきました。「Snowflakeを導入すると決まっているわけでもないのに、定例会に参加いただけるのか」と感動したことを覚えています。その他にも検証項目や技術的な相談などにもカジュアルに乗っていただき、とても心強かったです。
Step4: 検証項目の厳選
検証項目を絞ることも重要です。今回の検証目的は「現行のDWH(EMR)の機能と比較してSnowflakeの優れている点の確認がしたい」だったので、数あるSnowflakeの機能から下記の検証観点にそった機能をピックアップしました。
最終的に検証した項目は、37項目になりました。 ※ 37項目の中で細かく調査してます
検証項目についてはSnowflake社にレビューしていただいたので、あまり迷う場面がありませんでした。そこもスピードアップの要因になったと考えています。
PoC検証の所感
Snowflakeの「PoC検証から報告までの一連の流れ」・「品質」・「スピード」・「結果」は、個人的には大成功でした。
「TerraformとTerraform Cloud Businessを導入してインフラ環境の構築・運用を改善してみた」に紹介したTFCBの検証から報告には3ヶ月かかっていたので、2ヶ月も工数を削減できました。
また、検証した内容はConfluenceにまとめてあるので、別の検証を行うときも再現性高く検証から報告まで行えると思います。
おわりに
今後、SaaSの活用はますます活発化すると考えています。自社内でシステムを内製することももちろん大事ですが、「ユーザーにより高い価値を届けたい」、「もっとユーザーに喜んでもらいたい」と考えたとき、SaaSを利用することも一つの手段です。
SaaSを一つ導入するにも色々な「壁」が存在すると思います。そのうちの一つが検証実施へのハードルです。しかし、今回のようにSnowflake社と協力して検証を進め、1ヶ月で検証報告ができたように、工夫次第で品質を保ちつつ、スピーディに物事を進めることもできます。 今回の経験を活かし、データ・AI戦略部ではシステム改善に向けて、今後もSaaSやサービスの検討をしていきたいと考えています。
ここまでお読みいただき、ありがとうございました。