AWS Startup ブログ

適切なサービス利用で、コストを抑えたデータ分析基盤を構築。GINKAN 社の AWS 活用事例

グルメ SNS プラットフォーム「SynchroLife」を開発・運営する 株式会社GINKAN は、AWS を有効活用してアーキテクチャを構築しています。

データ分析基盤や認証・認可基盤などに適材適所のサービスを用いることで、コストを抑えつつ信頼性や開発生産性の高いシステムを実現しているのです。そのアーキテクチャの工夫が高く評価され、AWS Startup Architecture of the Year Japan 2020 では Solutions Architect 賞を獲得しました。

GINKAN を支援するアマゾン ウェブ サービス ジャパン スタートアップ事業本部 アカウントマネージャーの堀田 知也とスタートアップソリューションアーキテクトの齋藤 祐一郎が、GINKAN 取締役 CTO の三田 大志氏とインフラエンジニアの高木 涼平氏にお話を伺いました。

*…齋藤はリモートにて取材に参加しました。

ユーザーの好みに合わせた情報を提供するグルメ SNS

堀田:GINKAN の事業概要についてお聞かせください。

三田:私たちはグルメ SNS プラットフォーム「SynchroLife」を開発・運営しています。「SynchroLife」は一般ユーザー向けに好みの店を提案するグルメ SNS の機能を提供し、飲食店向けに SNS を活用した集客・CRM ソリューションの機能を提供しています。

堀田:グルメ情報を紹介するサービスは世の中にたくさんありますが、それらと「SynchroLife」との違いはどのような点にありますか。

三田:「SynchroLife」は写真をメインにした SNS であることが特徴です。使い慣れた写真共有アプリのグルメ版のような UI になっています。

また、格付けを投稿したユーザーに対してポイントを付与することも特徴です。価値のある情報を提供してくれるユーザーには対価を支払うべきだという思想でサービスを運用しています。

さらにサービス運営において、平均点を表示しないこともテーマにしています。ユーザーごとに飲食店を評価する際の基準は異なります。例えば、格安店に行きたいと考える人もいれば、高級志向の人もいます。ある店が A さんの好みに合わなくても、B さんにとってはマッチしている可能性もあるはずです。

そのため私たちは、店舗に対するユーザーの評価の平均点を計算してサービス上に掲載するのではなく、他のアプローチの方が良いと考えています。

私たちはユーザーの飲食店の好みを学習するシステムを構築することで、似たような好みのユーザーがおすすめする店を紹介するとか、AI がユーザーの特徴に合わせた店を紹介するという世界観を目指して、開発に取り組んでいます。

GINKAN 取締役 CTO 三田 大志氏

エンジニアが「Why」を理解することで良質なアーキテクチャが生まれる

斎藤:「SynchroLife」では AWS のサービスを有効活用してデータ分析基盤を構築していると伺っています。アーキテクチャの概要について教えてください。

高木:まず前提として「SynchroLife」では一般ユーザーと飲食店向けのデータを扱うために複数のデータベースを用いているのですが、分析をするにはそれらのデータを一か所に集める必要があります。

サービスで使用しているデータベースに負荷をかけずにデータ分析を行うには、サービスで使うデータベースと分析で使うデータベースを分ける必要があります。

これらの要件を達成するために、私たちは AWS Glue のワークフローを実行し、各サービスの Amazon RDS に格納されているデータを日次で Amazon S3 に移行しています。

そして、Amazon Athena で Amazon S3 内のデータを集計して、データ分析を行います。レポートを作成する際には、Amazon Athena をデータソースにして OSS ツールの Redash でデータ可視化を行います。

データ分析基盤のアーキテクチャ図

斎藤:非常に利点の多いデータ分析基盤ですね。同様のデータ分析を実現する場合に Amazon Redshift を用いる方法もあるのですが、コストを気にされるお客様もいらっしゃいます。代わりに AWS Glue でワークフローを日次で実行するアーキテクチャにすることで、システムを常時稼働させる必要がなくなり、コスト最適化に寄与しています。

もちろんサービスは適材適所ですから、大容量データを高速に集計・分析する必要のあるワークロードにおいては、Amazon Redshiftを用いる方が良いケースもあります。GINKAN 様の事例においては、AWS Glue を用いる形の方がユースケースにマッチしていました。

そして、「SynchroLife」のように安価なコストでデータ分析基盤を実現するには、業務要件としてビジネスサイドと開発サイドとで「データの更新頻度は1日に1回とすること」の合意を取る必要があります。つまり、アーキテクチャとして優れているだけではなく、企業内でのコミュニケーションが適切に行われているのだと感じました。

三田:確かにその通りで、GINKAN では経営陣・ビジネスサイドと開発サイドが対等な立場でコミュニケーションできています。それぞれのチームがお互いの話を聞き、意見を尊重し合う文化があります。データ分析基盤の要件を決める際にも、その文化が良い方向に働きました。

齋藤:どのような経緯で要件を決めたのでしょうか。

三田:今回のデータ分析基盤の構築は加盟店へ提供するダッシュボード機能を実現するために開発しました。その際、私たちは「『SynchroLife』の加盟店から、最初に取り決めた金額以上の追加料金をいただかないこと」をビジネス要件として決めたため、インフラアーキテクチャの構築・運用においても、なるべく金銭的コストを低減させることが重要になりました。

そこで、私は CEO に対して「データ分析基盤のデータ更新頻度は1日1回に抑えたい」と伝えました。理由を説明すると、そのサービス仕様にすることに納得してもらえました。これは、それぞれのチームがお互いの意見を尊重する文化があるからこそ、実現できたことだと思います。

その次に、私から開発チームにデータ分析基盤の要件を伝えましたが、彼らと会話をするときに大切にしているのが、プロジェクトの「Why(なぜ、その方針を選ぶのか)」を伝えることです。

経営陣がなぜ各種の意思決定をしたのか、サービス利用者にどうしてその機能を提供したいのかなどを、必ず説明しています。エンジニアが「Why」を理解できなければ、ビジネス要件を実現するための適切なアーキテクチャは構築できないですから。

また、アーキテクチャの他の工夫として、AWS のサービスのみで構築することを決めていました。GINKAN の開発組織は、(取材時点で)私以外には4名のエンジニアしかいません。少人数の開発体制で開発効率を向上させるには、クラウドプラットフォームを AWS で統一することで学習コストをなるべく低減させるほうが良いと考えました。また、AWS では多種多様なサービスが提供されているため、「SynchroLife」のユースケースを十分に満たしてくれたのも大きかったです。

Solutions Architect 賞の獲得が大きな自信に

アマゾン ウェブ サービス ジャパン スタートアップ事業本部 アカウントマネージャー 堀田 知也

堀田:GINKAN 社は AWS Startup Architecture of the Year Japan 2020 で Solutions Architect 賞を獲得されています。

三田:AWS Startup Architecture of the Year Japan 2020 では、私たちの構築した認証・認可基盤について説明しました。このプレゼンテーションで一番伝えたかったのは、シンプルなシステム設計と、アーキテクチャの工夫により開発効率や柔軟性を向上させることの大切さでした。

システムの設計をシンプルにし、開発工数を削減することを目標として認証・認可基盤のアーキテクチャを構築。モバイルアプリには Amazon PinpointAWS Amplify を導入し、運用性を向上させた。そして、Amazon CloudFront の利用によるコスト削減、Amazon API Gateway によるスケーラビリティの確保、Amazon Cognito によるセキュアな認証認可を実現している。また、同社ではもともと別の認証認可基盤を使用していたが、旧システムのユーザーたちをログアウトさせることなく、ログイン状態のまま新しい認証認可基盤へと移行させるための処理を AWS Lambda で実現した。

三田:先ほどもお伝えしたとおり、GINKAN の開発組織は少人数でシステムを開発・運用しています。だからこそ、マネージドサービスを最大限活用してエンジニアの負担を減らし、本質的に重要な業務にフォーカスすることを大切にしてきました。

齋藤:アーキテクチャについてのアドバイスをしてきた担当者として、Solutions Architect 賞の獲得は本当に嬉しかったです。

アマゾン ウェブ サービス ジャパン  スタートアップ事業本部 スタートアップソリューションアーキテクト 齋藤 祐一郎

三田:ありがとうございます。とはいえ、認証・認可基盤はまだ完成形ではなく、今後もさらに進化させていくつもりです。GINKAN の開発チームは「80%のくり返し」という理念を掲げています。最初から100%の完成度を目指すと非常に苦労が大きくなってしまうため、まずは80%を目指して必要最低限の要件を満たす。そして、改善をくり返しながら洗練していくことで、より良いサービスの実現を目指しています。

堀田:Solutions Architect 賞を獲得したことで、会社の雰囲気に好影響はありましたか。

三田:私たちのアーキテクチャを社外の方々から評価していただいたことは、エンジニアチームにとって大きな自信になりました。特に高木は本当に喜んでいましたね。また、経営陣やビジネスサイド、株主などシステムについてそれほど知識のない方々に対しても、わかりやすい形で開発チームの技術力を示すことができました。

自分たちの意見や仕事が、システムの改善に直接的に結びつく

堀田:エンジニアが GINKAN で働くやりがいについて教えてください。

高木:GINKAN ではエンジニアに大きな裁量が与えられているため、自分たちの意見や取り組んだ仕事が、システムの改善に直接的に結びつく楽しさがあります。また、開発チームのエンジニアそれぞれが担当領域のプロフェッショナルであるため、信頼でき尊敬できる仲間と一緒に働くことができます。また、事業としての成長も著しいため、今後の発展を見越してスケールしやすい設計を考えるのが楽しいです。

GINKAN インフラエンジニア 高木 涼平氏

三田:確かに、エンジニアには大きな裁量を与えていますし、彼らの仕事にも全幅の信頼を置いています。それから私たちは、トライアル&エラーを許容する開発組織でありたいと考えています。決まったやり方をエンジニアに押しつけるのではなく、エンジニア自身にプランを考えてもらい、実行してもらう。優れたエンジニアである彼ら自身がやりたいと思うことをやったほうが、結果的に良いシステムができますから。

また、GINKAN では各エンジニアの今後のキャリアビジョンなどを定期的にヒアリングしています。そのうえで、可能な限りその目標を実現できるようにサポートしています。例えば、アプリ開発に携わっているエンジニアの中に、もともとモバイル開発の経験があまりなかったものの「将来はモバイルアプリを得意とするエンジニアになりたい」というビジョンを持つ者がいました。そのビジョンに配慮し、各種のプロジェクトで経験を積めるようにした結果、彼は Androidアプリ・iOS アプリ開発のどちらも担当できるようになりました。

それから、サービス開発において扱う技術領域が広いことも特徴です。一般ユーザー向けに SNS としての機能も扱いますし、加盟店側のサービスではデータ分析や金融・会計、ポイントの管理なども扱う。エンジニアとして大きく成長できる現場だと思います。

堀田:非常に魅力的なアーキテクチャと開発組織ですね。今後も AWS のサービスがお役に立てれば幸いです。今回はどうもありがとうございました。


導入支援・お見積り・資料請求等に関するご質問、ご相談に日本担当チームがお答えします。平日 10:00〜17:00 はチャットでもお問い合わせいただけます。お問い合わせはこちら