Firebase 실시간 데이터베이스에 해당하는 AWS는 무엇입니까?


82

저는 현재 React Native 프런트 엔드와 Lambda 기반 백엔드로 구성되는 새로운 게임 프로젝트를 진행하고 있습니다. 이 앱에는 활성 사용자 기록, 지오 펜싱 등과 같은 일부 실시간 기능이 필요합니다.

실시간 데이터 동기화를위한 정말 멋진 솔루션처럼 보이는 Firebase의 실시간 데이터베이스를보고 있었지만 AWS에는 이와 비슷한 것이 없다고 생각합니다.

AWS 서비스 만 사용하는 "서버리스"실시간에 대해 생각할 수있는 3 가지 옵션은 다음과 같습니다.

옵션 1 : WebSocket을 통한 AWS IoT 메시징

이것은 IoT SDK를 통한 관리되는 WebSockets 연결이라는 매우 분명합니다. 인바운드 및 아웃 바운드 이벤트에 대한 응답으로 Lambda를 트리거하고 WebSocket을 실시간 계층으로 사용하여 일반적으로 앱 클라이언트에서 사용자 지정 처리 논리를 구축 할 생각이었습니다.

이것의 단점은 적어도 Firebase와 비교할 때 이벤트의 데이터를 직접 처리해야한다는 것입니다. 그러면 WebSocket 위에 또 다른 관리 계층이 추가되고 애플리케이션 저장소의 API 데이터 계층으로 표준화되어야합니다. .

장점 :

  • 확장 가능한 양방향 실시간 연결

단점 :

  • 앱이 열려있을 때만 작동합니다.
  • 메시지 구조를 구현해야합니다.
  • 관리 할 여러 전송 계층

옵션 2 : 푸시 트리거 리 페치

또 다른 옵션은 푸시 알림을 실시간 트리거로 사용하지만 API Gateway에 대한 일반 HTTP 요청을 사용하여 실제로 업데이트 된 페이로드를 가져 오는 것입니다.

저는이 접근 방식이 애플리케이션 상태에 대해 단 하나의 전송 계층과 단일 소스 소스에만 적용되기 때문에 좋아합니다. 푸시 알림이므로 앱이 열리지 않을 때도 업데이트를 트리거합니다.

단점은 가져와야하는 데이터에 대한 푸시 알림 간의 매핑이 잠재적으로 어려운 사용자 지정 작업이 많다는 것입니다.

장점 :

  • 푸시 알림은 앱이 닫혀도 작동합니다.
  • 단일 진실 소스, 전송 계층

단점 :

  • 대부분의 맞춤형 솔루션
  • 전체적으로 더 많은 HTTP 요청을 포함합니다.

옵션 3 : Cognito Sync 이것은 저에게 더 새로운 것이며 실제로 서버에서 인터페이스 할 수 있는지 확실하지 않습니다.

Cognito Sync는 사용자 상태 동기화를 제공합니다. 오프라인 지원으로 완료되고 어쨌든 사용할 Cognito SDK의 일부입니다. 내가 찾던 것 같지만 장치 중 하나가 아닌 AWS에서 업데이트를 수정 또는 "트리거"할 수 있는지에 대한 결정적인 증거를 찾지 못했습니다.

장점 :

  • 추상화 된 실시간 데이터 모델 제공
  • Cognito 사용자 레코드 OOTB에 연결됨

단점 :

  • Lambda에서 수정 또는 업데이트 할 수 있는지 확실하지 않음


Lambda 기반 아키텍처의 일부로 AWS에서 실시간으로 수행 한 경험이 있고 진행하는 가장 좋은 방법에 대한 의견이 있는지 궁금합니다.


AWS에서 "Firebase 기능"을 구현하는 대신 ReactFire를 사용하여 Firebase 웹 앱 에서 게임을 구현하는 것을 고려해 보셨습니까 ?
matsev

하지만 우리는 AWS가 인프라의 일부로 제공하는 많은 서비스를 사용하고 있으며 Firebase는 전송 계층 만 해결하고 나머지는이 경우 AWS에서 더 잘 처리합니다. 그렇지 않으면 ReactFire가 훌륭한 옵션이 될 것입니다.
BarakChamo

이것이 귀하의 사용 사례에 적용되는지 확실하지 않지만 Elasticache Redis에는 사용할 수있는 PubSub 서비스가 있습니다. 아마 많은 사용자 정의 논리가 있습니다.
Adam Owczarczyk

Cognito Sync는 사용자 개인화 된 데이터 저장에 적합하며 AWS Lambda 트리거를 함께 사용할 수 있으며 이는 사용 사례에 절대적으로 적합합니다.
Ankit Pise

AWS Mobile Hub와 Firebase를 비교하는이 Google 클라우드 기사가 매우 유용하다는 것을 발견했습니다. cloud.google.com/docs/compare/aws/mobile
MatthewThomasGB

답변:


43

AWS Support에 유사한 질문을했는데 이것이 그들의 응답이었습니다.

그들에게 내 질문 :

동일한 브라우저 내 실시간 DBaaS에 Firebase와 같은 느낌을주는 AWS 서비스 그룹 (가능한 경우)은 무엇입니까?

AWS Cognito는 사용자 계정에 적합합니다. WebSockets / 실시간 DB 부분과 비슷한 것이 있습니까?

그들의 반응 :

귀하의 질문에 Firebase는 AWS 서비스 AWS MobileHub에 가장 가깝습니다. 아래 링크에서 mobilehub에 대한 자세한 내용을 확인할 수 있습니다.

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

"AWS Cognito는 사용자 계정에 적합한 것 같습니다. WebSockets / 실시간 DB 부분에 유사한 것이 있습니까?"

Amazon Dynamodb는 규모에 관계없이 일관된 한 자릿수 밀리 초 지연 시간이 필요한 모든 애플리케이션을위한 빠르고 유연한 NoSQL 데이터베이스 서비스입니다. 완전 관리 형 클라우드 데이터베이스이며 문서 및 키-값 저장소 모델을 모두 지원합니다. 유연한 데이터 모델, 안정적인 성능 및 처리 용량의 자동 확장을 통해 모바일, 웹, 게임, 광고 기술, IoT 및 기타 여러 애플리케이션에 매우 적합합니다.

Amazon Dynamodb는 완전 관리 형 고 가용성 인 메모리 캐시 인 Amazon DynamoDB Accelerator (DAX)로 더욱 최적화 할 수 있으며, 이는 초당 수백만 개의 요청에서도 Amazon DynamoDB 응답 시간을 밀리 초에서 마이크로 초로 줄일 수 있습니다.

자세한 내용은 아래 문서를 참조하십시오.

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

추가 질문이 있으시면 언제든지 알려주십시오.

감사.

친애하는,

Tayo O. 아마존 웹 서비스

AWS 서비스에 대한 고객 질문에 답변하는 기사 및 비디오의 기술 자료 인 AWS Support Knowledge Center를 확인하십시오. 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는 한 줄의 코드를 작성하지 않고 서버리스 아키텍처를 사용하여 이러한 모든 기능을 제공하는 것 같습니다.

Sam Dengler : AWS IoT 서비스의 관리 형 PubSub 기능은 기사에서 설명한 것과 같은 메시지 기반 애플리케이션에 대한 좋은 접근 방식입니다. Elasticache (Redis)를 사용하면 Pub / Sub를 사용하는 고객은 일반적으로 Redis를 캐싱, 리더 보드 등과 같은 다른 사용 사례의 데이터 저장소로 사용하고 있습니다. 따라서 AWS IoT 서비스와 함께 ElastiCache (Redis)를 사용할 수도 있습니다. AWS IoT 규칙 엔진을 통해 AWS Lambda 함수를 트리거합니다. 메시지 기반 애플리케이션의 설계 방식과 데이터 활용 방식에 따라 한 솔루션이 다른 솔루션보다 더 적합 할 수 있습니다.


14

데이터베이스 검색 및 컴퓨팅을 포함하여 다양한 데이터 원본을 사용하는 이러한 실시간 및 오프라인 기능 중 일부에 대해서는 AWS AppSync를 확인하십시오.


6

AWS Amplify 는 Firebase에 대한 AWS의 최신 답변입니다.

모바일 및 웹 애플리케이션을 구축하는 가장 빠른 방법

AWS Amplify는 안전하고 확장 가능한 모바일 및 웹 애플리케이션을 구축하기위한 개발 플랫폼입니다. 이를 통해 사용자 인증, 데이터 및 사용자 메타 데이터를 안전하게 저장, 데이터에 대한 선택적 액세스 권한 부여, 기계 학습 통합, 애플리케이션 메트릭 분석 및 서버 측 코드 실행을 쉽게 수행 할 수 있습니다. Amplify는 버전 제어, 코드 테스트에서 프로덕션 배포에 이르기까지 완전한 모바일 애플리케이션 개발 워크 플로를 다루며 수천 명의 사용자에서 수천만 명의 비즈니스로 쉽게 확장됩니다. Amplify Framework의 일부인 Amplify 라이브러리 및 CLI는 오픈 소스이며 플러그인을 사용자 지정하고 만들 수있는 플러그 형 인터페이스를 제공합니다.


시도했습니다. 심각하게 부족합니다. 추천하지 마십시오. Firestore에 충실하십시오. Amplify는 SLA (서비스 계정 당, 계약이없는 경우 99 % 만 나쁘다) 또는 최대 연결이 무엇인지 또는 규모에서 어떻게 작동하는지에 대해서도 언급하지 않습니다. 가난한. 또한 firebase-admin과 같은 서버 측 항목에 대한 Typescript 플러그인이 없습니다.
Oliver Dixon

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.