AWS Startup ブログ

「AWS Startup Architecture of the Year Japan 2020」で優勝! ユニファ社の AWS 活用事例

乳幼児の午睡(お昼寝)を見守る医療機器サービス「ルクミー午睡チェック」や子どもの写真・動画をオンライン購入できるサービス「ルクミーフォト」など、IoT や AI を活用した保育支援サービスを開発・提供するユニファ株式会社。

同社は、2020年9月16日に開催されたアーキテクチャで競うスタートアップのためのコンペティション「AWS Startup Architecture of the Year Japan 2020*」に出場。プレゼンテーションの結果、見事優勝を果たしました。

* AWS Startup Architecture of the Year は単にアーキテクチャの美しさや優秀さを競うものではありません。 AWS Well-Architected Framework の観点やビジネスへの寄与度で、総合的に競うコンペティションです。

この実績が示すように、ユニファは AWS の各種サービスを有効活用し、AWS Well-Architected フレームワークに沿ったアーキテクチャを構築している企業です。今回はユニファへのサポートを行っているソリューションアーキテクトの松田 和樹とアカウントマネージャーの岡田 大志が、同社 CTO の赤沼 寛明 氏にお話を伺いました。

 

より良い保育環境をつくるためのサービスを提供する

松田:まずはユニファの企業概要についてお聞かせください。

赤沼:ユニファは「家族の幸せを生み出す あたらしい社会インフラを 世界中で創り出す」というパーパス(存在意義)を掲げている企業です。テクノロジーの力を活用して、世界中の家族の生活を豊かにしていきたいと考えています。

その目的を達成するため、私たちは保育分野の課題解決にフォーカスしています。現代では核家族化や女性の就業率の向上等により、乳幼児がいる家族にとって保育園や幼稚園など保育施設の果たす役割がとても大きい。そういった施設における保育業務をテクノロジーを使ってサポートし、保育者の時間と心のゆとりを確保することで、結果的に保育の質の向上に貢献できるかが重要なテーマになっています。

私たちが提供しているのは、乳幼児の午睡(お昼寝)を見守る医療機器サービス「ルクミー午睡チェック」や子どもの写真・動画をオンライン購入できるサービス「ルクミーフォト」など。ルクミーというブランド名で複数のサービスを提供しています。保育に携わる方々の業務をサポートし、より良い保育環境をつくることを目指しているのです。

松田:赤沼さんはユニファの創業メンバーなのでしょうか。

赤沼:私は途中から参画したメンバーですね。ユニファはもともと2013年5月に名古屋で創業した企業で、2015年2月に東京オフィスが立ち上がりました。私がユニファに参画したのは東京オフィスができたタイミングです。

それ以前は正社員のエンジニアがおらず、フリーランスのエンジニアの方々に手伝っていただきながらサービスを開発していました。東京オフィス立ち上げのタイミングで、今後の事業拡大を見据えて社内に開発組織を構築したいと、経営陣たちは考えたそうです。そこで正社員のエンジニアを採用し始め、私が参画したという流れでした。

 

岡田:赤沼さんはなぜ保育事業に携わりたいと思われたのですか。

赤沼:当時、転職活動をしているなかで、何かしら社会貢献ができる仕事をしたいと考えていました。そんななか、偶然にも転職エージェントからユニファが東京拠点を立ち上げようとしていることを聞いたのです。裁量の大きな仕事ができそうだと感じましたし、保育事業を支援することは社会的な意義があります。この会社で働いてみたいと思い、入社を決めました。

松田:AWS を利用し始めた経緯についても教えてください。

赤沼:もともと、AWS を使用する前は某社が提供するフルマネージドの VPS を利用していたのですが、その環境にはいくつもの課題がありました。例えばサーバーリソースを変更したいと思っても、すぐに増やすことができませんでした。

この課題に関して印象深い出来事があります。「ルクミーフォト」において2015年のハロウィンにアクセスが集中してサーバーリソースが枯渇し、システムが利用できない状態になってしまったのです。サーバーリソースを即座に変更できないことが大きなネックになりました。仮に AWS を導入し、サーバーとして Amazon EC2 を利用していれば台数を増やすことで対応できたはずです。

それに、VPS 環境は基本的に事業者から Linux サーバーが提供されるだけですから、ミドルウェアなどの環境構築をすべて自分たちで行わなければいけません。工数もかかりますし作業の抜け漏れが生じる可能性もあります。AWS の各種サービスを使うことでこうした作業から解放され、作業効率やセキュリティが向上すると考えました。

松田:他のクラウドベンダーと比較して、AWS のどのような点に魅力を感じていらっしゃいますか。

赤沼:AWS の場合、提供されているサービスの種類がとにかく多いことが利点です。必要な要件に合わせて適切にサービスを使い分けることで、アーキテクチャをより良いものにできますし、インフラ構築や運用にかかる工数も下げられます。

 

AWS 社員とともにコンペのプレゼン資料をブラッシュアップ

松田:ここからは「AWS Startup Architecture of the Year Japan 2020」についてお話しいただければと思います。出場された経緯について教えてください。

赤沼:きっかけは岡田さんから「AWS Startup Architecture of the Year Japan 2020」への応募を勧めていただいたことでした。私たちはまだまだ認知度の低いスタートアップ企業ですし、ユニファの扱っているサービスはマス向けのサービスと比べると人に触れる機会がそれほど多くありません。

企業として今後さらに成長するには、外部への積極的な広報活動を行って、技術力の高い会社であることをアピールしていきたい。さらには採用にも結びつけたいという思いがありました。無事に審査が通って出場が決定したあとは、プレゼンテーションの内容をお二人にメンタリングしていただきましたね。

岡田:赤沼さんが作成されていた資料は、初版の時点でかなり完成度が高かったと思います。私たちからは、客観的な視点でいくつかのアドバイスをさせていただきました。例えば社会的意義が大きい事業であることをアピールした方がいいとか。

赤沼:そういったポイントは、自分たちが普段事業に携わっているとかえって気づきにくいですよね。ありがたいアドバイスでした。

岡田:資料制作ではどのような点を意識されましたか。

赤沼:情報を出していく順序などでしょうか。私はプレゼンで「ルクミー午睡チェック」のアーキテクチャについてご紹介しましたが、そもそも乳幼児の午睡を見守るという業務自体の一般的な認知度が低いです。そのため、まずは従来の保育現場においてこの業務がどのように行われてきたのかを説明しました。

(「AWS Startup Architecture of the Year Japan 2020」で使用した資料より抜粋)

 

そのうえで、システムのアクセス特性やデータ量などを解説する流れにしています。

(「AWS Startup Architecture of the Year Japan 2020」で使用した資料より抜粋)

 

松田:資料作成の前に実施したミーティングで、アーキテクチャの説明をする前にシステムが置かれている前提条件や事業との関連性を説明するといいですよ、と私からアドバイスをさせていただきました。そのうえで、赤沼さんが非常にポイントをおさえた資料を作成されていたので、さすがだという印象を受けましたね。

一方で、初版の資料ではどんな部分が Well-Architected なのかという情報と、アーキテクチャが午睡チェック業務のどのような部分に貢献しているのかという情報が薄かったと記憶しています。赤沼さんとディスカッションさせていただきながら、そういった部分をさらにブラッシュアップさせていきましたね。優勝されて、反響はいかがですか?

赤沼:各種 SNS などで優勝を報告したところ、とても大きな反響がありました。また、優勝したことをネタにブログを書いたり Podcast を収録したりと、外部への情報発信という意味で良い効果がありました。

松田:AWS からは賞品もお渡しさせていただいたので、ぜひ有効に使ってください。

赤沼:25,000ドル分の AWS クレジットですね。とても大きな金額ですから、スタートアップ企業にとっては相当にありがたいです。

 

信頼性や運用上の優秀性を支えるアーキテクチャ

松田:ここからは「AWS Startup Architecture of the Year Japan 2020」でプレゼンした内容をふまえて、「ルクミー午睡チェック」におけるアーキテクチャの工夫をご説明いただけますか。

赤沼:まずアクセス特性やデータ量については、先ほどご提示した「想定した課題」の資料に記載されていた通りです。この前提をふまえて、信頼性や運用上の優秀性を担保することがポイントでした。

(「AWS Startup Architecture of the Year Japan 2020」で使用した資料より抜粋)

サービスのピークタイムは特定できていますから、その情報をもとに時間設定で Amazon EC2 インスタンスの Auto Scaling を行っています。そしてリクエストを受け付けた際には、処理の順番を担保するために Amazon ElastiCache に午睡チェックシート表の各セルのステータスを記録していますね。

午睡チェックデータは Amazon SQS に格納された後、Worker によって順次取り出されていきます。Worker が Amazon ElastiCache のデータを参照したうえで、想定通りの状態になっていれば午睡チェック情報を Amazon DynamoDB に記録していきます。

複数の Worker で処理された場合に Amazon DynamoDB の Write Capacity の設定値を超過してスロットリングが発生することがないように、あらかじめ Amazon ElastiCache にキャパシティの設定値を記録していることも特徴です。

松田:プレゼンでも話されていましたが、Amazon SQS を用いながらも順序整合を保証している点も優れているところですよね。

赤沼:ありがとうございます。Amazon SQS に関連したお話しをすると、もしWorker が参照した Amazon ElastiCache のデータが想定通りでなかった場合には、キューが再度 Amazon SQS に格納されます。それが10回続くと Dead Letter Queue に格納されてエンジニアにも通知されるという流れです。FIFO キューも検討しましたが、秒間あたり受信可能なメッセージ数の観点から採用は見送りました。

松田:Design for Failure の観点からもよく考えられています。質疑応答の中でも Design for Failure について聞かれていましたね。

赤沼:そうですね。Design for Failure という意味では、ネットワーク障害などが発生した場合でも、すでに午睡チェック業務が開始されていればセンサーと iPad だけでも最低限のチェック業務が継続できるようになっていることも特徴になっています。

 

保育に貢献できるトータルソリューションを

岡田:ユニファの今後の展望についてお聞かせください。

赤沼:私たちは、サービスを改善するためのさまざまな取り組みを続けています。例えば、「ルクミーフォト」の写真というアセットと機械学習を組み合わせることで、何か新しい価値を創出できないかと試行錯誤していますね。ただ単に写真・動画をオンライン購入できるというだけではなく、写真の情報を有効活用することでサービスの幅を広げられれば、ユーザーに提供できる価値がさらに大きくなっていくはずです。

また、私たちはまだまだ保育施設の業務をカバーできていない部分もありますから、サービスで支援できる領域をより広げていきたいです。ただ単に既存の保育業務をデジタル化するだけではなくて、保育の質の向上により貢献していけるようなトータルソリューションをさらに提供していきたい。そのために新しいサービスの開発も検討している状況です。

岡田:今後が楽しみですね。最後にこの記事を読まれるエンジニアの方々に対して、ユニファでシステム開発に携わる醍醐味についてアピールをお願いします!

赤沼:ユニファの事業は社会貢献性が高いことが非常に良い点です。それに、アナログな業務が数多く残っている保育領域に対して ICT を導入していくことはチャレンジングだと感じます。それに、チームには外国人も多いので、日本にいながら外国籍のメンバーとも一緒に仕事できるのは魅力です。

それから今回お話ししたように、インフラは全て AWS を用いて構築しており、要件にマッチしているならば新しいサービスもどんどん取り入れていく方針です。アーキテクチャ検討の裁量を現場のエンジニアにかなり委ねていますから、自分自身でインフラアーキテクチャをつくることに魅力を感じる方ならば、絶対にユニファの業務を面白いと思っていただけるはず。よかったら応募していただけると嬉しいです。

 

ピッチで使用したスライドはコチラ

ルクミー午睡チェックを支えるアーキテクチャ