서버 vs 서버리스
내가 지금 고민하는 것
EC2 + Node.js 웹서버 + MySQL 서버
vs
서버리스
=>
전자는 사용자가 있던 없던 항상 켜짐과 동시에 돈이 기본적으로 과금됨.
후자는 요청될 때만 과금됨.
Amplify는 앱을 만들기 위한 서버리스 구성에 특화된 프레임워크라고 볼 수 있다.
그런데 이건 Flutter에서 명쾌하게 지원하지 않는다..ㅇ ㅏ직까진..ㅜ
https://www.codingsloth.com/posts/2020/11/Flutter+AWS%20Realtime%20DynamoDB%20%ED%8C%8C%ED%8A%B81/
그니까 Amplify를 통해 구성하고 싶은 서버리스 환경이
Flutter & GraphQL <=> AppSync <=> DynamoDB
인데
지금 Flutter에서 GraphQL이 명백하게 지원되지 않는 상황. react-native는 된다..
(뭔가 DataStore만 밀어주는 것 같다 ㅜㅜ)
그래서 이를 대체할 서버 환경은
Flutter <=> EC2 & Node.js 웹서버 & MySQL 서버
인데
이건 기본적으로 서버 컴퓨팅 전기세부터가 시간당으로 나가고... 사용량이 있던 없던 고정지출이 크게 나간다.
이를 또다시 대체할 수 있는 환경은
Flutter <=> API GateWay <=> AWS Lambda (서버리스) <=> DynamoDB (서버리스)
라고 볼 수 있다.
API GateWay를 이용해서 AWS Lambda와 통신할수 있게 한다.
(AWS Lambda : https://youtu.be/YQVG4CVF_aA )
EC2 : 서버 컴퓨팅
Lambda : 서버리스 컴퓨팅
아직 개발중인 AppSync & GraphQL을 사용하고, 나중에 개발되었을테니 그때 가서 더 편의를 보느냐
아니면 일단은 Lambda를 쓰느냐.. Lambda를 쓰면 지금의 GraphQL을 이용함의 단점 (subscription to specific data 같은)이 해결될 수 있는지는 더 알아봐야겠다.
- DynamoDB 같은 NoSQL은 sort가 기본적으로 없다.
진짜 이 영상이 딱 내 마음을 그대로 담아낸 영상이었다.