ソリューションのアイデア
この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。
この記事では、KEDA スケーラーを使用する Azure Kubernetes Service (AKS) で実行される、サーバーレス イベントドリブン アーキテクチャの 1 つのバリエーションについて説明します。 このソリューションは、データのストリームを取り込み、そのデータを処理し、その結果をバックエンド データベースに書き込みます。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
- KEDA スケーラーを持つ Azure Kubernetes Service (AKS) が使用され、処理する必要のあるイベント数に基づいて、Azure Functions コンテナーが自動スケーリングされます。
- イベントが入力イベント ハブに到達します。
- バッチ解除とフィルター処理の Azure 関数がトリガーされ、イベントを処理します。 この手順では、出力イベント ハブに送信する前に、必要のないイベントをフィルター処理で除外し、受信したイベントをバッチ解除します。
- バッチ解除とフィルター処理の Azure 関数でイベントを正常に保存できなかった場合、イベントは配信不能イベント ハブ 1 に送信されます。
- 出力イベント ハブに到達したイベントにより、変換の Azure 関数がトリガーされます。 この Azure 関数により、イベントは Azure Cosmos DB インスタンス用のメッセージに変換されます。
- イベントが 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 にサインインします。
次の手順
- Azure Kubernetes Service の概要
- Azure Event Hubs のドキュメント
- Azure Functions の概要
- Azure Functions のドキュメント
- Azure Cosmos DB の概要
- Azure Cosmos DB で API を選択する
関連リソース
- 「サーバーレスなイベント処理」は、この種類の一般的なアーキテクチャを詳述する参照アーキテクチャです。コード サンプルと重要な考慮事項について説明しています。
- イベント ストリーム処理でのプライベート リンク シナリオは、セキュリティを強化するために、プライベート エンドポイントを持つ仮想ネットワークで同様のアーキテクチャを実装するためのソリューションのアイデアです。