AWS Severless IoT 1 – 개발 계획

AWS Severless IoT에 대해 알아봅니다.

작성자

홍세민

홍세민

MarcusHong

들어가기 전에

이 튜토리얼에서는 최대한 AWS의 Serverless 기술을 사용해서 모바일 채팅 앱의 Backend를 Node.js로 만드는 것이 목적이며, 아키텍처 위주이기 때문에 세세한 express.js 구성등은 생략한다.

많은 AWS의 리소스를 사용하므로, 관리 목적 때문에라도 Cloudformation을 사용해서 아키텍쳐를 구성한다. Cloudformation에 나오는 모든 옵션은 AWS Console에서 쉽게 찾을 수 있기 때문에 AWS Console에 대한 내용은 생략한다. 또한 모든 Cloudformation의 옵션을 나열하는 것은 AWS reference에 지나지 않으므로, 중요한 옵션 위주로 설명한다.

채팅 앱은 push notification만으로도 구성할 수도 있지만 푸시가 유실될 가능성이 있다. 또한 푸시는 실시간 통신이 되지 않으므로, 소켓통신을 사용할 것이다. AWS의 Cognito와 Iot를 사용하면 모바일에서 웹소켓 통신이 가능하므로 이를 통해 소켓통신을 구축한다.

AWS 아키텍처를 연동하면서 가장 많이 마주치는 문제가 리소스, 정책과 역할에 권한을 제대로 부여하지 않아서 발생하는 문제다. 문제가 발생한다면 권한 문제일 가능성이 제일 높으니 예제 소스를 차근차근히 살펴보길 바란다.

또한, 일부만 추출해서 사용할 경우에 연결된 리소스가 빠진 곳이 없는지 확인하는 과정이 꼭 필요하다.

전체 AWS 아키텍쳐 및 사용기술

  • Cloudformation
  • CodePipeline
  • Cognito User Pool
  • Cognito Identity Pool
  • AWS Serverless Application Model (SAM)
  • Lambda
  • API Gateway
  • express.js
  • JSON Schema
  • Swagger
  • RDS
  • VPC
  • NatGateway
  • DynamoDB
  • Iot
  • FCM

개발순서

  1. 개발계획
  2. Cloudformation으로 Base stack 만들기
  3. Cognito로 유저 인증 프로세스 구현
  4. API Gateway - Cognito로 API

Tags : aws 

comments powered by Disqus