이번에 컨설팅 할 고객 측에서 Firebase를 사용 중이고 이를 Amplify와 같은 서비스를 활용해서 AWS로 마이그레이션이 가능한지에 대한 정보를 원했다...

해당 사항과 관련한 내용을 정리해보고자 한다!


일단 마이그레이션이 가능하긴 하다.. 단지 공수가 많이 들어갈 뿐이다;;

 

먼저 Firebase, Amplify 두 서비스 모두 Backend 개발에 도움을 주는 느낌이다.

 

Firebase

  • 모바일 애플리케이션 개발 플랫폼

https://velog.io/@realryankim/FireBase란

 

 

Firebase - Amplify 기능 매치

Firebase Amplify
Firebase Authentication Cognito
Firebase Hosting Amplify Console
Cloud Functions Lambda Function
Cloud Firestore DynamoDB
Realtime Database AppSync(GraphQL)
Cloud Storage S3
Google ML kit SageMaker, ML Services
Crashlytics X
Performance Monitoring X
Test Lab, A/B Testing Amplify Admin UI
Google Analytics Pinpoint, Kinesis
Remote Config Amplify Admin UI
Predictions X
Cloud Messaging Pinpoint

(참고: https://bejamas.io/compare/aws-amplify-vs-firebase/#continuous-deployment)

 

[차이점]

  • Google UI Toolkit Flutter의 경우 아무래도 같은 Google 생태계라 Firebase에 유리
    • 물론 Amplify에도 Flutter 있음
  • CI/CD의 경우 Amplify가 유리
    • Firebase의 경우 delivery → deployment 과정에서 개입이 필요함(실제 배포의 경우)
    • Amplify는 알아서 실제 배포까지 적용 시켜줌
  • 비용의 경우 Amplify가 조금 더 비쌀 수 있음...(계산 필수)

 

[관련 workshop]

https://catalog.us-east-1.prod.workshops.aws/workshops/c2c0b179-6b4e-4133-8ea7-989fd2ba71a1/en-US/prepare

결국엔 다 코드 단 작업이 필수적으로 들어가게 됨.. 공수가 많이 든다.

Google의 SDK와 AWS SDK는 다르기 때문에 이 점도 생각 해봐야한다...😅


해당 과정을 간단히 정리해보자.

 

마이그레이션 과정

  • Firebase Auth → Cognito
    • Cognito의 사용자 마이그레이션 기능 사용
    • 사용자가 Cognito로 처음 로그인 시도할 때 Lambda를 사용해 사용자를 대신해 Firebase 인증으로 로그인 하는 방식
      • Firebase에 성공적으로 로그인하면 사용자의 자격 증명이 Cognito에 복사된다.
  • Data Layer: DB, Storage를 Cloud Firestore와 동기화 상태로 유지
    • Firestore Data → DynamoDB
      • 데모용으로 작은 문서 지향 스키마를 마이그레이션 해볼 것
      • 실제 상황의 경우
        • Step Functions를 사용해 인프라 배포 중 자동으로 수행되게..
        • Lambda 함수를 오케스트레이션하여 Firestore 데이터를 일괄적으로 읽고 SQS를 사용해 대기열을 통해 DynamoDB에 대한 쓰기를 하게끔
    • Google Cloud Storage → S3
      • Google Cloud SDK를 사용해 S3에 동기화
    • Firestore listener service
      • 변경사항을 DynamoDB에 전파 및 AppSync no-op 변형을 트리거 해 연결된 클라이언트에 업데이트 푸시
    • 동기화, 리스너의 경우 Docker를 사용해 컨테이너화 후 Fargate를 활용해 실행할 것
  • App Tier
    • AppSync는 GraphQL을 통한 실시간 구독 지원 → Firestore Listener 사용하던 곳에 AppSync 구독

 

 

결론적으론, 마이그레이션은 가능하지만 생각보다 귀찮은 과정이 필요하다.

Amplify와 Firebase에 익숙치 않다면 각각의 서비스 공부 과정도 필요하다.

 내가 걱정되는 부분은 Data Migration 과정에서 데이터 양이 많다면... 시간과 복잡도가 증가할 듯

(중간 중간 체크 과정이 필요하며 신중하게 진행할 것)

또, Amplify API 및 SDK로의 코드 변경이 필수.. 해당 과정 공수가 많이 들 듯?

 

 

❗ 그냥 Amplify에서 새로 구축하는 것도 하나의 방법일 듯 싶다...ㅎㅎ ❗

'Cloud > AWS' 카테고리의 다른 글

[AWS] AWS IoT Greengrass V2 실습 -2  (0) 2023.01.26
[AWS] AWS IoT Greengrass V2 실습  (0) 2023.01.26
[AWS] re:Invent 2022 정리  (0) 2022.12.19
[AWS] Windows Server RDP 접속  (0) 2022.12.09
[AWS] Serverless Service - DynamoDB 편(4)  (0) 2022.12.08

+ Recent posts