【事例紹介】『肌カ.ル.テ』サーバーレスアーキテクチャをフル活用したクラウドネイティブなアプリケーション開発

オルビス株式会社(以下「オルビス」)は、1987年の創業以来「肌が本来持つ力を信じて、引き出すこと」を信念とし、「ここちを美しく。」をブランドメッセージに掲げる、昨年35周年を迎えたスキンケアを中心に展開するビューティーブランドです。

2018年のリブランディング開始以降、オルビスが重点に置いていることのひとつが新たなCRM(顧客関係管理)の構築です。
より一層のCRMの進化を目指していくなかで、店舗のビューティーアドバイザー(以下:BA)の接客経験や口コミより「自分の肌を理解して、肌悩みに合ったお手入れをすることが難しい」「継続できない」「悩みが解決できない」という課題を抱えたお客様が多くいることを認識。『肌カ.ル.テ』は、お客様個別の肌悩みに寄り添う連続的・継続的なコミュニケーションの実現を目指し、お客様の肌悩みに合わせて美容の習慣をサポートする、ORBISアプリ内サービスとして企画・開発されました。

オルビスではこれまでにない新サービスであるが故、リリース後もお客様の改善要望をいち早く実現するために変化対応を早めることも『肌カ.ル.テ』システムに求められる要件でした。

BTCはWebView化(ネイティブアプリ上でWEBアプリを実行する)によるアプリ構成の見直しとマイクロサービスアーキテクチャ×クラウドネイティブ化による新たなアプリ基盤を提案しました。

サーバーレスサービスを活用したマイクロサービス開発

マイクロサービスアーキテクチャとは、サービスを小さな単位で構成し、各コンポーネントを疎結合な仕組みで構築することで、柔軟性・拡張性を高める手法です。

BTCはオルビスの『肌カ.ル.テ』をマイクロサービスとして、クラウドネイティブに構築するためにサーバーレスアーキテクチャによる開発をご提案しました。
サーバーレスであれば、リソースのプロビジョニングが不要でインフラの管理・運用をあまり意識する必要がないため、アプリケーション開発に集中することができ、より短期間での開発が期待できます。

サーバーレスアーキテクチャ

①アプリ基盤
基本のアーキテクチャは、フロントエンドはCloud Front + S3の構成で、SPA(Single Page Application)を配信し、バックエンドはAPI Gateway + Lambda + DynamoDBの構成でAPIを構築しました。
同期処理の必要がない機能については、非同期処理に切り離して構築を行いました。
DynamoDB StreamsやS3に対するファイルアップロードイベントをトリガーとして、Lambdaを非同期的に実行することで実現しています。
これにより、フロントエンドに対するレスポンスを高速化し、ユーザビリティを向上させています。

②バッチ基盤
バッチ処理においてもLambdaを利用しています。
しかしながら、Lambdaには1回の最大実行時間が15分という制約があるため、単純にLambdaで処理を実装するだけでは要件通りの処理ができないケースがありました。そこで、大量データ処理の要件があるバッチはSQS+Lambdaを用いた並列分散処理を実装しました。
プロデューサ(Lambda)からSQSに対して、並列処理用に複数キュー作成のメッセージングを行い、SQS経由で複数のコンシューマ(Lambda)を並列起動し、1つ1つのLambdaで行う処理は小さい単位のものとすることで時間の制約をクリアしました。
これにより、コンテナ等のインフラリソースのプロビジョニング不要で時間のかかる処理も実現しています。

サーバーレスにより改善サイクルの高速化と運用負荷軽減を実現

サーバーレスでは高い弾力性・可用性も確保されています。
リソースの需要に応じて、自動でスケールするためサービスに対する需要が一時的に増大したとしても安定的なサービス提供が可能です。
また、サーバーレス構成ではサーバーやインスタンスなどの個別管理が不要で、利用するクラウドネイティブな各サービスは責任共有モデルに基づいた管理となるため、開発チームはサーバー運用といった業務からも解放されます。
これにより、開発チームがよりアプリケーションの開発・改修に専念できるようになりました。

改善サイクルを高速化するという点においては、DevOpsの実践も重要な要素の一つです。
『肌カ.ル.テ』チームでは週次で利用者のアクセス状況や各種サービスの利用状況を統計的に分析しています。その中で、AIによる肌分析後にコースを選択するコンバージョンが低いことが判明。UI導線に問題があるという仮説を立て、ビジネス側・開発側一体となって、UI導線を見直しました。アジリティの高いサイト構成としたことで、迅速にUI見直しをリリースでき、見直し後のUI導線でのコンバージョンは20%強→50%弱へと大きく改善しました。

DevOpsを支える技術として、Circle CIを利用したCI/CD環境を構築・運用しています。開発者はコードをGitにPushするだけで、テスト環境/本番環境へ自動でデプロイされるため、開発~テスト・デプロイを迅速に行うことが可能となっています。
こうしたDevOpsへの取り組みとサーバーレス活用により、プロダクトの改善サイクル高速化を実現しています。

BTCは今後も、クラウドネイティブなシステムのご提案・構築などの支援を通じて、クライアント企業様のDX推進に貢献してまいります。