このページでは

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

特定の地域からのイベントがAmplitudeに届かない場合

特定の地域のユーザーからのイベントがAmplitudeに表示されなくなった場合、通常その原因はSDKの設定やAmplitudeの取り込みエンドポイントではありません。 最も多い原因は、AmplitudeのAPIドメインに対するDNSポイズニングです。DNSポイズニングは、攻撃者がDNSサーバーのキャッシュに偽の情報を挿入することで発生します。これにより、DNSクエリは誤った応答を返し、ユーザーは間違ったウェブサイトへと誘導される可能性があります。

この記事では、DNSポイズニングがイベント配信に影響を与える理由、その確認方法、およびその解決方法について説明します。

重要

AmplitudeはDNSポイズニングを防止することはできません。これは、Amplitudeの制御外のネットワークレベルで発生するためです。詳細については、DNSキャッシュポイズニングを参照してください。

イベントの流れが停止する理由

AmplitudeのSDKは通常、イベントデータを次のAmplitudeの取り込みエンドポイントに送信します:

  • https://api.amplitude.com
  • https://api2.amplitude.com

これらのドメインが、DNSポイズニングの対象となる可能性があります。対象となった場合:

  • デバイスはAmplitudeの取り込みドメインを正しく解決できません。
  • AmplitudeのAPIエンドポイントへのリクエストは、ネットワークを離れる前に失敗します。
  • ユーザーのデバイスからのイベントがAmplitudeに到達することはありません。

DNSポイズニングを確認する方法

イベントがAmplitudeに到達していないと思われる場合:

  1. イベントログを確認する:他の地域のイベントは正常であるにも関わらず、特定の地域からのイベントが突然減少したり完全に停止したりしていないかどうか確認してください。
  2. DNS解決をテストする:影響を受けている地域内からapi.amplitude.com解決します。ドメインが正しく解決されない場合や、無効なIPアドレスを指している場合、そのドメインはポイズニングされている可能性があります。
  3. 別のネットワークを使用する:影響を受けていない地域から同じイベントを送信します。イベントが成功した場合、問題はその地域に固有です。

DNSポイズニングの解決

DNSポイズニングを直接防止することはできませんが、次の戦略を使用することで、影響を受ける地域からのイベントが引き続きAmplitudeに到達できるようになります。

影響を受けた地域のイベントをリレーするためにドメインプロキシをデプロイする

影響を受けている地域内に、トラフィックをAmplitudeに転送するドメインプロキシを設定します。次に、api.amplitude.comではなくこのプロキシにデータを送信するようにSDKを設定します。

オプションについては、ドメインプロキシを使用してイベントをリレーする方法を参照してください。

このソリューションで解決される理由

  • SDKによって、管理されているカスタムドメイン(例:https://analytics.yourdomain.com)にイベントが送信されます。
  • そのドメインはその地域でホストされており、DNSポイズニングなしで解決されます。
  • リバースプロキシによって、イベントがAmplitudeの取り込みエンドポイントへと転送されます。

長所

  • アナリティクス設定への変更が最小限ですみます。
  • イベントはリアルタイムで転送され、遅延はほとんどありません。

短所

  • 影響を受ける地域内にインフラストラクチャ(またはリバースプロキシをサポートするCDN)が必要になります。
  • プロキシを維持および保護する必要があります。

独自のサーバーまたはAPIを介してイベントをルーティングする

すべてのデータを直接Amplitudeに送信するのではなく、独自のサーバーエンドポイントに送信するようにSDKを設定します。このアプローチはドメインプロキシの導入と似ていますが、影響を受ける地域からのイベントだけでなく、すべてのイベントに適用されます。このアプローチにより、より柔軟にデータを好みのデータウェアハウスに保存し、Amplitudeと統合できます。

このソリューションで解決される理由

  • クライアントSDKによって、イベントはサーバーに送信されます(例:https://events.yourcompany.com)。
  • サーバーはイベントを取り込み、データをお客様のインフラストラクチャ(Amazon S3など)に保存します。
  • Amplitudeとの連携(Amazon S3など)はお客様が設定します。
  • サーバーはブロックされないため、クライアント側のリクエストが失敗した場合でもデータは流れます。

長所

  • データルーティングとリトライロジックを完全に制御できます。
  • すでにバックエンドインフラストラクチャを導入している場合、実装が簡単です。

短所

  • データパイプラインがやや複雑化します。
  • バッチ処理方法と転送方法によっては、イベントがさらに遅延する場合があります。

関連コンテンツ

これは役に立ちましたか?