AWS Lambda 삽질기 회고(프레임워크,라이브러리 선정)

연쇄코딩마·2021년 6월 29일
0
post-custom-banner

서론

  • 현재 서버리스 관련해서 일을 하고 있지 않지만 개발을 처음 배우고 관심이 있던 분야여서 기억을 되살리기 위해 회고를 할까 해서 기록을 남기려고 한다.

AWS Lamdba가 무엇인가?

  • 개발자가 서버의 인프라를 신경쓰지 않고 사용자가 시스템을 사용하는데 무리가 없게 오직 비즈니스 개발에만 집중 할수 있게 하는 서비스이다.

나는 왜 프로젝트에 AWS lambda를 사용했나?

  • 개발에 집중하고 싶었다. 프로젝트때 시간이 부족했고 이전에 프로젝트할때의 ec2를 이용한 배포 방식에 대해서 정말 불편하다고 생각했었다. 그래서 따로 토이 프로젝트를 하면서 heroku를 통한 서버배포도 해보고 여러가지를 해보면서 좀더 좀더 편한 방법이 없을까하는 생각이 들었다.
  • 무모한 모험심. 새로운 것을 해보고 하나 또 배운거에 대해서 쾌락을 느끼는 거 같다. 관종병과 변태의 콜라보 인것이다. 언제 지쳐 떨어질줄 모르지만 아직까지 개발을 하면서 새로운 것에 대한 환상이 좀 있다.
  • 비용의 무료. 뭐 어차피 ec2를 운용한다고 해서 aws 프리티어에서는 비용이 나갈 걱정이 거의 없지만 ec2는 켜있는 시간에 대해서 프리티어 사용량이 차감되는것에 반해 람다는 요청에 대해서 비용이 청구 되기 때문에 마음에 부담이 없었다. (돈이 없다;;)
  • 편리한 유지보수. 이건 호불호가 갈릴만 하지만 배포한 코드에서 보수를 할 곳이 생기면 웹상의 에디터에서 수정가능하다. 난 이 부분에서 ec2 접속해서 vim의 우중충한 검은 화면으로 수정하는 거 보단 좋다고 생각했다.

프레임 워크 선정

  • 본격적인 삽질기는 다음 편부터 하기로 하고 내가 그 당시 왜 이 프레임워크를 선정 하였는지 정리 해보겠다.

  • Serverless Framework: 사이트에 나와 있는 영문을 직역하면 이렇다. "서버리스 환경을 배포하고 운영하기 위한 툴"(Serverless is your toolkit for deploying and operating serverless architectures). 쉽게 말해서 초기 작업 시작할 시점에 도움을 줄 수 있는 템플릿을 제공하기도 하는 것부터 시작해서 함수 생성부터 이벤트 연결, 배포까지의 과정들을 간소화 시켜주는 아주 좋은 프레임워크이다. 사실 나는 serverless 프레임워크를 IAM부터 설정하고 자동화하고 헬로월드 띄우는데까지 꼬박 하루를 보냈었다.

라이브러리(플러그인) 선정

  • serverless-webpack: 한마디로 말해서 리액트에 배포전에 빌드하는 것과 비슷하다고 할수 있다. 즉 코드를 트랜스파일링을 하여 코드파일의 용량 자체가 줄어 들고 콜드스타트의 시간이 줄어 든다고 한다.

구현 전에 알아야 했었을 라이브러리(플러그인)

놀랍게도 달랑 하나만 썼다. 지금 내가 생각해도 그땐 왜 그랬을까도 생각한다. 내가 몰랐던 편리한 라이브러리들이 많았다.

  • serverless-offline: 서버리스를 로컬에서 실행해줄수 있는 라이브러리다. 제일 안써서 후회했던 라이브러리다. 그때는 sls deploy라는 명령어 하나만으로 디플로이 된다는 것에 심취해서 기능이 추가 될때 마다 배포를 하다가 s3 post 할당량을 다 써버려 프로젝트 막판에는 하나하나 올리는 불편을 감수했었다. 물론 sls invoke local 이라는 로컬에서 함수를 실행할수 있는 명령어도 있다.

  • lumigo-cli: 이건 cli 툴이지만 유지보수의 측면에서 아마 엄청난 시너지를 낼수 있는 툴인것 같다. 예를 들어 lumigo-cli list-lambda라는 명령어를 통해서 돌아 가고 있는 환경이 무엇인지 메모리는 어떻게 할당되어 있는지 코드의 사이즈는 얼마나 되는지 한눈에 볼수있는 툴이다.

또한 analyze-lambda-cold-starts를 사용해서 함수의 동시성 사용률을 포함한 콜드 스타트 성능 분석을 해서 개선방향을 찾는데 도움을 줄수 있을 것 같다.

결론

서두에서도 말했지만 아직 서버리스에 대해서 일을 하고 있지 않다보니 아는 것에 대한 깊이가 그리 깊지 않다. 기회가 되면 꼭 해보고 싶은 마음이다. 서버리스로 토이 프로젝를 하나 해볼 계획이다. 그리고 꾸준히 블로그도 써서 조금이라도 발전해야 겠다.

profile
只要功夫深,铁杵磨成针
post-custom-banner

0개의 댓글