株式会社フロムスクラッチ b→dash Co. 執行役員 CTO 井戸端洋彰氏
フロムスクラッチは、データ活用プラットフォーム「b→dash」を提供している。マーケティングにまつわるあらゆるデータを取り込んだうえで、b→dash上でデータをひもづけて統合したDWH(データウェアハウス)を作成。使いやすいように各種データセットを変換して、ビジネスデータの分析や、マーケティングオートメーションやレコメンドなどを提供するサービスだ。
このサービスを支えるアーキテクチャについて、CTOの井戸端氏が解説した。
まず、データのインプットには、ユーザのオペレーション・Webやモバイルのトラッキング・各種企業からのビジネスデータといった3パターンがある。これらを一旦Data Lakeに格納すると、プッシュイベントでJob Workersが動くようになっているので、分散の処理基盤で処理したうえでData Martに格納して、ユーザがb→dashの画面上でアプリケーションを利用する、といった流れになっている。
加えて井戸端氏は、「(上図では)簡易的に表現されているが、実際はマイクロサービス化されいていて、10個ほどのアプリケーションが並列して動いている形」と説明した。
続いてサービスの特徴として、とにかく扱うデータ量が多い(ビッグデータ)ことと、データの形・分析の形は企業によって全く異なるため、SQLを自由に発行できるシステムになっている(カスタマイゼーション)ことを挙げた。
こういった大量のデータ処理とカスタマイゼーションを両立させようとすると、安定性とコストが課題になってくる。
これまでの対策としてAmazon Redshiftの導入などを行ったが、安定している一方でコストがかかるうえ、拡張性に限界があった。試行錯誤の末、独自でクラスタを管理するサービスを構成するに至ったという(下図)。構成におけるポイントは、「用途に応じて柔軟に構成が変更できる」「落ちてもいい前提で安定運用を目指す」「無駄なくリソースを活用する」の3点だ。
MySQL上に、アカウントや利用サービスごとにどのクラスタを使用するかといった情報を保持。EC2でクラスタのエンドポイントを返すAPIを作っている。流れとしては「Resource Managerにどのエンドポイントを使うのか問い合わせ、Resource Managerがどのエンドポイントを使うのか返し、そのエンドポイントに対して処理を実行する」となっている。
さらに井戸端氏は、「CloudWatchを使っているので、時間や各種メトリクスをもとに、クラスタのスペックや構成も自動で変更するような形で、これらもすべてResource Managerで一元管理できる仕組みになっている」と話した。
このアーキテクチャ構築によって、b→dashでは常時300以上、1日に最大600のノード数のクラスタを安定して運用できている。また、「300~500ほどあるすべてのEC2インスタンスの50%以上はSpot Instanceを利用、さらに80%にもReserved Instanceを適用して、すべてオンデマンドで運用した場合と比較して32%のコストで運用できている」と成果を語った。
株式会社MESON COO 小林佑樹氏
「ARおじさんという名前で活動しています。好きなAWSはFargateです」と自己紹介から始めた小林氏。同氏がCOOを務めるMESONは、3Dモデルの検索エンジン「heymesh」を開発。これは13サイト、50万件を超える3Dモデルデータを横断検索できる。VR/AR・ゲームクリエイターが主な利用者だという。
heymeshを支えるAWSサービスは、FargateやElasticsearch Service、DynamoDB、NLB、Lamdaと、比較的新しいサービスが目立つ。小林氏は、続いてバックエンドアーキテクチャについて説明した。
「大きくデータを収集する左側のパートと、検索アプリケーションを提供する右側のパートに分かれています」(小林氏)
今回のピッチでは、これらを1人で1か月で作りきるために意識した3つのポイントを紹介した。
1つ目は、「徹底的にリソース管理をしないこと」。スタートアップは、エンジニアはなかなか採用できないが早く開発しないと競合に負けてしまうといったジレンマがある。
heymeshのアーキテクチャは上図を見ると明らかな通り、ほとんどの部分をマネージドもしくはサーバレスサービスでまかなっている。これによって、本当に開発が必要な部分にだけ集中することができ、1人でも運用できたという。
2つ目が「AWSサービス単位での処理の分割」。主にデータを収集する部分の各処理をサービスごとに分割して、SQSでつないでいるという。というのも、プロダクトの開発初期は、問題の予想がしづらいからだ。
例えば、MESONではかつてデータ整形の処理をLamdaで書いていたが、初期想定よりも処理が複雑化しボトルネックになってしまうといった問題が起きた。そこで、より長い処理に柔軟に対応できるようにLamdaからFargateに移行し、解決したという。
このように、AWSサービス単位で処理を分割すれば、各サービスの強みを最大限に活用できるとともに、問題が発生した際も、変更範囲を明確かつ最小限にできる。
最後の3つ目が「グローバル基準の技術選定」だ。heymeshは、全世界のユーザをターゲットにしている。heymeshは複数箇所でFargateを利用しており、すべてバージニアリージョンで構築することによってこのアーキテクチャを実現したという。このこだわりについて、小林氏は次のように理由を説明した。
「Fargateが東京リージョンに来るといった発表があったが、東京リージョンに来るまではなかなか活用できないという話もあった。しかし、グローバル基準で技術を選定し、便利な新サービスをいち早く採用することで、世界で戦えるスタートアップになれると思っています」
スタートアップはとにかく速くサービスをリリースすることが大事、と小林氏。紹介した3つのポイントを押さえることで、少ないリソースでも迅速な開発・運用を実現できると語った。
結果発表
7名のピッチを終え、最終審査に入る。数分の評価・投票時間をへた後、各賞の結果発表が行われた。
オーディエンス賞:Game Server Services 株式会社 代表取締役社長 CEO 丹羽一智氏
会場に来た参加者たちが投票で選ぶオーディエンス賞には、Game Server Services 株式会社の代表取締役社長 CEO、丹羽一智氏が選ばれた。ピッチでは最後まで話しきれなかったことが悔やまれたが、3日間のパネル展示で参加者たちの支持を集めた形だ。賞品は、今回の投票にも使われたAWS IoT Enterpriseボタンだった。
AWS SA 賞:株式会社MESON COO 小林佑樹氏
ソリューションアーキテクトが選ぶAWS SA 賞には、株式会社MESONのCOO、小林佑樹氏が選ばれた。賞品として、Amazon Echo Plusが贈呈された。
Startup Architecture of the year:株式会社フロムスクラッチ b→dash Co. 執行役員 CTO 井戸端洋彰氏
グランプリに輝いたのは、株式会社フロムスクラッチ b→dash Co.執行役員CTOの井戸端洋彰氏だ。賞品は、旅費を含めたAWS re:Invent 2018への招待チケットと、This is my architecture(優れたアーキテクチャを解説するビデオシリーズ)の収録・掲載。
グリー株式会CTOの藤本氏が「うらやましい」とつぶやきながら賞品を贈り、CTO100人の代表として講評を述べた。
「AWSを120%活用してスピードを上げるところもあれば、トラフィックが増えた際の処理などマニアックな話もあり面白かった。こういった事例を聴きながらみなさんで切磋琢磨し、よりよいシステムを作っていけたらと思います」(藤本氏)
Startup Architecture of the year 2018に選ばれた井戸端氏は、「プレゼンが終わらず心残りだった、『まさかとれるとは』という感じです。2014年の開発初期からAWSを使い始め、かれこれ4年。その間にもいろんなサービスが出て、日々それらをどう組み合わせるのがいいか、考えるのが楽しい。課題ややりたいことがまだまだたくさんあるので、よりよいサービスを使いながらシステムやアーキテクチャを作って、お客様に価値を提供していけたらいいなと思っています」と受賞のコメントとした。