8
votes

Recently, I used Azure's "Azure SignalR Service" along with Azure App Service to build a real time chat app. It worked like magic. I loved it! However, I am constrained now to use AWS for my platform and would like an equal substitute service such that I can build a real time service, leveraging nothing but AWS services.

What is the equal subsitite in AWS that I can leverage so that I can build a real-time app similar to how I built the Azure app with Azure SignalR Service and Azure App Service?

My plan is to use both API Gateway + AWS Elastic Beanstock. What are my options here? Is Elastic beanstock going to work out? Not sure if I need some type of always-on feature implemented in the Elastic beanstock so that down periods dont spin down AWS resources and break WebSocket connections.

1 note worth mentioning. One of the hard requirements I have as part of this project is to create an HTTP rest-full api. My plan is to place this behind the API Gateway proxy.

AWS states that it provides real-time service using API gateway here

https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/

However, within API Gateway I believe I need to create "HTTP API" instead of "WebSocket API". If I have a backend web api using for example ASP.NET Core web api, can I still select WebSocket API? enter image description here

If I go with AWS "WebSocket API", How can I create an API Front end (proxy) for my backend ASP.NET COre web api while still allowing for real time?

2
jbooker, did you find a perfect alternative? - Kapoor
Nothing validated on my end yet.. - jbooker
Looking for exactly something like that. Which option did you choose? Have you thought of rolling your own api gateway with Ocelot? I'm desperately looking for options in AWS to have Websockets play nicely with containers in AWS Fargate. Haven't explored yet ALB which also seems to support Websockets, but not finding much online. - diegosasw
No option chosen yet.. - jbooker

2 Answers

0
votes

Amplify and the AWS IoT Gateway is what you need. The IoT GW offers pub-sub using MQTT and WebSockets.

https://docs.amplify.aws/lib/pubsub/getting-started/q/platform/js

For a web app they have JS libraries that allow you to get an auth token and then subscribe or publish to a topic. On the server side you can use the AWS SDK to publish messages to a topic.

-1
votes

Take a look at AWS AppSync, I think it's similar to what you're looking for.

https://aws.amazon.com/appsync/