Pub/Sub によりこれまで以上にアクセスしやすくなったスケーラブルなリアルタイム分析
Google Cloud Japan Team
※この投稿は米国時間 2020 年 12 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。
近頃はリアルタイム分析がビジネスに欠かせなくなっています。最新のデータに基づくリアルタイムの自動意思決定は、もはや高度なテクノロジー ファーストの企業だけのものではありません。それは、ビジネスを行うための基本的な方法になりつつあります。IDC によれば、作成されるデータの 4 分の 1 以上は、今後 5 年でリアルタイムのデータになります。この増加を促進していると思われる要因は、サービスとユーザー エクスペリエンスの品質向上という競争圧力です。もう一つの要因は、従来のさまざまなビジネスのコンシューマライゼーションです。以前はエージェントによって行われていた多くの機能が消費者自身によって行われるようになりました。現在、銀行、小売業者、サービス プロバイダはそれぞれ、内部アプリからモバイルアプリ、ウェブアプリまで、多数のユーザー インターフェースを用意する必要があります。こうしたインターフェースは動作のために新しいデータを必要とするだけでなく、前例のない規模でトランザクション データやインタラクション データを生成します。
リアルタイム データはアプリケーション機能に関するものだけではありません。優れたユーザー エクスペリエンスを提供するためのオペレーション スケーリングの基盤となるものです。たとえば、最新のシステム モニタリング、アラート、カスタマー サービス ダッシュボードに加え、産業機械からカスタマー サービス オペレーション、コンシューマ デバイスまでのあらゆるものの自動制御などを可能にします。これにより、データのインサイトがより迅速に行動につながるようになり、運用の反応性が向上します。
Emarsys のデータ部門責任者である Levente Otti 氏は、次のように述べています。「Google Cloud を使用して、真にリアルタイムのエンゲージメント プラットフォームを構築できました。以前は、毎日データをバッチ処理することが当たり前になっていました。今はイベントが発生した場合でも、マーケティング アクションを数秒以内に実行でき、顧客も即時に対応ができるようになりました。その結果、市場での競争力がはるかに高まりました。」
すべてのリアルタイム分析はメッセージングから始まる
Google では、創設当初から大規模なリアルタイムのユーザー エクスペリエンスを作成するという課題に取り組んできました。このためのソリューションに含まれる重要なコンポーネントが Pub/Sub です。Pub/Sub は水平スケーリング可能なグローバル メッセージング システムです。広告、検索、Gmail などの Google サービスは 10 年以上にわたって、このインフラストラクチャを使用して 1 秒間に億単位のイベントを処理してきました。
数年前、このシステムは Cloud Pub/Sub として世界中で利用できるようになりました。Pub/Sub の使いやすさは圧倒的です。従来のメッセージング ミドルウェアにも同様の機能が多数ありましたが、水平スケーリングができるように設計されていなく、サービスとしても提供されていませんでした。オープンソースのストリーム処理プラットフォームである Apache Kafka は、スケーラビリティの問題を解決するために、水平スケーラブル可能なストリーミングの読み書きをサポートする分散されたパーティション ログを作成しました。同じ考えに触発されてマネージド サービスが登場しました。こうしたサービスは通常、パーティションやクラスタなど、固定されたローカル リソースの概念に基づいているため、データのグローバル配信や容量管理に関する問題の解決を依然としてユーザー任せにしていました。
Pub/Sub は自動化された容量管理を極限まで向上させました。トピックごとに最大 10,000 のサブスクリプションがサポートされているため、データのプロデューサーはサブスクライバーへのデータ配信に必要な容量について悩まずに済みます。実際、データを読み取るために必要な容量に対する料金は、データのプロデューサーを介さず消費者に請求されます。Pub/Sub のグローバルな性質は唯一無二で、1 つのエンドポイントが近くのリージョンに解決され、データを高速に永続化します。一方、サブスクライバーはすべてのリージョンから集約された単一のデータ ストリームをどこでも受信できます。同時に、ユーザーはデータの保存場所と保存経路を正確に制御し続けることができます。これにより、Pub/Sub は BigQuery への取り込みから Dataflow によるリアルタイムの自動 AI 支援意思決定まで、Google Cloud や他の環境の幅広いアプリケーションにデータを提供する便利な方法となります。また、データ使用者は統合されたフィードバック ループを簡単に作成できます。CME Group のデータサービス担当グローバル ヘッドである Trey Berre 氏は、次のように述べています。「当社の世界中のクライアントは、クラウド内で高品質のリアルタイム データをいっそう求めるようになっています。Google Cloud との革新的なコラボレーションにより、お客様はインターネット接続を使用してどこからでも必要なデータに簡単にアクセスできるようになるだけでなく、市場データを新しいクラウドベースのテクノロジーに統合するのがこれまでに以上に簡単になります。」
メッセージングをよりアクセス可能に
2020 年に、Google は Pub/Sub をさらにシンプルにすることに注力しました。一部のユーザーはアプリケーションの設計をサービスによる保証に適合させる必要があることがわかりました。また、超低費用の目標を達成するために、費用を最適化した独自の Apache Kafka クラスタの構築を迫られているユーザーもいました。このような問題点に対処するために、Pub/Sub を複数のユースケースで使いやすくし、お客様の総所有コスト(TCO)を劇的に削減するサービスを導入しました。
費用対効果の高い取り込みオプション
Google は、水平スケーリング可能なメッセージング サービスを必要とするお客様向けに、費用が最適化されたセルフマネージドのシングルゾーン Apache Kafka や同様の OSS システム並みの料金で利用できる Pub/Sub の別バージョンを構築し始めました。その結果が Pub/Sub Lite であり、独自の OSS ソリューションを実行する際の TCO と同等とかそれ以下に削減できます。Pub/Sub 自体と比べると、Pub/Sub Lite はシングルゾーンの可用性と容量管理モデルがユースケースで機能する限り、10 倍も安くなります。このマネージド サービスは以下のような多くのユースケースに適しています。
セキュリティ ログ分析: 多くの場合はコストセンターであり、脅威を検出するためにすべてのイベントをスキャンする必要はありません。
検索インデックスの作成と提供キャッシュの更新: 一般に「ベスト エフォート」の費用削減策であり、信頼性の高いメッセージング サービスは不要です。
ゲームとメディアの行動分析: スタートアップを軌道に乗せるには低価格が重要になることが少なくありません。
Pub/Sub と Pub/Sub Lite のいずれを選択すべきかに関するガイド と料金の比較をご確認いただくと、お客様に Pub/Sub Lite が適しているかどうかを判断するのに役立ちます。
スケールできる包括的なエンタープライズ向けメッセージング
今年、Pub/Sub には、ユーザーがコードを大幅に単純化できるようにする多くの機能が追加されました。追加された機能は次のものを含みます。
スケーラブルなメッセージの順序指定: スケーラブルなメッセージ配信の順序指定は難しい問題であり、一般的な変更データ キャプチャ(CDC)から飛行機の操縦まで多くのアプリケーションにとって重要です。Google では API に最小限の変更を加えるだけで、スケーラビリティとオンデマンド容量を犠牲にせずに、この作業を行うことができました。順序指定が必要なアプリケーションは大幅にステートレスになるため、作成と操作が簡単になります。シャードやパーティションはなく、顧客 ID などのキーのあらゆるメッセージが確実に順番どおりに届きます。
デッドレター トピック: アプリケーション障害が繰り返し発生するメッセージを自動的に検出し、手動のオフライン デバッグを行うために保持できます。これにより、処理時間が節約され、処理パイプラインが低レイテンシで維持されます。
フィルタ: アプリケーションに受信される価値のないメッセージを自動的に破棄し、処理と下り(外向き)料金を節約します。フィルタは構成であるため、コードの記述やアプリケーションのデプロイは必要ありません。非常にシンプルです。
データ所在地の制御: Pub/Sub リソースのロケーションの制限(Pub/Sub がメッセージ データを格納する場所を、組織がパブリッシュ先に関係なく指定できるようにする機能)に加え、リージョン エンドポイントをリリースして特定のリージョン内の Pub/Sub サーバーに接続できるようにしました。
パブリッシャーのフロー制御(Java、Python): クライアント ライブラリに対するさまざまな更新の中でおそらく最も注目に値するものです。フロー制御はもう一つの意外にも困難な問題です。その理由は、多くのアプリケーションで複数のスレッドでデータを同時にパブリッシュする必要があるので、クライアント マシンのネットワーク スタックが過負荷になり、スレッドを調整しない限りデータが失われる可能性があるためです。フロー制御を使用すると、非常に高い、持続可能なパブリッシュ レートを安全に達成できます。
また、構成可能な再試行ポリシーとサブスクリプションの接続の解除も注目に値します。
最近、ユーザーの一人が次のように仰いました。「今すぐこれを利用します。」
次のステップ
Google では今後数か月間、引き続き Pub/Sub とリアルタイム処理ツールを使いやすくしていきます。最新情報を常に把握するには、リリースノートをご覧ください。なお、Google Cloud のリアルタイム ストリーム分析サービスを開始する方法と、そのサービスで実施できるすべてのことについて詳しくは、ドキュメントをご覧になるか、Google Cloud セールスチームにお問い合わせください。
-データ分析担当プロダクト管理ディレクター Sudhir Hasbe
-Google Cloud Pub/Sub プロダクト マネージャー Kir Titievsky