常時利用可能な e コマース エクスペリエンス向けのオブザーバビリティの実装
Google Cloud Japan Team
※この投稿は米国時間 2022 年 9 月 13 日に、Google Cloud blog に投稿されたものの抄訳です。
今日のデジタル時代においては、絶えず変化するビジネスと消費者の期待に応えるため、ビジネス プロセスの自動化と強化、従業員の生産性とカスタマー エクスペリエンスの改善が重視され続けています。Gartner 社によると、組織がパンデミック後のデジタルファーストの世界でデジタル トランスフォーメーションの計画を加速させることを迫られるなか、IT およびビジネス プロセスのさらなる自動化が必要になる見込みです。人工知能(AI)、機械学習(ML)、サーバーレス サービス、ローコード開発プラットフォームを始めとするテクノロジーは、新世代のソフトウェア ソリューションに大きな影響を与える要因です。
ユーザー エクスペリエンスとシステムのパフォーマンスなど、これらのソリューションの製品化までの時間と品質は、主要な差別化要因としての役割を果たします。さらに、ハイパーオートメーションへの移行に注目が集まるにつれ、企業の機密データを保護し、セキュリティ関連のインシデントを防ぐための強力なセキュリティとガバナンスの導入が今まで以上に重要性を増しています。
パンデミックにより、小売業者や他業界の企業がカスタマー エンゲージメントを高め、顧客が製品やサービスを簡単に購入できるようにするために、e コマースとモバイル アプリケーションを使ってオンライン プレゼンスを確立するニーズが高まっています。小売業者は、e コマースをオムニチャネルの収益を上げるための成長の原動力と捉えています。Morgan Stanley 社によると、世界の e コマースは現在の 3.3 兆ドルから 2026 年には 5.4 兆ドルに増加すると予測されています。今日の消費者と買い物客は、小売業者の e コマースおよびモバイル アプリケーションに常時利用可能なエクスペリエンスを強く求め、期待しています。
可用性とパフォーマンスが高く、復元力のある e コマース プラットフォームを得ることは、競争が熾烈な今日のビジネスの世界で消費者を惹きつけ、維持するうえで必要不可欠です。稼働時間 99% が 99.9% に上がると、システムの稼働時間と可用性が 10 倍向上することになります。e コマース アプリケーションには魅力的な消費者体験のために、充実した機能に加え、製品を提案する豊富なコンテンツとメディアが必要です。ウェブページがすばやく読み込まれてコンテンツが表示される状態を確保することは、e コマース プラットフォームでは非常に優先度が高く、それを実現するにはモニタリングを備えた可用性(稼働時間とも呼ばれます)が欠かせません。堅牢で最新のロギングおよびモニタリング システムは、「常時利用可能なエクスペリエンス」を消費者に提供するための重要な要素です。
簡単に言うと、ロギングとは、関連付けられたネットワークやインフラストラクチャなど、アプリケーション イベントに関する重要なログデータを取得するプロセスです。モニタリングはロギングデータを基に、潜在的な脅威、パフォーマンスのボトルネック、リソースの使用状況、コンプライアンスの調査に関する実用的な分析情報を提供します。
ロギングは、アプリケーション内で発生したイベントに関する重大情報の取得をサポートします。
システム パフォーマンス データを追跡し、アプリケーションが適切に稼働していることを確認する
不審なアクティビティや異常に関連する潜在的な問題を取得する
問題のデバック/トラブルシューティングを迅速かつ容易にする
モニタリングは、アプリケーション SLA のログ集計付きの包括的なビューを提供します。
アプリケーションのパフォーマンスと運用の分析情報
リアルタイムのアラートとトラッキングのダッシュボード
Cloud Operations Suite
Google Cloud Operations Suite は、アプリケーションのパフォーマンス、構成、運用に関するエンドツーエンドの可視性を提供する完全なプラットフォームです。アプリケーション パフォーマンスのモニタリング、トラブルシューティング、改善のためのコンポーネントを含んでいます。オペレーション スイートの主なコンポーネントは次のとおりです。
Cloud Logging は、150 を超える一般的なアプリケーション コンポーネント、オンプレミス システム、ハイブリッド クラウド システムからのデータ コレクションのロギングを可能にします。ロギングデータとイベントの保存、検索、分析、モニタリング、アラート作成をサポートします。
Cloud Monitoring は、指標の収集ダッシュボードを提供します。豊富なクエリ言語の指標、イベント、メタデータが表示され、問題の特定とパターンの解明に役立ちます。
Error Reporting は、アプリケーションによって生成されたエラーをまとめて表示するので、根本原因の迅速な修正に役立ちます。エラーは、スタック トレースを分析することによってグループ化され、重複排除されます。
Cloud Trace は分散トレース システムであり、アプリケーションからレイテンシ データを収集し、ほぼリアルタイムの詳しいパフォーマンス分析情報を表示します。
Cloud Profiler は、本番環境のアプリケーションから CPU 使用率とメモリ割り当て情報を継続的に収集する、オーバーヘッドの少ないプロファイラです。パフォーマンスまたはリソースのボトルネックの特定に役立ちます。


Cloud Logging で使用できるログの広義のカテゴリは次のとおりです。
Google Cloud プラットフォーム ログ: 問題のデバッグとトラブルシューティングに役立ち、使用中の Google Cloud サービスについての理解を深めることができます。
ユーザー作成のログ: ユーザーが Logging エージェント、Cloud Logging API、または Cloud Logging クライアント ライブラリを使って Cloud Logging に書き込みを行ったログです。
コンポーネント ログ: プラットフォーム ログとユーザー作成のログが混ざり合ったログです。プラットフォーム ログと似た目的で使用できる場合もありますが、ログエントリ構造は異なります。
セキュリティ ログ: セキュリティ関連のログ - Cloud Audit Logs とアクセスの透明性のログです。
ログエントリをストレージ バケットに集約すると、ログをもっと適切に管理できるようになり、モニタリングも簡単になります。さらに、これらのログを自動化された分析と脅威検出のために SIEM(セキュリティ情報およびイベント管理)と SOAR(セキュリティ オーケストレーション、自動化、対応)にストリーミングしやくすなります。要件、規制、コンプライアンス上のニーズに応じて、バケットごとに異なる保持ポリシーを適用できます。
GCP 監査ログデータの調査、報告、アラート作成を簡単にするための選択肢の一つは、Looker の GCP Audit Log Analysis Block を使用することです。これには、管理アクティビティの概要、アカウントの調査をカバーするダッシュボードに加え、MITRE ATT&CK フレームワークを使って、アクティビティを攻撃戦術にマッピングして表示するダッシュボードが含まれます。
ログエントリはCloud Logging API によって取り込まれ、Log Router に渡されます。ログのルーティング方法を管理するのはシンクです。シンクを組み合わせることで、複数の宛先にログを転送できます。シンクは、すべてのログまたはその一部をサポート対象の宛先に転送できます。サポートされているシンクの宛先は次のとおりです。
Cloud Storage: Cloud Storage バケットに保存される JSON ファイル
BigQuery: BigQuery データセットに作成されるテーブル
Pub/Sub: サードパーティ統合をサポートする Pub/Sub トピックに配信される JSON 形式のメッセージ
ログバケット: カスタマイズ可能な保持期間を持つバケットに保持されるログエントリ
Log Router のシンクは、Cloud Logging バケットなど、ログエントリの送信先として設定する必要がある宛先を判別する既存の包含フィルタおよび除外フィルタと照合して各ログエントリを確認します。
Cloud Logging から受信するデータの BigQuery テーブル スキーマは、LogEntry タイプの構造とログエントリのペイロードの内容に基づいています。また、Cloud Logging では、監査ログと特定の構造化ペイロード フィールドの BigQuery スキーマ フィールド名を短縮するルールも適用されます。
シンクを組み合わせることで、複数の宛先にログを転送できます。包含フィルタを使えば、一部のログを特定の宛先向けに構成可能です。同様に、除外フィルタを 1 つ以上設定すれば、シンクの宛先からログを除外できます。
宛先からのデータを Chronicle やサードパーティの SIEM にエクスポートまたはストリーミングすると、セキュリティと分析の要件を満たすことができます。


ロギングとモニタリングのベスト プラクティス
ロギングとモニタリングのポリシーは、アプリケーション開発に固有の要素であるべきで、後付けであってはなりません。すべてのコンポーネントと運用に関するエンドツーエンドの可視性を実現するソリューションが必要です。それだけでなく、アプリケーションを構成する多様なテクノロジーと分散型アーキテクチャをサポートすることも求められます。そこで、Google Cloud 内でロギングおよびモニタリング ソリューションを設計、実装するにあたってのベスト プラクティスを紹介します。
関連する環境とサービスのデータアクセス ログを適用する。監査ログを有効にして、プラットフォーム リソースの管理アクティビティとアクセスを記録することをおすすめします。監査ログを使用すれば、「誰が、どこで、いつ、何をしたのか」という問いに答えることができます。監査ログは、プラットフォーム上の潜在的な脆弱性やデータの不正使用のモニタリングに役立ちます。
アプリケーションで使われるすべてのコンポーネントのネットワークに関連するロギングを有効にする。ネットワーク関連のログ(VPC フロー、ファイアウォール ルール、DNS クエリ、ロードバランサなど)は、ログのパフォーマンスに関する重要な情報を提供するだけでなく、不正なログインやマルウェア検出など、脅威検出に関する重大なセキュリティ関連イベントに対する可視性を得るうえでも役立ちます。
ログを中央プロジェクトに集約して、レビューと管理を簡素化する。現在、大半のアプリケーションは分散アーキテクチャであるため、アプリケーション全体の稼働状況を可視化しにくくなっていますが、単一のプロジェクトにログを保持することで、管理とモニタリングが容易になります。これにより、最小権限の原則に沿って、ログデータへのアクセスを必要なチームのみに限定するための Identity and Access Management(IAM)が簡単になります。
組織のポリシー、規制要件、コンプライアンス要件に基づいて保持期間を構成する。ログの保持ポリシーを作成して管理すると、ログデータをどの程度の期間にわたって保存する必要があるかを判断するうえで役立ちます。保持期間は業界の規制、適用される法令、内部的なセキュリティの懸念事項を踏まえて決定します。
即時調査が必要なイベントを区別するためのアラートを構成する。すべてのイベントやアプリケーションが同じように作られているわけではありません。運用チームは、どのイベントをどの順番で処理すべきかを明確に把握する必要があります。アラートは、優先度が高いアラートと低いアラートの階層に基づく必要があります。
ロギングとモニタリングに付随する費用の計画を立てる。ロギングとモニタリングは絶対に欠かせないものですが、ログデータの追跡、保存、可視化とアラートにかかる費用について、計画を立てておくことも重要です。どの程度の費用になるか、運用チームは信頼できる想定額を見積もる必要があります。費用の予想には、Google Cloud 料金計算ツールなどが役立ちます。
継続的かつ自動的なログ モニタリングを実施する。効果的なロギングとモニタリングの重要なもう一つの側面は、ログを積極的にモニタリングして、構成ミスや脆弱性、脅威検出などのセキュリティ問題を特定しアラートを作成することです。Security Command Center などのサービスは構成ミスと脆弱性の発見、コンプライアンスに関する報告と遵守状態の維持、脅威の標的の検出をサポートしています。また、さらに詳しい分析のために、ログデータを SIEM(セキュリティ情報およびイベント管理)と SOAR(セキュリティ オーケストレーション、自動化、対応)システムに統合できるソリューションでなければなりません。
まとめ
ロギングとモニタリングはどちらも、サービスの中断を最小限に抑え、可用性の高い一貫したパフォーマンスを維持するうえで、e コマース アプリケーションをはじめとするすべてのアプリケーションに欠かせない重要なものです。これらのサービスは、アプリケーションと基盤のインフラストラクチャに関する重大な情報を追跡して、異常検出だけでなく潜在的な問題の特定にも効果を発揮します。
ロギングとモニタリングによって追跡するデータの範囲は、アプリケーションの重要度に応じて変える必要があります。通常、収益の創出に直接貢献するミッション クリティカルおよびビジネス クリティカルなアプリケーション(e コマース プラットフォームなど)には、重大ではないアプリケーションよりも重要度の高いモニタリング アラートを備える詳しいロギングが必要です。詳細なロギングとモニタリングは、センシティブ データを含むすべてのアプリケーションや、ファイアウォールの外からアクセスできるアプリケーションにも適用するべきです。
Google Cloud は、マネージド Prometheus ソリューションや Grafana 用の Cloud Monitoring プラグインといったオープンソース プラットフォームのサポートを含め、ロギングとモニタリングを目的とするさまざまなツールを提供しています。ログの検索、ソート、クエリを行う機能に加え、ログの例外を自動的に分析し、有意なエラーグループとしてインテリジェントに集約する高度なエラーレポートもサポートしています。サービスレベル目標(SLO)のモニタリングを使えば、SLO 違反が発生するたびにアラートが生成されます。さらに、モニタリング ソリューションを利用すれば、構成の追加なしにクラウド リソースとサービスを可視化することが可能です。
- Google Cloud プリンシパル アーキテクト Vikas Saini
- グローバル小売ソリューション リード Logan Vadivelu


