Firebase Realtime Database'in AWS eşdeğeri nedir?


85

Şu anda bir React Native ön ucu ve Lambda tabanlı bir arka uçtan oluşacak yeni bir oyun projesi üzerinde çalışıyorum. Uygulama, aktif kullanıcı kayıtları, coğrafi sınırlama vb. Gibi bazı gerçek zamanlı özellikler gerektirir.

Gerçek zamanlı veri senkronizasyonu için gerçekten zarif bir çözüm gibi görünen Firebase'in Gerçek Zamanlı Veritabanına bakıyordum, ancak AWS'nin buna benzer bir şey olduğunu sanmıyorum.

Yalnızca AWS hizmetlerini kullanarak "sunucusuz" gerçek zamanlı için düşünebileceğim 3 seçenek şunlardır:

1. Seçenek: WebSockets üzerinden AWS IoT Messaging

Bu oldukça açık, IoT SDK aracılığıyla yönetilen bir WebSockets bağlantısı. Gelen ve giden olaylara yanıt olarak Lambdas'ı tetiklemeyi ve gerçek zamanlı katman olarak yalnızca WebSockets'i kullanarak, uygulama istemcisinde normalde yaptığınız gibi özel işleme mantığı oluşturmayı düşünüyordum.

Bunun dezavantajı, en azından Firebase ile karşılaştırıldığında, olaylardaki verileri WebSockets'in üstüne başka bir yönetim katmanı ekleyecek olan ve uygulamanın mağazalarındaki API veri katmanıyla standart hale getirilmesi gerekecek. .

Artıları:

  • Ölçeklenebilir çift yönlü gerçek zamanlı bağlantı

Eksileri:

  • Yalnızca uygulama açıkken çalışır
  • Mesaj yapısının uygulanması gerekiyor
  • Yönetilecek birden fazla taşıma katmanı

2. Seçenek: İtmeyle tetiklenen yeniden getirme

Diğer bir seçenek, anlık tetikleyiciler olarak push bildirimlerini kullanmak, ancak güncellenmiş yükü gerçekten almak için API Ağ Geçidine normal bir HTTP isteği kullanmaktır.

Bu yaklaşımı seviyorum çünkü uygulama durumu için yalnızca bir taşıma katmanına ve tek bir doğruluk kaynağına bağlı kalıyor. Ayrıca, bunlar Push Bildirimleri olduğundan uygulama açık olmadığında güncellemeleri tetikleyecektir.

Dezavantajı, bunun, getirilmesi gereken verilere push bildirimleri arasında potansiyel olarak zor eşleştirmeler içeren çok sayıda özel çalışma olmasıdır.

Artıları:

  • Push bildirimleri, uygulama kapalıyken bile çalışır
  • Tek gerçeğin kaynağı, taşıma katmanı

Eksileri:

  • En özel çözüm
  • Genel olarak çok daha fazla HTTP isteğini içerecek

Seçenek 3: Cognito Sync Bu benim için daha yenidir ve sunucudan gerçekten arayüz ile bağlanıp bağlanamayacağından emin değilim.

Cognito Sync, kullanıcı durumu senkronizasyonu sunar. çevrimdışı destekle tamamlanan cihazlar arasında ve yine de kullanacağım Cognito SDK'nın bir parçası. Tam aradığım gibi görünüyor, ancak yalnızca cihazlardan birinden değil, AWS'den güncellemeleri değiştirmenin veya "tetiklemenin" mümkün olup olmadığına dair kesin bir kanıt bulamadı.

Artıları:

  • Soyutlanmış gerçek zamanlı bir veri modeli sağlar
  • Cognito kullanıcı kayıtlarına bağlı OOTB

Eksileri:

  • Lambdas'tan değiştirilip güncellenemeyeceğinden emin değilim


Lambda tabanlı bir mimarinin parçası olarak AWS üzerinde gerçek zamanlı deneyime sahip olup olmadığını ve devam etmenin en iyi yolu hakkında bir fikriniz olup olmadığını merak ediyorum.


Oyunu AWS'de "Firebase özelliklerini" uygulamak yerine bir Firebase web uygulamasında (ör. ReactFire kullanarak) uygulamayı düşündünüz mü?
matsev

Biliyorum, ancak altyapımızın bir parçası olarak AWS'nin sağladığı birçok hizmeti kullanıyoruz ve Firebase yalnızca aktarım katmanını çözüyor, geri kalanı bu durumda AWS tarafından daha iyi işleniyor, aksi takdirde ReactFire harika bir seçenek olurdu.
BarakChamo

Bunun kullanım durumunuz için geçerli olup olmadığından emin değilsiniz, ancak Elasticache Redis kullanabileceğiniz PubSub hizmetine sahiptir. Muhtemelen bir çok özel mantık tho.
Adam Owczarczyk

Cognito Sync, kullanıcı kişiselleştirilmiş veri depolaması için iyidir ve onunla birlikte AWS Lambda tetikleyicisini kullanabilirsiniz, bu da kullanım durumunuz için kesinlikle iyi çalışır.
Ankit Pise

AWS Mobile Hub ile Firebase'i
MatthewThomasGB

Yanıtlar:


45

AWS Support'a benzer bir soru sordum ve bu onların yanıtıydı.

Onlara sorum:

Aynı tarayıcıda gerçek zamanlı DBaaS hissini Firebase gibi verecek AWS hizmetleri grubu (mümkünse) nedir?

AWS Cognito, kullanıcı hesapları için harika görünüyor. WebSockets / gerçek zamanlı DB bölümü için benzer bir şey var mı?

Cevapları:

Sorunuza göre Firebase, AWS MobileHub hizmetine en yakın olanıdır. Aşağıdaki bağlantıdan mobilehub hakkında daha fazla ayrıntıya göz atabilirsiniz.

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

"AWS Cognito, kullanıcı hesapları için harika görünüyor. WebSockets / gerçek zamanlı DB bölümü için benzer herhangi bir şey var mı?"

Amazon Dynamodb, her ölçekte tutarlı, tek basamaklı milisaniye gecikmeye ihtiyaç duyan tüm uygulamalar için hızlı ve esnek bir NoSQL veritabanı hizmetidir. Tamamen yönetilen bir bulut veritabanıdır ve hem belge hem de anahtar-değer mağaza modellerini destekler. Esnek veri modeli, güvenilir performansı ve üretim kapasitesinin otomatik ölçeklendirilmesi, onu mobil, web, oyun, reklam teknolojisi, IoT ve diğer birçok uygulama için mükemmel bir uyum haline getirir.

Amazon Dynamodb, Amazon DynamoDB yanıt sürelerini saniyede milyonlarca istekte bile milisaniyeden mikrosaniyeye kadar azaltabilen, tam olarak yönetilen, yüksek düzeyde kullanılabilir bir bellek içi önbellek olan Amazon DynamoDB Accelerator (DAX) ile daha da optimize edilebilir.

Daha fazla bilgi için lütfen aşağıdaki belgelere bakın.

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

Başka sorunuz olursa lütfen bana bildirmekten çekinmeyin.

Teşekkürler.

Saygılarımla,

Tayo O.Amazon Web Hizmetleri

Müşterilerin AWS hizmetleriyle ilgili sorularını yanıtlayan makale ve videolardan oluşan bir bilgi tabanı olan AWS Support Knowledge Center'a bakın: https://aws.amazon.com/premiumsupport/knowledge-center/?icmpid=support_email_category

Ayrıca bu cevabı araştırırken şunu da buldum, ilginç görünüyor:

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

O makaleye yapılan yorumlar da ilginç.

Jacob Wakeem: Bu yaklaşımın aws iot kullanmaya göre ne gibi bir avantajı var? Görünüşe göre iot, tek bir kod satırı yazmadan ve sunucusuz mimari ile tüm bu işlevselliğe sahip.

Sam Dengler: AWS IoT hizmetindeki yönetilen PubSub özelliği, makalede gösterildiği gibi mesaj tabanlı uygulamalara iyi bir yaklaşımdır. Elasticache (Redis) ile, Pub / Sub kullanan müşteriler genellikle Redis'i önbelleğe alma, liderlik tabloları vb. Gibi diğer kullanım durumları için veri deposu olarak kullanıyor. Bununla birlikte AWS IoT hizmetiyle ElastiCache (Redis) de kullanabilirsiniz. AWS IoT kural motoru aracılığıyla bir AWS Lambda işlevini tetikleyerek. Mesaj tabanlı uygulamanın nasıl tasarlandığına ve verilerin nasıl kullanıldığına bağlı olarak, bir çözüm diğerinden daha uygun olabilir.


14

Veritabanları arama ve hesaplama dahil olmak üzere farklı veri kaynaklarını kullanan bu gerçek zamanlı ve çevrimdışı özelliklerden bazıları için AWS AppSync'e göz atın.


6

AWS Amplify , AWS'nin Firebase'e modern cevabıdır.

Mobil ve web uygulamaları oluşturmanın en hızlı yolu

AWS Amplify, güvenli, ölçeklenebilir mobil ve web uygulamaları oluşturmaya yönelik bir geliştirme platformudur. Kullanıcıların kimliğini doğrulamanızı, verileri ve kullanıcı meta verilerini güvenli bir şekilde depolamanızı, verilere seçici erişimi yetkilendirmenizi, makine öğrenimini entegre etmenizi, uygulama ölçümlerini analiz etmenizi ve sunucu tarafı kodu yürütmenizi kolaylaştırır. Amplify, sürüm kontrolünden kod testine ve üretim dağıtımına kadar eksiksiz mobil uygulama geliştirme iş akışını kapsar ve işletmenizle binlerce kullanıcıdan on milyonlara kadar kolayca ölçeklenir. Amplify Framework'ün bir parçası olan Amplify kitaplıkları ve CLI açık kaynaklıdır ve kendi eklentilerinizi özelleştirmenize ve oluşturmanıza olanak tanıyan takılabilir bir arayüz sunar.


Denedim. Ciddi derecede eksik. Tavsiye etmeyin. Firestore'a bağlı kalın. Amplify, SLA'dan (hizmet hesabı başına, bir anlaşmanız yoksa kötü olan sadece% 99'u) veya maksimum bağlantıların ne olduğundan veya ölçekte nasıl çalıştığından bahsetmiyor bile. Yoksul. Ayrıca, firebase-admin gibi sunucu tarafı şeyler için Typescript eklentisi yoktur.
Oliver Dixon

Amplify değil, bence her şeyi karmaşık hale getiriyor.
tim


0

Bunun eski bir soru olduğunu biliyorum, ancak günümüzde AWS, Firebase RDB'yi her yönüyle yok eden bir hizmet olan AppSync'i sunuyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.