はじめに

2024/9/4 に株式会社グッドスマイルカンパニー様における EC サイトのリニューアル事例、およびデータ分析基盤の導入事例が公開されました。

複数システムに跨っていた EC サイトをフルスクラッチ開発でリニューアル。一元管理を可能とした EC サイトのインフラ構築・開発・運用保守をワンストップで提供
売上データのリアルタイム分析・可視化を実現!Google Cloud Datastream を活用したデータ分析基盤構築

アイレットでは開発、インフラ構築・運用をご支援させていただきました。
今回はインフラ構築に関する詳細について解説する記事となります。
複数回に分けて公開させていただいており、当該記事では構成部分について解説します。

解説記事の一覧はこちら:
グッドスマイルカンパニー様事例に関する技術解説(監視編)
グッドスマイルカンパニー様事例に関する技術解説(負荷テスト編)
グッドスマイルカンパニー様事例に関する技術解説(データ分析編)

概要

リニューアル前のサイトでは、以下の課題がありました。

  • サイトにセキュリティリスクがある
  • 改善したい機能を追加できない
  • イベント時のアクセス集中によってサイトがダウンする

これらの課題を解決するために、信頼性・拡張性の高い Cloud Run に代表されるスケーラビリティの高いサービスが豊富な Google Cloud を主軸に構成しております。
さらに、データの分析・活用がしやすいという観点から BigQuery を採用できることも、Google Cloud を選んだ理由の1つでした。
また、コンテンツ配信が重要なサービスのため、画像最適化などフロントでの柔軟な処理が可能な Fastly を採用している点もポイントとなります。

構成図

構成の詳細

大きく分けて、情報管理サイトと各種 EC サイトがありますが、使用しているサービスに違いはありません。
方針として、日本以外からのアクセスもあることから、GDPR 対応のためデータ保持を日本リージョンで完結しています。
また、なるべくマネージドサービスを利用して運用負荷の低減を図っております。

フロントエンド

CDN に Fastly を設置し、キャッシュの制御や画像の圧縮・最適化を行うことで、レスポンスの高速化やオリジンの負荷軽減を実現しております。
また、Fastly の提供する Next-Gen WAF を導入することで、OWASP Top 10 に該当する攻撃や DDoS 攻撃などから Web アプリ / API 保護を実現し、セキュリティリスクを大幅に低減しております。

Web サーバーは、スパイクアクセスに対応できるよう、高速なスケーリングが可能な Cloud Run を採用しました。
これにより、イベント時のアクセス負荷でもサイトをダウンさせることなく、安定した運用を実現しています。
さらに、ダウンタイムなしでデプロイが可能なため、頻繁な機能追加を行えることも大きなメリットとなっています。

また、静的コンテンツは Cloud Storage へ配置することで負荷分散を行っています。

バックエンド

データベースには、コストパフォーマンスや MySQL との互換性がある点を考慮して Cloud SQL を選定しています。
HA(高可用性)構成にすることで、障害が発生した際にも迅速に復旧できる体制を整え、サイトの信頼性を高めています。
また、インメモリキャッシュには Memorystore を利用し、データベースの負荷軽減、および処理高速化を実現しました。

どちらも外部からのアクセスは限りなく低減したかったため、プライベート IP で構成し、プライベートサービスアクセスServerless VPC Access を使用して接続する方式を採っています。

検索処理

検索処理は Elastic Search で使用しており、全文検索やレコメンド機能を提供しています。
Elastic 社がクラウド上で提供している Elastic Cloud というマネージドサービスで構築をしており、負荷に応じてスペックやストレージのオートスケールを行うため、ユーザー側でのインフラ管理や運用の削減に貢献しています。

バッチ処理

バッチ処理は、インフラ管理が不要な Cloud Run Functions(旧 Cloud Functions) で行っています。
Cloud Scheduler や Pub/Sub と連携することで、スケジュールやイベントドリブンでの実行が可能となり、必要な時だけ稼働するためコスト効率の良い構成になっています。
また、大規模なデータを扱う処理では Cloud Run Functions の実行時間の上限を超えてしまうため、Cloud Tasks を利用してタスクを分散処理するようにしました。
これにより、処理負荷や実行時間の上限に対応し、効率的にデータを処理できるようにしています。

CI/CD

CI/CD には、Cloud Build と GitHub を利用して、デプロイプロセスを自動化しています。
また、コンテナイメージなどのビルドされた成果物は Artifact Registry に保管されております。

データ分析

Datastream を使用して、Cloud SQL から BigQuery へのニアリアルタイムでのデータ連携を行っております。
Datastream は、データベースのテーブルやカラムの追加・変更がある場合でも、2~3ステップで容易にデータの再同期ができるため、運用負荷が非常に低いことがメリットです。
また、BigQuery との連携もスムーズに行えることが選定の決め手となりました。

BigQuery では、データの列ごとにアクセス制御を設定して、個人情報などの機密データを保護することにより、セキュリティリスクを低減しています。
また、Looker Studio と連携させることで、ダッシュボードを作成し、データの可視化を実現しております。

おわりに

Google Cloud を利用した構成により、サイトのセキュリティリスクの低減や拡張性・信頼性の向上といった当初の課題を効果的に解消することができました。
さらに、BigQuery を用いたニアリアルタイムのデータ分析基盤の構築も、Google Cloud のメリットを活かすことができたと考えております。
また、Fastly や Elastic Cloud は Google Cloud との連携機能が備わっていたため、導入時の考慮ポイントが少なくスムーズに統合することができました。