数千人規模の同時接続に耐え得るバックエンドシステムが必要
「SUBAROAD」は、車を単なる移動手段としてではなくドライブ自体を楽しむオーナー様向けに、SUBARU車の走りを思う存分に体験していただくことを目的としたサービス。目的地までの最短距離を示す従来のカーナビとは一線を画した魅力的なドライブコースのナビゲートや、位置情報と連動した音声や BGM を楽しめる音声 AR システムなどを提供しています。そのアプリの企画、制作に携わっている株式会社バスキュール様と一緒に、今回バックエンドシステムの構築をアイレットが担当しました。
同アプリの開発にあたってバックエンドシステム側に求められたのは、システム全体の負荷をいかに軽減できるかという点です。オーナー様に刺激的なドライブ体験を提供するためには、位置情報と連動した膨大な量のデータをリアルタイムで管理する必要があります。さらに、音楽ストリーミングサービス AWA とのコラボレーションにより、ドライブ中の BGM はもちろん、走っている地域の歴史や物語を紹介する音声体験も提供しています。かつ数千人規模のオーナー様が同時接続することも想定されるため、こうしたサービス特性に耐え得る設計を構築することが重要なポイントでした。
キャッシュサーバー導入でシステム全体の負荷軽減を実現!流動的なスケジュールにも柔軟に対応
まず一番の課題である負荷軽減に関しては、Application Load Balancer(ALB)を導入し、トラフィックの増減に応じて自動的に負荷分散を行なうオートスケーリング機能によってシステム負荷を低減しています。加えて、RDS を Multi-AZ 構成にすることでさらなる負荷分散も実現。特に画像の処理はファイル数が増えれば増えるほど負荷が大きくなるため、スマートフォンのアプリ側のシステムで直接サーバーから画像を取得・保存できるような仕掛けを施すことで、負荷軽減を行ないました。また、キャッシュサーバーの AWS ElastiCache を複数入れることで、システムの冗長化構成も実現しています。
続いて、今回の開発では認証機能の接続や、音楽ストリーミングサービス AWA との連携のために OAuth 認証による対応が必要である点も一つのポイントでした。こちらに関しては、本番環境で確実に動作するように、先回りして開発環境による事前検証を行なうことで、問題なく対応することができました。
また、上質なユーザー体験を追求すべく、SUBARU様とバスキュール様で UI/UX のブラッシュアップを繰り返し行なわれていたため、都度変更に合わせてバックエンド側のシステム構造や実装を検討する必要がありました。そこで、アイレットにも常に変更点などを情報共有していただくことで連動してプロジェクトを進めるように心がけました。特に SUBAROAD は各種イベントに応じてデータのやり取りが必ず発生するため、どのタイミングでどのデータをやり取りするかというシークエンスも含めて、細部に至るまでバスキュール様と緻密なすり合わせを重ねることで、バックエンド側の最適解を導き出すことができました。
なお、今回は全体的にタイトなスケジュールのプロジェクトであり、かつ基盤システムのリニューアルも同時進行で進んでいたため、スケジュールが流動的になることも多々ありましたが、例えば連携先の進捗に依存しないタスクの前倒しを図るなど、各社の状況を確認しながらタスクの優先順位を柔軟に組み替えることで、全体の進行が円滑に進むように努めました。
SUBARU車の魅力を存分に体感できるアプリが完成
AWS を活用したバックエンド開発によりシステム負荷を最小限に抑えることに成功し、膨大な量のデータの処理と多数同時接続にも十分に耐えられるドライブアプリ「SUBAROAD」が完成しました。
システム面も AWS ElastiCache による負荷分散が機能しているため、大きな問題が起きることはなく安定的な稼働を実現しています。単なる道案内ではなく、SUBARU車で走る喜びを生み出すという、今までにないユーザー体験を提供する画期的なサービス創出の一助になれたことを嬉しく思います。
アイレットは今後もお客様に寄り添い、新しい技術にも積極的に挑戦しながら、業界トップクラスのスピードと対応力でお客様のビジネス発展を支援してまいります。
![AWSを使用したシステム構成図](/img/works/works_subaru/img01.png)
(AWSプロダクト)
- ・Amazon S3
- ・Amazon CloudFront
- ・AWS WAF
- ・AWS Shield
- ・Amazon Route 53
- ・ACM
- ・IAM
- ・AWS Backup
- ・Amazon CloudWatch
- ・AWS CloudTrail
- ・Application Load Balancer
- ・Amazon RDS Multi-AZ
- ・Amazon ElastiCache
Credit
クライアント株式会社SUBARU