AWSはFirebaseRealtime Databaseに相当しますか?


82

現在、ReactNativeフロントエンドとLambdaベースのバックエンドで構成される新しいゲームプロジェクトに取り組んでいます。アプリには、アクティブなユーザーレコード、ジオフェンシングなどのリアルタイム機能が必要です。

リアルタイムデータ同期のための本当にエレガントなソリューションのように見えるFirebaseのリアルタイムデータベースを見ていましたが、AWSにはこれに似たものはないと思います。

AWSサービスのみを使用する「サーバーレス」リアルタイムで考えられる3つのオプションは次のとおりです。

オプション1:WebSocketを介したAWSIoTメッセージング

これは非常に明白で、IoTSDKを介したマネージドWebSocket接続です。インバウンドイベントとアウトバウンドイベントに応答してLambdaをトリガーし、WebSocketをリアルタイムレイヤーとして使用して、通常どおりにアプリクライアントでカスタム処理ロジックを構築することを考えていました。

これの欠点は、少なくともFirebaseと比較して、イベントでデータを自分で処理する必要があることです。これにより、WebSocketの上に別の管理レイヤーが追加され、アプリケーションのストアのAPIデータレイヤーで標準化する必要があります。 。

長所:

  • スケーラブルな双方向リアルタイム接続

短所:

  • アプリが開いているときにのみ機能します
  • メッセージ構造を実装する必要があります
  • 管理する複数のトランスポート層

オプション2:プッシュトリガーによる再フェッチ

もう1つのオプションは、プッシュ通知をリアルタイムトリガーとして使用することですが、API Gatewayへの通常のHTTPリクエストを使用して、更新されたペイロードを実際に取得します。

このアプローチが好きなのは、アプリケーションの状態について、1つのトランスポート層と信頼できる唯一の情報源に固執するからです。これらはプッシュ通知であるため、アプリが開いていないときにも更新がトリガーされます。

欠点は、これが多くのカスタム作業であり、プッシュ通知とフェッチする必要のあるデータとの間のマッピングが難しい可能性があることです。

長所:

  • アプリが閉じていてもプッシュ通知は機能します
  • 信頼できる唯一の情報源、トランスポート層

短所:

  • ほとんどのカスタムソリューション
  • 全体としてさらに多くのHTTPリクエストが含まれます

オプション3:Cognito Sync これは私にとっては新しいものであり、サーバーから実際にインターフェースできるかどうかはわかりません。

Cognito Syncは、ユーザー状態の同期を提供します。オフラインサポートを備えたデバイス間で、とにかく使用するCognitoSDKの一部です。私が探しているもののように聞こえますが、デバイスの1つだけでなく、AWSからの更新を変更または「トリガー」できるかどうかについての決定的な証拠を見つけることができませんでした。

長所:

  • 抽象化されたリアルタイムデータモデルを提供します
  • CognitoユーザーレコードOOTBに接続

短所:

  • Lambdasから変更または更新できるかどうかわからない


誰かがLambdaベースのアーキテクチャの一部としてAWSでリアルタイムを実行した経験があるかどうか、そして続行するための最良の方法について意見があるかどうか疑問に思います。


AWSで「Firebase機能」を実装する代わりに、たとえばReactFireを使用してFirebase Webアプリにゲームを実装することを検討しましたか?
matsev 2016

私は持っていますが、AWSがインフラストラクチャの一部として提供する多くのサービスを使用しており、Firebaseはトランスポート層のみを解決します。この場合、残りはAWSによってより適切に処理されます。そうでない場合、ReactFireは優れたオプションになります。
BarakChamo 2016

これがユースケースに当てはまるかどうかはわかりませんが、ElasticacheRedisには使用できるPubSubサービスがあります。おそらく、カスタムロジックがたくさんあります。
Adam Owczarczyk 2017

Cognito Syncは、ユーザーがパーソナライズしたデータの保存に適しています。AWSLambdaトリガーを使用できます。これは、ユースケースに最適です。
Ankit Pise 2017年

私は、AWSのモバイルハブとFirebaseを比較し、このGoogleのクラウド記事は非常に有用であることが判明:cloud.google.com/docs/compare/aws/mobile
MatthewThomasGB

回答:


43

AWSサポートに同様の質問をしましたが、これが彼らの回答でした。

彼らへの私の質問:

同じブラウザ内のリアルタイムDBaaSをFirebaseのように感じさせるAWSサービスのグループ(可能な場合)は何ですか?

AWS Cognitoは、ユーザーアカウントに最適なようです。WebSocket /リアルタイムDBの部分に似たものはありますか?

彼らの反応:

あなたの質問に対して、FirebaseはAWSサービスAWSMobileHubに最も近いです。以下のリンクから、mobilehubに関する詳細を確認できます。

https://aws.amazon.com/mobile/details/ https://aws.amazon.com/mobile/getting-started/

「AWSCognitoはユーザーアカウントに最適なようです。WebSocket/リアルタイムDBの部分に似たものはありますか?」

Amazon Dynamodbは、あらゆる規模で一貫した1桁のミリ秒のレイテンシーを必要とするすべてのアプリケーション向けの高速で柔軟なNoSQLデータベースサービスです。これは完全に管理されたクラウドデータベースであり、ドキュメントとKey-Valueストアモデルの両方をサポートします。その柔軟なデータモデル、信頼性の高いパフォーマンス、およびスループット容量の自動スケーリングにより、モバイル、Web、ゲーム、広告技術、IoT、およびその他の多くのアプリケーションに最適です。

Amazon Dynamodbは、フルマネージドで高可用性のインメモリキャッシュであるAmazon DynamoDB Accelerator(DAX)を使用してさらに最適化できます。これにより、1秒あたり数百万のリクエストでも、AmazonDynamoDBの応答時間をミリ秒からマイクロ秒に短縮できます。

詳細については、以下のドキュメントを参照してください。

https://aws.amazon.com/dynamodb/getting-started/ https://aws.amazon.com/dynamodb/dax/

ご不明な点がございましたら、お気軽にお問い合わせください。

ありがとう。

宜しくお願いします、

Tayo O. AmazonWebサービス

AWSサービスに関する顧客の質問に答える記事とビデオのナレッジベースであるAWSサポートナレッジセンターをチェックしてください:https//aws.amazon.com/premiumsupport/knowledge-center/?icmpid = support_email_category

また、この答えを調べている間、私もこれを見つけました、面白そうです:

https://aws.amazon.com/blogs/database/how-to-build-a-chat-application-with-amazon-elasticache-for-redis/

その記事へのコメントも興味深いです。

Jacob Wakeem:このアプローチはaws iotを使用するよりもどのような利点がありますか?IoTには、コードを1行も記述せずに、サーバーレスアーキテクチャを使用して、これらすべての機能を備えているようです。

Sam Dengler:AWS IoTサービスのマネージドPubSub機能は、記事で示したようなメッセージベースのアプリケーションへの優れたアプローチでもあります。Elasticache(Redis)を使用すると、Pub / Subを使用する顧客は通常、キャッシュやリーダーボードなどの他のユースケースのデータストアとしてRedisを使用します。そうは言っても、AWS IoTサービスでElastiCache(Redis)を使用することもできます。 AWSIoTルールエンジンを介してAWSLambda関数をトリガーします。メッセージベースのアプリケーションの設計方法とデータの活用方法によっては、一方のソリューションがもう一方のソリューションよりも適している場合があります。


14

データベースの検索や計算など、さまざまなデータソースを使用したこれらのリアルタイム機能とオフライン機能のいくつかについては、AWSAppSyncを確認してください。


6

AWS Amplifyは、Firebaseに対するAWSの最新の回答です。

モバイルおよびWebアプリケーションを構築する最速の方法

AWS Amplifyは、安全でスケーラブルなモバイルおよびWebアプリケーションを構築するための開発プラットフォームです。これにより、ユーザーの認証、データとユーザーメタデータの安全な保存、データへの選択的アクセスの承認、機械学習の統合、アプリケーションメトリックの分析、サーバー側コードの実行が簡単になります。Amplifyは、バージョン管理、コードテストから本番環境への展開まで、モバイルアプリケーション開発ワークフロー全体をカバーしており、数千人のユーザーから数千万人のユーザーまで、ビジネスに合わせて簡単に拡張できます。Amplifyフレームワークの一部であるAmplifyライブラリとCLIはオープンソースであり、独自のプラグインをカスタマイズおよび作成できるプラグイン可能なインターフェイスを提供します。


それを試してみました。ひどく欠けている。お勧めしません。Firestoreに固執します。Amplifyは、SLA(サービスアカウントごとです。契約がない場合は99%だけが悪いです)、最大接続数、または大規模な動作についても言及していません。貧しい。また、firebase-adminのようなサーバー側のもののためのTypescriptプラグインはありません。
オリバーディクソン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.