개발 편의를 위해 사용하는 방법들
serverless.js 는 좋지만, 추가 라이브러리들을 너무 많이 사용하면 결국 기술부채로 이어지게 된다. 가급적 serverless.js 하나만 사용하도록하자.
aws-sam도 좋은데, aws 전체 관점이 아닌 서버리스 위주의 구성만 가능해짐
aws-cdk로 IaC로서 aws 일괄 관리하는 방법은 러닝 커브가 좀 있는 편이다.
람다 모니터링은 어떻게 할까
일단 로깅 : ElasticSearch, Kibana, CloudWatch, AWS X-RAY
aws lambda의 내부 동작
dev.classmethod.jp/articles/devio-korea-online-aws-lambda/
serverless를 사용하기에 적합한 use case들
- 서버리스 웹 사이트 운영 => s3 + cloudfront로 웹 돌리고 특정 이벤트시 lambda를 트리거하여 DB와의 상호작용을 한다. 이 방식은 EC2를 24시간 켜두는 것보다 저렴해질 수도 있다. (요청이 없다면 훨씬 쌀 것이고, 요청이 많다면 더 비싸질 것이다.)
- 신속한 문서 변환 => 짧은 이미지, 문서 등을 온 디맨드로 변환해서 제공하는 로직을 lambda로 처리. 문제는 동영상 트랜스코딩같이 헤비한 경우에는 lambda가 부적합 경우도 있을 수 있다.
- 예측 페이지 렌더링 => 즉, Next.js의 prefetch 같은 역할을 lambda로 사용할 수 있다는 말인데 흠... 솔직히 저는 잘 모르겠습니다.
- 외부 서비스 작업 => 이건 그냥 뭐 백엔드가 할 일을 분할에서 lambda에 맡길 수 있다는 겁니다.
- 즉시 로그 분석 => 특정 이벤트가 발생하여 로그를 남겨야 할 필요가 있다면 해다 이벤트에 의해 트리거되는 lambda를 달아 SNS를 통해 알림을 보내는 방법이 있다. 흔히 셧다운되면 슬랙이나 카톡으로 비상 호출이 오게끔 만들어놓는다.
- 자동 백업 및 일상적인 작업 => 백업 생성, 유휴 리소스 확인, 보고서 생성 등 작업을 lambda로 처리하기.
- 업로드 된 S3 객체 처리 => 이 녀석은 이미지 리사이징할 때 유용하게 사용되었죠. 온디맨드 리사이징은 최고.
- 실시간 데이터 처리 => 이건 그냥 lambda에 스트림 데이터를 넘길 수 있다는 내용입니다.
- 특정 언어의 에코시스템에만 있는 라이브러리를 이용하고 싶을 경우 => Nodejs로 개발을 하더라도 파이썬만 지원하는 플러그인이 필요하다면 파이썬 Lambda 함수를 만든 후 결과값을 Nodejs 람다함수와 JSON형식으로 리턴하도록 할 수 있습니다.
referecen)
www.contino.io/insights/aws-lambda-use-cases
dev.classmethod.jp/articles/devio-korea-online-aws-lambda/
'Ops, Infra, etc > ⚡ serverless' 카테고리의 다른 글
이미지 서비스를 위한 리사이징 플로우 탐구 (0) | 2021.04.27 |
---|---|
serverless하게 추천 시스템을 구현해보자 - 이론편 (0) | 2021.04.22 |
[AWS] lambda에서의 DynamoDB 호출 및 제어 (sdk v2) + trouble shooting (0) | 2021.04.11 |
[serverless] Serverless 프레임워크 사용하기 (0) | 2020.06.15 |
[AWS] AWS Lambda + API gateway로 Serverless 만들어보기 (0) | 2020.06.14 |