Serverless Framework
- AWS, Azure, GCP 등의 서버리스 서비스를 쉽게 사용할 수 있도록 도와주는 오픈소스 프레임 워크
- 이 페이지에서는 AWS 서버리스에 관해서 다룰 예정
Serverless(서버리스)란?
- 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델
- 서버리스 환경을 구성하기 위해 AWS lambda와 API Gateway를 사용

Serverless Framework 동작과정 이해전 가져야하는 사전 지식
- API Gateway : 규모와 관계없이 REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스로 REST한 URI를 생성하여 Lambda를 연결해서 주로 사용
- AWS Lambda: 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 컴퓨팅 서비스, 서버를 항상 열어두지 않아도 요청이 들어올 때에만 실행이 되기 때문에 효율적
- AWS CloudFormation : Amazon Web Services 리소스를 모델링하고 설정하여 리소스 관리 시간을 줄이고 AWS에서 실행되는 애플리케이션에 더 많은 시간을 사용하도록 해 주는 서비스, 요약하자면 원하는 서비스를 만들때 필요한 것들을 자동적으로 생성하고 한 번에 관리하기 쉽게 해주는 서비스
- Amazon S3(Simple Storage Service) : 인터넷 스토리지 서비스, 웹 규모 컴퓨팅 작업을 보다 쉽게 할 수 있도록 설계
- AWS IAM이란 : AWS 리소스에 대한 엑세스를 안전하게 제어할 수 있는 웹 서비스로 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어
- IAM role이란 : 특정한 허가를 준 역할로 유저뿐 아니라 애플리케이션, 서비스 등에 적용하여 권한을 부여할 수 있다.
Serverless Framework 사전준비
- 만약 사전지식에 있는 요소들에 대한 권한이 없다면 요청후 진행
node, npm 설치
Node.js 홈페이지에서 설치 : https://nodejs.org/ko/
serverless framework 모듈 전역 설치
AWS Credentials 세팅
$ vi ~/.aws/credentials 실행 후 i를 누르고
aws_access_key_id=XXXXXXXXX
aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
입력 후 esc를 누른 다음 콜론(:)을 입력하고 wq(write & quit)를 입력 후 엔터
동일한 방법으로 진행
$ vi ~/.aws/config
region=ap-northeast-2 output=json
serverless framework 사용하기
AWS lambda 생성하기
sls create --template aws-node.js
공식문서 : https://www.serverless.com/framework/docs/providers/aws/cli-reference/create/
serverless.yml 설정
https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/
lambda 함수 로컬에서 실행
serverless invoke local --function (함수이름) --path (파일 path)
https://www.serverless.com/framework/docs/providers/aws/cli-reference/invoke-local/
AWS로 배포
serverless deploy
추가 작성중