Momento、Amazon EventBridge、Amazon DynamoDBによるリアルタイム気象更新システムの構築
Amazon EventBridgeと正式に提携し、リアルタイムのアップデートがこれまで以上に簡単になりました
耐久性のあるデータストアとしてDynamoDBを使用している私たちの多くがそうであるように、データが変更されたときにリアルタイムの更新を取得することが困難であることに気づいたかもしれません。DynamoDBのストリームは、データベースのイベントを監視する方法を提供しますが、効率的に処理するには多くのコードとインフラが必要になります。MomentoとAmazon EventBridgeの新しいパートナーシップにより、リアルタイム更新がこれまで以上に簡単になりました。
MomentoはAmazon EventBridgeのAPI Destination Partnerに正式に認定されました!このマイルストーンを記念して、Amazon EventBridge、Momento、DynamoDBを使用してリアルタイムの天気更新システムを構築しました。どのように動作するのか見てみましょう!
プロジェクトの全体像
私たちの目標は、様々な場所の気象情報を追跡し、リアルタイムで最新情報を配信する堅牢なシステムを構築することです。ストレージにはDynamoDB、イベント処理にはAmazon EventBridge、キャッシュと通知にはMomentoという強力なトリオを使うつもりです。
私たちのサンプルアプリケーションは、異なる地理的な場所の天気情報をDynamoDBのテーブルに保存するように設計されています。特定の場所の天気に更新があるたびに、この変更は即座にキャプチャされ、一連の相互接続されたAWSサービスを使用して伝搬されます。
High-level architecture
すべてがどのように組み合わされているかを視覚化するために、以下のアーキテクチャを考えてみましょう。
DynamoDBで天気のレコードが更新されると、DynamoDBのストリームがEventBridgeを経由するイベントをトリガーします。このイベントは、EventBridge の API デスティネーションとして設定されている Momento HTTP API の 2 つのエンドポイントにルーティングされます: Momento Cache と Momento Topic です。キャッシュは、データベースの負荷を軽減することでパフォーマンスを向上させ、コストを削減します。トピックは、独自のインフラストラクチャを管理することなく、アプリケーション内の他のコンポーネント、またはブラウザやモバイルデバイスに直接配信できるリアルタイムの通知を容易にします。
Getting started with the demo
GitHubのリポジトリをチェックして、ウェブアプリケーションを素早くセットアップして実行できます。
必要なリソースをデプロイするために使用されるCDKコードを理解することに興味がある場合は、詳細な説明のための専用ページを必ずチェックしてください。
Application Workflow
1.ウェブアプリケーションを開く: http://localhost:5173 にアクセスしてウェブアプリケーションを起動します。気象データを入力するためのフォームが表示されます。
2.天気データを入力する: 特定の場所の天気の詳細をフォームに入力し、送信します。このデータはDynamoDBのテーブルに保存されます。
3.データはDynamoDBに書き込まれる: 天気データはDynamoDBに安全に保存されます。即座にDynamoDBのストリームがイベントをトリガーし、EventBridgeに送信されます。
4. EventBridgeの動作 : EventBridgeは、DynamoDBストリームからトリガーされたイベントを処理し、Momento CacheとMomento Topicの両方に転送します。EventBridge Pipesは、ストリームをソース、Momento HTTP APIをターゲットとして接続します。Momento Cache と Topic の API デスティネーションは EventBridge 内で設定され、これらのエンドポイントにイベントを直接ルーティングできます。
5.Momentoによるキャッシュ : 天気データをMomentoにキャッシュすることで、次回以降のDynamoDBの読み込み負荷を軽減し、パフォーマンスを向上させます。
6.リアルタイム通知 : 一方、Momento Topicsはイベントをブロードキャストし、関係者へのリアルタイム通知をシミュレートします。
7.天気記録の削除 : 天気記録を削除することもでき、キャッシュや通知に反映されます。
8.Momento Cacheを更新: 削除されたレコードはMomentoキャッシュからも削除されます。
9.Momentoトピックでイベントを削除する: 最後に、MomentoトピックにREMOVEイベントが表示されます。
Wrapping Up
これで、Amazon EventBridge、Momento、DynamoDBをシームレスに統合したリアルタイムの天気更新システムが完成しました。この例に従って、ライトスルーキャッシュをセットアップし、データベースの負荷を減らし、リアルタイムアップデートでユーザーに情報を提供し続ける方法を学びました。
独自の気象更新システムを構築する準備はできましたか?また、Momentoでの構築の開始方法については、ドキュメントをご覧ください。
Additional Resources
Integrate Amazon DynamoDB Streams with Momento, via AWS EventBridge.