ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Flutter] AWS Amplify 리서치
    개발 2023. 12. 6. 11:41

    목적

    회사 내부적으로 클라우드는 AWS를 사용하는것으로 결정이 되어서  Google의 Firebase와 같은 포지션에 있는 Amplify를 사용하고자 리서치를 진행합니다.


    내용

    Amplify 작동 원리

    Amplify는 풀스택 애플리케이션 개발을 위한 모듈식클라우드서비스, 라이브러리모음을 제공합니다.

    각각의 기능들이 통합적,독립적으로 사용할 수 있게 되어있습니다. 


    Amplify 기능

    - 백앤드 구축

    - 백앤드와 프론트앤드 리소스 연결

    - 프론트앤드 앱 호스팅

     

    풀스택 개발시에

    - Amplify를 사용하여 앱의 프론트앤드 호스팅하고

    - GUI, CMD를 통해 백앤드 리소스를 프로비저닝

    - 피그마 코드 생성 및 Amplify의 프론트앤드 라이브러리를 사용하여 앱UI 구축

    더보기

    프로비저닝이란?

    IT 인프라를 설정하는 프로세스, 데이터와 리소스에 대한 엑세스를 관리하는데 필요한 단계

    이 다이어그램은 전체 Amplify 흐름을 보여 주지만, 각 요소를 독립적으로 사용할 수도 있습니다(예: 프론트엔드만 호스팅하거나 UI 컴포넌트를 사용하여 앱의 프론트엔드를 구축하는 등).


    App 구축

    데이터

    Amplify를 사용하면 데이터베이스에 연결된 GraphQL 또는 REST API를 빠르게 설정할 수 있습니다.
    앱의 백엔드에 API를 추가하려면 다음 CLI 명령을 실행하면 됩니다.

    amplify add api

     

    CLI는 스키마를 구성하고 GraphQL 또는 REST 중 하나를 선택하라는 메시지를 표시합니다. 터미널에서 이러한 메시지에 응답하여 API를 설정합니다. Amplify는 AWS AppSync 또는 Amazon API 게이트웨이와 Amazon DynamoDB 데이터베이스로 지원되는 API 프로비저닝을 포함한 백엔드 설정을 처리합니다.

    더보기

    앱싱크(AppSync)는 개발자들이 GraphQL과 Pub API 및 Sub API를 빠르게 생성할 수 있게 해 주는 기능을 가지고 있는 아마존 AWS의 서비스입니다. 

     

    다이나모DB(Amazon dynamoDB)는 키-값 및 도큐먼트 자료 구조를 지원하는 NoSQL 데이터베이스 서비스로, 아마존닷컴이 아마존 웹 서비스 포트폴리오의 일부로서 제공합니다. 

     

    API Gateway는 API를 사용할 때만 비용을 지불하며, HTTP API와 REST API의 경우 수신한 API 호출과 전송한 데이터 양에 대해서만 요금을 지불하면 되는 서비스입니다. 


    인증

    Amplify Auth를 사용하면 애플리케이션에 전체 사용자 인증 흐름을 쉽게 추가할 수 있습니다.
    백엔드 인증을 추가하려면 다음 명령을 실행하면 됩니다:

    amplify add auth

     

    사용자 지정 로그인 및 등록 흐름, 멀티팩터 인증(MFA), 타사 소셜 공급업체를 사용하여 인증 흐름을 사용자 지정할 수 있습니다. 앱에 인증을 추가하면 Amplify는 AWS 계정에 Amazon Cognito 인스턴스를 배포합니다.

    더보기

    멀티팩터 인증(MFA) 란?

     

    멀티팩터 인증(MFA) 은 접근 제어 기술의 하나로 사용자의 지식, 소유, 그리고 사용자 고유의 정보(생체정보) 등을 결합한 병렬 인증 기술입니다.

     

    사용자에게 암호 이외의 추가 정보를 입력하도록 요구하는 다중 단계 계정 로그인 과정으로, 예를 들어 사용자에게 암호와 더불어 이메일로 전송된 코드 입력, 보안 암호 질문에 응답, 지문 스캔 등을 요청할 수 있습니다. 이러한 두 번째 인증 양식을 사용하면 시스템 암호 도용 시 무단 계정 액세스를 방지하는 데 도움이 됩니다.


    스토리지

    Amplify Storage는 클라우드에서 이미지, 동영상, 문서 등의 파일 및 데이터 스토리지를 관리할 수 있는 간단한 메커니즘을 제공합니다.
    백엔드에서 앱에 스토리지 버킷을 추가하려면 다음 명령을 실행하세요:

    amplify add storage

     

     

    Amplify는 콘텐츠를 저장하기 위해 AWS 계정에 Amazon S3 버킷 또는 Amazon DynamoDB 데이터베이스를 추가합니다.

    스토리지는 이번에 사용할 기능이기때문에 밑에서 자세히 알아봅시다!


    UI 구축

    피그마 => 리액트 컴포넌트로 바꿔주는 기능인듯 한데, 플러터는 해당 없으니 패스


    서버리스 기능

    프로젝트에 AWS 람다 기능을 추가하여 앱에 맞춤형 비즈니스 로직을 추가할 수 있습니다.


    위치 서비스

    매핑 기능, 지오펜싱, 위치 추적 기능을 추가합니다.

     

    분석

    사용자 행동을 이해하고 주요 지표를 추적합니다.

     

    AI/ML

    자연어 처리, 텍스트 음성 변환, 추천과 같은 AI 기반 기능을 통합합니다.

     

    PubSub

    앱 인스턴스와 앱의 백엔드 간에 메시지를 전달하여 실시간 대화형 경험을 생성합니다.

     

    인터랙션

    음성 및 챗봇으로 구동되는 대화형 인터페이스를 만듭니다.

     

    인앱 메시징

    정의된 사용자 세그먼트에 타겟팅된 메시지를 보내거나 사용자 행동에 따라 상황에 맞는 메시지를 트리거합니다.

     

    위 기능중에서도 앞으로 사용할 기능이 많이 보이네요


    AWS에 연결하기

    기존 리소스에 연결

    Amplify는 기존 AWS 리소스 및 구성과 함께 작동하도록 설계되었습니다. 예를 들어, 별도로 생성하고 구성한 기존 Amazon Cognito 사용자 풀과 함께 Amplify의 사전 구축된 인증 UI 구성 요소를 사용할 수 있습니다. 또는 Amplify 스토리지와 통합하여 앱의 사용자 인터페이스에 기존 S3 버킷의 이미지와 파일을 표시할 수 있습니다.

    Amplify의 라이브러리는 기존 AWS 서비스를 활용할 수 있는 인터페이스를 제공하므로 기존 백엔드 인프라를 중단하지 않고도 현재 워크플로우에 Amplify의 기능을 점진적으로 도입할 수 있습니다.

    이러한 유연성 덕분에 기존 리소스로 인증, API, 스토리지, 비즈니스 로직과 같은 Amplify 프론트엔드 기능을 쉽게 활용할 수 있습니다. Amplify는 UI 코드, 애플리케이션 로직, 백엔드 클라우드 서비스 간의 통합을 간소화합니다.


    CDK로 확장

    Amplify는 CLI가 제공하는 기본값 외에 인프라를 사용자 지정할 수 있는 세 가지 오버라이드 기능을 제공합니다.

    더보기

    AWS CDK(Cloud Development kit)란 AWS에서 제공하는 IaC Tool (Infrastructure as code)로, 프로그램 방식, 명령어 방식으로 인프라를 관리하여 효율적인 인프라 라이프사이클 관리를 할 수 있으며, Repository를 통한 쉬운 롤백 환경 제공, CI/CD 파이프라인을 통한 개발/운영 환경의 동기화를 할 수 있습니다.

    CDK에는 App, Stack, Construct 라는 세가지 중요 컨셉이 있으며, App은 AWS 인프라를 define하는 코드가 작성된 어플리케이션을 말합니다.typeScript, JavaScript, Python, Java, C# or Go 등의 언어를 지원하며, 앱은 하나 이상의 stack을 define합니다. Stack은 AWS 리소스들의 집합을 구성하는 단위이며, 이 리소스들의 단위는 Construct라고 부릅니다. 

    오버라이드 - 추가 설정으로 Amplify에서 생성된 인프라를 재정의합니다. 예를 들어, Amplify에서 직접 사용할 수 없지만 Amazon Cognito에 있는 인증 설정을 추가할 수 있습니다.
    사용자 지정 - Amplify에서 생성한 백엔드에 AWS 서비스를 추가합니다.
    내보내기 - Amplify 백엔드를 CDK 스택으로 내보냅니다.
    다른 Amplify 작업과 마찬가지로 CLI 명령 등을 실행하여 확장성 기능을 사용 설정할 수 있습니다:

    플러터에서 지원하는 기능을 확인해보세요
    Amplify Architecture


    결론

    Storage, Functions, Analytics, Push Notification 을 알아보면 되겠네요

Designed by Tistory.