AWS Amplify 사용하기

StarSeeker·2023년 9월 11일
0

사내 앱을 개발하면서 인프라를 구축해야하는 일이 생겨버렸다.
백엔드 개발자 분이 공백인 상태에서 어느정도 아키텍처를 내가 설계해야하는 부분이 생겨버려서 그부분에 관한 고민과 과정들을 정리한다.

일단 앱의 요구사항들을 정리하였다.

앱의 필수 요구사항

  1. 임직원만 접근 가능하도록 내부 Azure AD를 통해 로그인을 해야함.

  2. 홈 화면에서 동일한 조건의 테이터를 확인 할 수 있어야함.

  3. 누구나 쉽게 이해할 수 있어야함.

  4. 웹으로 먼저 서비스를 시작한 후, 앱으로 확장 할 수 있어야 함.

요구사항에 대한 아이디어

=> 인증, 인가와 관련된 기능을 구현하는 것은 개발 리소스가 굉장히 많이 드는 작업이다.

=> 백엔드의 부재 상황에서 좀더 확장성 있는 데이터 호출방식이 필요할 것같다.

=> 프론트엔드는 디깅앱의 UI/UX의 구현에만 집중 하고 싶다.

그렇다면, 매니지드한 서비스를 이용하면 어떨까?

AWS Amplify는 사용 사례가 발전함에 따라 프런트엔드 웹 및 모바일 개발자가 다양한 AWS 서비스를 활용하는 유연성을 바탕으로 AWS에 풀 스택 애플리케이션을 손쉽게 구축, 배송 및 호스팅할 수 있도록 지원하는 완전한 솔루션입니다. 클라우드 전문 지식이 필요하지 않습니다.

AWS Amplify라는 매니지드한 서비스를 이용해 보자.

aws의 블로그에 있는 AWS Amplify를 이용한 아키텍처의 예시이다.
이 아키텍처를 많이 참고 했다.

앞에서 살펴보았던 요구사항들을 다시살펴보자.

  1. 임직원만 접근 가능하도록 내부 Azure AD를 통해 로그인을 해야합니다.

로그인 인증작업은 Cognito를 활용하면 될것 같다.

Amazon Cognito

Cognito는 사용자 가입 및 로그인 기능을 추가하고 웹 및 모바일 애플리케이션에 대한 액서스를 제어할 수 있다.

Oauth2 방식을 지원하므로 프로젝트에서 사용하는 Azure AD와도 통합 가능하다.

Identity providers , 지금 앱의 경우에는 Azure AD로 사용자 인증을 처리한 뒤 모바일 앱으로 인증된 토큰을 전송한다.

  1. 홈 화면에서 동일한 조건의 테이터를 확인 할 수 있어야함.

Amazon AppSync

Amazon AppSync에서는 단일 엔드포인트에서 여러 데이터베이스, API 쿼리등을 가능하게 한다.
따라서 위의 그림처럼 람다를 통해 데이터베이스에 접근하거나 rest API를 통해 데이터베이스에 접근할 수 있는 확장성있는 구조로 아키텍처를 설계할 수 있다.

결론

기본적으로 백엔드 개발자가 부재한 상황에서 AWS Amplify 만으로 서버리스한 환경을 구축할수가 있었습니다. 하지만 후에 보다 조회할 데이터가 복잡해지고 트래픽이 많이 발생하는 상황이라면 보다 이러한 상황에 유연하게 대응할수 있는 백엔드 개발자가 필요 할수 있다고 생각이 들었습니다.

profile
춤추듯 개발하고 싶은 사람

0개의 댓글