最近、Azure の「Azure SignalR サービス」と Azure App Service を使用して、リアルタイム チャット アプリを構築しました。魔法のように機能しました。とても気に入りました。ただし、現在はプラットフォームに AWS を使用するよう制限されているため、AWS サービスのみを活用してリアルタイム サービスを構築できる同等の代替サービスが必要です。
Azure SignalR Service と Azure App Service を使用して Azure アプリを構築したのと同様のリアルタイム アプリを構築するために活用できる、AWS の同等のサブサイトは何ですか?
私の計画は、API Gateway と AWS Elastic Beanstock の両方を使用することです。ここでの選択肢は何ですか? Elastic Beanstock は機能しますか? ダウン期間に AWS リソースが停止したり、WebSocket 接続が切断されたりしないように、Elastic Beanstock に何らかの常時オン機能を実装する必要があるかどうかはわかりません。
1 つ注意すべき点があります。このプロジェクトの一環として私が抱えている厳しい要件の 1 つは、HTTP REST フル API を作成することです。私の計画では、これを API Gateway プロキシの背後に配置する予定です。
AWSはAPIゲートウェイを使用してリアルタイムサービスを提供すると述べている。
ただし、API Gateway 内では、「WebSocket API」ではなく「HTTP API」を作成する必要があると思います。たとえば、ASP.NET Core Web API を使用するバックエンド Web API がある場合でも、WebSocket API を選択できますか?
AWS の「WebSocket API」を使用する場合、リアルタイム性を維持しながら、バックエンドの ASP.NET COre Web API 用の API フロントエンド (プロキシ) を作成するにはどうすればよいでしょうか?
ベストアンサー1
必要なのは Amplify と AWS IoT Gateway です。IoT GW は、MQTT と WebSocket を使用した pub-sub を提供します。
https://docs.amplify.aws/lib/pubsub/getting-started/q/platform/js
Web アプリの場合、認証トークンを取得してトピックをサブスクライブまたは公開できる JS ライブラリがあります。サーバー側では、AWS SDK を使用してトピックにメッセージを公開できます。