はじめに

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

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

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

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

概要

監視には New Relic および Datadog を活用しており、インフラストラクチャの監視に加えて、ログや Application Performance Monitoring(以下、APM) も含めたフルスタックな監視体制を提供しています。
監視設計は、基本的に弊社の標準監視をベースにしておりますが、その他にも各 SaaS 製品の監視や APM を用いたダッシュボードの作成など、サービス全体を意識しております。

監視全体像としては以下のようになっております。

Google Cloud

Google Cloud の各コンポーネントは、New Relic とのインテグレーションを通じてデータを送信し、インフラストラクチャのモニタリングを行っています。
インテグレーションによって取得できるメトリクスは豊富にあり、CPU 使用率やメモリ使用率といったリソース監視を行うことで、システムのパフォーマンスを把握できる点がメリットです。

また、Datastream のエラーログを New Relic へ転送し、アラートを設定することで、BigQuery へのデータ連携が失敗した場合にも迅速に対応できる体制としています。

Fastly

Fastly では、上述したようなインテグレーションがないため、ログ転送を利用してログを取得しています。
取得したログを基にダッシュボードを作成し、特に重要な項目にはアラートを設定しています。

ダッシュボードでは、キャッシュヒット率、レスポンスのエラーレート、リクエスト数、帯域幅などのデータを視覚的にグラフ化して表示し、システムパフォーマンスやトラフィック状況を直感的に把握できるようになっております。

参考:クイックスタート

Elastic Cloud

Elastic Cloud は Datadog とのインテグレーションを通じてデータを送信しています。
Fastly と同様に、取得したデータを基にダッシュボードを作成し、特に重要な項目についてアラートを設定しています。

ダッシュボードでは、ノードやクラスターのリソース使用状況、GETリクエストのエラー数、シャードの状態と分布、データ転送量などを監視しております。
これにより、システムのパフォーマンスや健全性を網羅できるようになりました。

参考:How to monitor Elasticsearch performance

APM

Cloud Run に APM を導入することで、アプリケーションの状態をリアルタイムで追跡できるようになりました。
これにより、データベースやインメモリキャッシュなどの周辺コンポーネントを含むレスポンスタイムやスループット、エラー率、トランザクションといった様々なデータを可視化できるため、アプリケーションパフォーマンスのボトルネックをスムーズに特定できるようになっています。

また、APM を運用前に導入し、パフォーマンスの状況を確認しながら負荷試験やクエリのチューニングを行うことで、リリース前のサービス品質を最大限向上させることができました。

外形監視

外形監視は、New Relic の Synthetics を利用しております。
今回は Web サービスの死活監視を行うことが目的だったため、最も単純な Ping モニターを採用し、迅速にアラートを受け取ることができる体制としています。

おわりに

New Relic や Datadog を活用してフルスタックな監視を提供することで、サービス品質の維持と向上に努めてきました。
Fastly、Elastic Cloud ではダッシュボードを活用することで、主要なメトリクスを可視化し、パフォーマンスの最適化や問題の早期発見が可能な体制を整えました。
また、APM を用いることでアプリケーションのパフォーマンスをリアルタイムで監視し、ボトルネックの特定やパフォーマンス改善が可能になることは、今後の運用において非常に大きなメリットがあると感じています。