イベント ストリーム処理での Azure Kubernetes

Azure Kubernetes Service (AKS)
Azure IoT Hub
Azure Event Hubs
Azure Functions
Azure Cosmos DB

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

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

この記事では、KEDA スケーラーを使用する Azure Kubernetes Service (AKS) で実行される、サーバーレス イベントドリブン アーキテクチャの 1 つのバリエーションについて説明します。 このソリューションは、データのストリームを取り込み、そのデータを処理し、その結果をバックエンド データベースに書き込みます。

アーキテクチャ

この記事で説明するデータ フローを示すアーキテクチャ図。

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

  1. KEDA スケーラーを持つ Azure Kubernetes Service (AKS) が使用され、処理する必要のあるイベント数に基づいて、Azure Functions コンテナーが自動スケーリングされます。
  2. イベントが入力イベント ハブに到達します。
  3. バッチ解除とフィルター処理の Azure 関数がトリガーされ、イベントを処理します。 この手順では、出力イベント ハブに送信する前に、必要のないイベントをフィルター処理で除外し、受信したイベントをバッチ解除します。
  4. バッチ解除とフィルター処理の Azure 関数でイベントを正常に保存できなかった場合、イベントは配信不能イベント ハブ 1 に送信されます。
  5. 出力イベント ハブに到達したイベントにより、変換の Azure 関数がトリガーされます。 この Azure 関数により、イベントは Azure Cosmos DB インスタンス用のメッセージに変換されます。
  6. イベントが Azure Cosmos DB データベースに保存されます。

Components

  • Azure Kubernetes Service (AKS) を使用すると、運用上のオーバーヘッドが Azure にオフロードされるため、Azure でのマネージド Kubernetes クラスターのデプロイが簡素化されます。 ホストされた Kubernetes サービスとして、Azure によって正常性監視やメンテナンスなどの重要なタスクが処理されます。
  • KEDA は、処理する必要のあるイベント数に基づいて Kubernetes クラスター内のコンテナーをスケーリングするために使用される、イベントドリブンの自動スケーラーです。
  • Event Hubs は、データ ストリームを取り込みます。 Event Hubs は、高スループットのデータ ストリーミング シナリオ用に設計されています。
  • Azure Functions はサーバーレス コンピューティングの 1 つのオプションです。 ひとまとまりのコード ("関数") がトリガーによって呼び出されるイベント ドリブン モデルが使用されます。
  • Azure Cosmos DB は、サーバーレスの使用量ベース モードで使用できるマルチモデルのデータベース サービスです。 このシナリオでは、Azure Cosmos DB for NoSQL を使って、イベント処理関数によって JSON レコードが格納されます。

注意

モノのインターネット (IoT) のシナリオでは、Azure IoT Hub を使用することをお勧めします。 IoT Hub には、Azure Event Hubs API と互換性がある組み込みのエンドポイントが含まれているため、このアーキテクチャではどちらのサービスも使用できます。その際、バックエンド処理に大きな変更は必要ありません。 詳細については、「IoT デバイスを Azure に接続する:IoT Hub と Event Hubs」を参照してください。

シナリオの詳細

この記事では、KEDA スケーラーを使用する AKS 上で実行されるサーバーレス イベントドリブン アーキテクチャについて説明します。 このソリューションは、データのストリームを取り込み、そのデータを処理し、その結果をバックエンド データベースに書き込みます。

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

考えられるユース ケース

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

共同作成者

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

プリンシパル作成者:

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

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

次の手順