1600以上のパブリッシャーに高い可用性と低レイテンシーのプラットフォームを提供するAdmiral

Arisa Izuno
The Distributed SQL Blog
Dec 11, 2023

本記事は、The Distributed SQL Blog にて2023年11月3日に公開された “Admiral’s Promise to 1600+ Publishers: Unmatched Availability and Unparalleled Low Latency” を翻訳および一部訳注を追加しております。最新情報は英語版の記事を参照してください。

Admiralは、CNBC、CBS Interactive、Bored Pandaなど、世界中の1600以上のパブリッシャーに利用されている、ビジター・リレーションシップ・マネジメント(VRM)プラットフォームを提供しています。Admiralは、オンライン環境をナビゲートするパブリッシャーにとって重要なパートナーであり、視聴者エンゲージメントの向上、購読の合理化、収益ストリームの最適化を支援しています。

AdmiralのVRMプラットフォームは、GDPRとCCPAのプライバシーとコンプライアンス標準を遵守しながら、登録をシンプルにします。また、パブリッシャーが広告ブロックの回避やデジタル購読管理などの課題に取り組むためのツールキットも提供しています。Admiralの目標は、パブリッシャーに有益な環境を提供し、進化するデジタルランドスケープにおける持続可能な成長への道を開くことです。

Admiralの顧客例

前述したように、VRMプラットフォームは、ユーザーが以下を実施するのに役立つデータ中心型サービスを提供します:

  • 広告ブロックによる減収の回復:業界をリードするインプレッションごとのレビューと洞察に満ちた分析を提供
  • プライバシーと同意の管理:AdmiralのConsent Management Platformを使用して、ユーザーのプライバシーを保護し、包括的なGDPRおよびCCPAコンプライアンスを確保
  • ユーザー登録とメール獲得:ゲート化、ターゲットセグメント、戦略的オファーにより、メール登録と一次データ収集を強化
  • ソーシャル購読:様々なソーシャルプラットフォームのフォロワー数を増やし、サイトのトラフィックとエンゲージメントを高めることで、購読者のデジタルフットプリントを拡大

AdmiralのVRMプラットフォームの技術要件

Admiralのグローバル・アーキテクチャは、パフォーマンスと耐障害性を重視しています。以前使用していたMongoDBソリューションは、大規模で複雑なデータセットを処理するのに十分な柔軟性や拡張性がありませんでした。CockroachDBの評価では、レイテンシーに大きな問題がありました。彼らは、これらの課題をすべて克服するデータベースを求めていました。

Admiralは、適切なデータベースがあれば、リアルタイムのユーザー・エンゲージメントやアイデンティティ・アクセス管理(IAM)サービスなどを強化できると確信していました。そして彼らは、YugabyteDB Managedを選択しました。

Admiralのデータベース選択の指針となったのは、以下の要件でした:

  • パブリッククラウドの使用:YugabyteDB ManagedをGoogle Cloudにデプロイするマルチクラウド戦略
  • スキーマ:YCQL(Cassandra)とYSQL(PostgreSQL)両方のAPI
  • ワークロードの特徴:読み込みが多い
  • デプロイメント:Admiralには、2つの主要なアプリケーション用に2つのデプロイメント・セットがある。どちらもマルチリージョン。
    ・ アイデンティティとアクセス管理(IAM) — 米国にまたがる3リージョンの同期クラスタと、5つのリージョン(米国、欧州、アジア)にまたがる5つのリードレプリカクラスタから構成。
    ・ 時系列イベント — 3大陸(米国、欧州、アジア)にまたがる5つの独立したクラスタで構成され、クラスタ構成は3×4から3×16の間で変化する。
  • 主なデータベース要件:Admiralには、地理的分散と高性能という2つの重要な要件があった。
    データベースは複数の大陸に地理的に分散し、異なるパブリック・クラウド間で低レイテンシーでデータにアクセスできるようにする必要がある。
    システムは、読み込み速度10ms以下、書き込み速度200ms以下という驚異的な高速ルックアップを保証する必要がある。パフォーマンスに関しては、最大規模のリージョンにおいて、データベースは月間約20億件のイベントをサポートし、ピーク時には毎分最大50,000件の読み取り要求を管理し、1時間あたり100万から300万人の保留中のユーザーを処理する必要がある。
  • その他のデータベース要件
    高可用性
    運用がシンプルな水平スケーリング
    通信と保管データの暗号化
    オープンソースへの貢献

最適な運用パフォーマンスで可用性の高い地理分散アプリケーションを展開

これらの要件に基づき、Admiralは、フルマネージド型のデータベース・アズ・ア・サービスであるYugabyteDB Managed上に、高可用な地理分散アプリケーションを導入しました。

以下は、Admiral社がYugabyteDB Managed上に地理分散アプリケーションを実装した2つのユースケースです。

ユースケース1:IDおよびアクセス管理(IAM)サービスのデータベース・バックエンド

AdmiralはYugabyteDB Managedを利用して、ログイン、アカウント、メタデータ、セッションなどを管理する、パブリッシャーとサブスクライバーを横断するIAMサービスを構築しました。IAMサービスは、YugabyteDB Managed内のグローバルクラスタ上で動作し、可用性とパフォーマンスを高めるためにリードレプリカを使用します。このサービスは2つのAPI、YCQLとYSQLを使用しています。

既存のサブスクライバーとパブリッシャーのアカウントをこの新しいサービスに移行し、2要素認証やソーシャル・ログインなどもサポートしました。さらに、大規模なパブリッシャーは、このサービスを使用してアカウントにメタデータを添付し、ログインやアカウント管理などのエンドユーザー機能を安全に展開することができます。

AdmiralのIAMサービスのトポロジー

トポロジー: 3つのリージョン(East、West、Central US)にまたがる同期レプリケーションのプライマリ・ノードと、非同期レプリケーションのリード・レプリカ(Europe、Asia、US East、US West、US Central)を持つ1つのユニバースで構成されています。これらはプライマリ・ノードと完全には同期していませんが、きめ細かなリードアクセスを可能にするために使用されています。

ユースケース2:YugabyteDB Managedによる地域ターゲティングサービス

Admiralは、ユーザーからの時系列の「イベント」を保存します。「イベント」は、ページビュー、ポップアップ、その他ユーザーが顧客のサイトを訪問している間に起こる重要な事柄で構成されます。このデータは、様々な体験のターゲティングに使用されます。このデータを管理する “イベント“ サービスは、YCQL APIを利用し、リージョンごとに別々のクラスタとして運用されています。

例えば、特定のポップアップを1日1回表示するために、システムはユーザーが最近そのポップアップを見たかどうかをチェックします。ユーザーの訪問からのすべてのイベントはロードされ、「ターゲティング」サービスに送られます。「ターゲティング」サービスは、ユーザーに表示する適切なコンテンツや体験を決定し、各インタラクションがタイムリーで適切であることを保証します。

トポロジー:リージョンごとに独立したクラスターで構成されています。クラスターは米国(East、West、Central)、欧州、アジアの各地域に配置され、それぞれ3ノード、1ノードあたり最大8コアで構成されています。

同期クラスタの活用

アーキテクチャは、耐障害性と一貫性のために同期型マルチリージョン・クラスターを使用しています。データを3つのリージョンに同期して分散させることで、クラウドのリージョンが完全に停止した場合でも、エンドユーザーへの影響を最小限に抑えながらシステムは完全に稼働し続けます。

このデプロイメント戦略では、Admiralは3つの異なるリージョンに最低3つのノードをレプリケートします。リージョンに障害が発生した場合でも、YugabyteDBのクラスターは中断されることなく、稼働しているリージョンからデータ要求に自動的かつ継続的に対応します。

同期型マルチリージョン・クラスタを実装することで、システム全体の一貫性も保証されます。すべての書き込み操作は同期的にレプリケートされ、グローバルに一貫性のあるトランザクションを実現します。

分散SQLデータベース:3つのデータセンターによる高可用性と災害復旧の構成

リードレプリカによるグローバルレイテンシの最適化

Admiralは、リードレプリカを使用して、グローバルアプリケーションの読み込みレイテンシを最適化しています。マルチリージョンのデプロイメントでは、特定のリージョンにリーダーを持つグローバルデータベースを持つことで、ローカルでの低レイテンシの読み取りが保証されます。しかし、他のリージョンのアプリケーションでは、リーダーからのリージョン横断的な読み取りにより、レイテンシが高くなる可能性があります。

Admiral社は、リードレプリカを実装することでこの問題を軽減し、システムの可用性と読み取り効率を高めました。これらのレプリカはオブザーバーノードです。RAFTコンセンサスやリーダー選挙には参加せず、プライマリークラスターとは異なるレプリケーション係数を持ちます。この戦略は、他のリージョンで実行されているアプリケーションにとって、読み取りデータの多少の遅延が許容できる場合に特に効果的です。その結果、より効率的で応答性の高いグローバルアプリケーションが実現します。

高可用性

YugabyteDBに組み込まれた回復力により、Admiralは高可用性(HA)の要件を満たすことができます。YugabyteDBは、現在のリーダーに障害が発生した場合に即座に引き継げるよう、アクティブなレプリカを準備しておくことでHAを保証し、中断のないサービスを保証します。

Admiralの構成では、YB-TServerであれYB-Masterであれ、ノードに障害が発生すると、システムの操作性を維持するために自動回復がトリガーされます。YB-Masterは、通常のI/Oオペレーションパスでは重要ではありませんが、様々なノードにあるピアとRaftグループ内で動作します。これらのノードには、アクティブ・マスターとスタンバイ・マスターの両方が配置されています。アクティブ・マスター(YB-Masterリーダー)が故障した場合、ピア間で迅速な再選挙プロセスが発生します。新しいYB-Masterのリーダーは、障害が発生してから数秒以内に選出され、アクティブ化されます。

まとめ

インフラストラクチャの重要なコンポーネントとしてYugabyteDB Managedを利用することで、Admiralはパブリッシャーに一貫してビジター・リレーションシップ・マネジメント(VRM)サービスを提供するための強固な基盤を構築しました。信頼性が高く、地理的に分散されたデータベースを採用することで、AdmiralはVRMプラットフォームを拡充し、より良いユーザー・インタラクションや合理化されたオペレーションを推進しています。このプラットフォームの綿密な設計と戦術的な展開により、デジタルパブリッシング業界における現在の課題を解決するだけでなく、将来的な革新と著しい成長のための基盤を築くことができました。

YugabyteDB ManagedとAdmiralで使用されている機能の詳細については、以下のリソースをご覧ください:

  1. 木曜日のデモに参加して、ジオ・パーティショニングの実例をご覧ください。
  2. YugabyteDB Managedのフル機能が使用できる無料トライアルにサインアップして、ジオ・パーティショニングをお試しください
  3. YugabyteDBを使用したグローバル・アプリケーションの構築方法について、ドキュメントおよびブログをご覧ください。

--

--