본격적인 삽질기는 다음 편부터 하기로 하고 내가 그 당시 왜 이 프레임워크를 선정 하였는지 정리 해보겠다.
Serverless Framework: 사이트에 나와 있는 영문을 직역하면 이렇다. "서버리스 환경을 배포하고 운영하기 위한 툴"(Serverless is your toolkit for deploying and operating serverless architectures). 쉽게 말해서 초기 작업 시작할 시점에 도움을 줄 수 있는 템플릿을 제공하기도 하는 것부터 시작해서 함수 생성부터 이벤트 연결, 배포까지의 과정들을 간소화 시켜주는 아주 좋은 프레임워크이다. 사실 나는 serverless 프레임워크를 IAM부터 설정하고 자동화하고 헬로월드 띄우는데까지 꼬박 하루를 보냈었다.
놀랍게도 달랑 하나만 썼다. 지금 내가 생각해도 그땐 왜 그랬을까도 생각한다. 내가 몰랐던 편리한 라이브러리들이 많았다.
serverless-offline: 서버리스를 로컬에서 실행해줄수 있는 라이브러리다. 제일 안써서 후회했던 라이브러리다. 그때는 sls deploy라는 명령어 하나만으로 디플로이 된다는 것에 심취해서 기능이 추가 될때 마다 배포를 하다가 s3 post 할당량을 다 써버려 프로젝트 막판에는 하나하나 올리는 불편을 감수했었다. 물론 sls invoke local 이라는 로컬에서 함수를 실행할수 있는 명령어도 있다.
lumigo-cli: 이건 cli 툴이지만 유지보수의 측면에서 아마 엄청난 시너지를 낼수 있는 툴인것 같다. 예를 들어 lumigo-cli list-lambda라는 명령어를 통해서 돌아 가고 있는 환경이 무엇인지 메모리는 어떻게 할당되어 있는지 코드의 사이즈는 얼마나 되는지 한눈에 볼수있는 툴이다.
또한 analyze-lambda-cold-starts를 사용해서 함수의 동시성 사용률을 포함한 콜드 스타트 성능 분석을 해서 개선방향을 찾는데 도움을 줄수 있을 것 같다.
서두에서도 말했지만 아직 서버리스에 대해서 일을 하고 있지 않다보니 아는 것에 대한 깊이가 그리 깊지 않다. 기회가 되면 꼭 해보고 싶은 마음이다. 서버리스로 토이 프로젝를 하나 해볼 계획이다. 그리고 꾸준히 블로그도 써서 조금이라도 발전해야 겠다.