マイベストのシステムアーキテクチャ
アーキテクチャの工夫ポイント
アーキテクチャ選択の背景や意図
マイベストのインフラでは、AWSのマネージドサービスを積極的に活用しています。
1ページあたりの情報量が多いサービスのため、すべてのアクセスにCloudFrontを適用しています。特に画像については、大半の素材を自社で撮影しており、様々な画像関連の要望に応えるためimgixを導入し、柔軟性とパフォーマンスを確保しています。
サービスは日本以外にも8か国と地域で展開しているため、上記の構成が各国分存在しますが、ソースコードは共通で、データベースと翻訳ファイルで各国切り替えることで対応しています。デプロイにはChatOpsを採用しており、全世界への簡易デプロイを実現しています。
バックエンドはRuby・Ruby on Rails・GraphQL、フロントエンドはReact(WebがNext.js、モバイルがReactNative)と技術スタックを統一することで、開発効率の向上を図っています。
現在のアーキテクチャの課題と今後の改善予定
マイベストは自社で検証した様々な情報を取り扱っていますが、それ以外にも商品情報を起点として様々な情報を扱うケースが増えてきています。しかし、これらを運用する体制と仕組みが現状に追いついていないため、その整備が大きな課題の1つとなっています。
直近はこの課題に対して、Goで開発・運用しているバッチ処理のRubyに置き換えや、エラー検知や障害時の対応の見直しを進めており、今後は、ワークフローエンジンの導入やインシデント管理ツールの導入も検討しつつ、ユーザーの選択インフラとして信頼できる情報を安定して提供できるような体制と仕組み作りに取り組んでいきたいと考えています。
◆執筆:渡邊直登 取締役 CTO 兼 執行役員|プロダクト開発部 部長 @miraoto
【サービス公式サイト】
https://my-best.com/
アーキテクチャを構成するツール
監視・オブザーバビリティ
Datadog
Amazon EventBridge
CDN
Amazon CloudFront
Amazon Cognito
サーバレス
AWS Fargate
データベース
Amazon Aurora
サーバレス
Amazon S3
AWS WAF
会社情報
株式会社マイベスト
mybestは、商品購入やサービス登録など、ありとあらゆる選択という行動をサポートするために、実際に購入した商品を自社で検証・相対比較し、その情報をデータベース化したうえで、ユーザーの多様な選択ニーズに合わせた情報提供を行っています。