プライベート エンドポイントを持つ VNet でのサーバーレス イベント ストリーム処理

Azure Private Link
Azure Event Hubs
Azure Functions
Azure Cosmos DB

ソリューションのアイデア

この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。

この記事では、仮想ネットワーク内で、データのストリームを取り込んで処理し、その結果をデータベースに書き込む、サーバーレス イベントドリブン アーキテクチャについて説明します。

アーキテクチャ

データが VNet に送られてから、この記事で説明するアーキテクチャによって処理される様子を示す図。

データフロー

  1. VNet 統合は、すべての Azure リソースを Azure プライベート エンドポイントの背後に置くために使用されます。
  2. イベントが入力イベント ハブに到達します。
  3. バッチ解除とフィルター処理の Azure 関数がトリガーされ、イベントを処理します。 この手順では、出力イベント ハブに送信する前に、必要のないイベントをフィルター処理で除外し、受信したイベントをバッチ解除します。
  4. バッチ解除とフィルター処理の Azure 関数でイベントを正常に保存できなかった場合、イベントは配信不能イベント ハブ 1 に送信されます。
  5. 出力イベント ハブに到達したイベントにより、変換の Azure 関数がトリガーされます。 この Azure 関数により、イベントは Azure Cosmos DB インスタンス用のメッセージに変換されます。
  6. イベントが Azure Cosmos DB データベースに保存されます。
  7. 変換の Azure 関数でイベントを正常に保存できなかった場合、イベントは配信不能イベント ハブ 2 に保存されます。

注意

わかりやすくするために、サブネットは図に表示されていません。

Components

  • Azure プライベート エンドポイントは、Azure Private Link を使用するサービスに、プライベートで安全に接続するためのネットワーク インターフェイスです。 プライベート エンドポイントでは、自分の VNet からのプライベート IP アドレスを使用して、サービスを実質的に VNet に取り込みます。
  • Event Hubs は、データ ストリームを取り込みます。 Event Hubs は、高スループットのデータ ストリーミング シナリオ用に設計されています。
  • Azure Functions はサーバーレス コンピューティングの 1 つのオプションです。 ひとまとまりのコード ("関数") がトリガーによって呼び出されるイベント ドリブン モデルが使用されます。
  • Azure Cosmos DB は、サーバーレスの使用量ベース モードで使用できるマルチモデルのデータベース サービスです。 このシナリオでは、Azure Cosmos DB for NoSQL を使って、イベント処理関数によって JSON レコードが格納されます。

シナリオの詳細

このソリューション アイデアでは、データのストリームを取り込み、データを処理して、その結果をバックエンド データベースに書き込む、サーバーレス イベント ドリブン アーキテクチャの 1 つのバリエーションについて説明します。 この例では、すべての Azure リソースがプライベート エンドポイントの背後に置かれている仮想ネットワーク内にソリューションがホストされています。

サーバーレス イベント処理の基本的な概念、考慮事項、方法の詳細については、「サーバーレスなイベント処理」の参照アーキテクチャを参照してください。

考えられるユース ケース

エンドツーエンドのイベント ストリーム処理パターンを実装する一般的なユース ケースには、Event Hubs のストリーミング インジェスト サービスにより、イベントを毎秒受信して、処理するというものがあります。これには、Event Hubs によってトリガーされる高度にスケーラブルな関数によって実装される、バッチ解除と変換のロジックが使用されます。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Rajasa Savant | シニア ソフトウェア開発エンジニア

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順

  • サーバーレスなイベント処理」は、この種類の一般的なアーキテクチャを詳述する参照アーキテクチャです。コード サンプルと重要な考慮事項について説明しています。
  • サーバーレスなイベント処理の監視」では、このようなサーバーレスなイベントドリブン アーキテクチャの監視に関する概要とガイダンスを提供しています。
  • イベント ストリーム処理での Azure Kubernetes」では、KEDA スケーラーを使用して Azure Kubernetes 上で実行される、サーバーレス イベント ドリブン アーキテクチャの 1 つのバリエーションについて説明します。