Serverless Framework는 서버리스 애플리케이션의 배포와 관리를 쉽게 할 수 있는 오픈 소스 프레임워크입니다. 이 글에서는 Serverless Framework를 사용하여 AWS Lambda와 API Gateway를 배포하는 방법을 단계별로 설명하겠습니다.
1. Serverless Framework란 무엇인가?
Serverless Framework는 서버리스 애플리케이션의 개발, 배포, 그리고 관리를 간소화해주는 도구입니다. 클라우드 제공자(AWS, Azure, Google Cloud 등)를 위한 설정 파일(serverless.yml)을 작성하면, 명령어 한 줄로 서버리스 리소스를 자동으로 생성하고 관리할 수 있습니다.
2. 사전 준비 사항
배포를 시작하기 전에 몇 가지 준비 작업이 필요합니다.
- Node.js 및 npm 설치
Serverless Framework는 Node.js 기반이므로, Node.js와 npm이 설치되어 있어야 합니다. - AWS 계정 및 IAM 사용자 생성
AWS Lambda와 API Gateway에 접근할 수 있는 AWS 계정과 IAM 사용자 자격 증명이 필요합니다. - Serverless Framework 설치
npm을 사용해 Serverless Framework를 글로벌로 설치할 수 있습니다.
npm install -g serverless
3. Serverless Framework 프로젝트 생성
- 프로젝트 초기화
Serverless Framework를 사용하여 새 프로젝트를 생성합니다
serverless create --template aws-nodejs --path my-service
cd my-service
- 기본 파일 구조 설명
프로젝트를 생성하면 다음과 같은 파일 구조가 생성됩니다- serverless.yml: 서비스 설정 파일로, 배포할 리소스(AWS Lambda, API Gateway 등)를 정의합니다.
- handler.js: 기본 Lambda 함수 코드가 포함된 파일입니다.
4. serverless.yml 파일 설정하기
다음은 간단한 "Hello, World!" Lambda 함수와 API Gateway를 설정한 예제입니다.
service: my-service
provider:
name: aws
runtime: nodejs20.x
region: ap-northeast-1
functions:
hello:
handler: handler.hello
events:
- http:
path: /
method: get
이 예제에서는 provider 섹션에 AWS와 Node.js 런타임을 지정하고, functions 섹션에서 Lambda 함수를 정의했습니다. events 옵션을 통해 API Gateway에 HTTP GET 요청으로 트리거를 설정합니다.
5. Lambda 함수 코드 작성
기본으로 생성된 handler.js 파일을 열어 아래와 같이 수정합니다.
module.exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({ message: 'Hello, Serverless!' }),
};
};
이 코드는 HTTP 요청이 들어오면 "Hello, Serverless!" 메시지를 반환하는 Lambda 함수입니다.
6. AWS에 배포하기
Serverless Framework를 사용해 AWS에 배포하려면 serverless deploy 명령어를 실행합니다.
serverless deploy
배포가 완료되면 출력 메시지에 API Gateway의 엔드포인트 URL이 표시됩니다. 이 URL을 통해 Lambda 함수가 호출됩니다.
7. 배포 결과 확인
배포가 완료되면 API Gateway 엔드포인트를 웹 브라우저에서 열거나, curl 명령어로 호출하여 Lambda 함수의 응답을 확인할 수 있습니다.
curl https://your-api-id.execute-api.us-east-1.amazonaws.com/dev/
8. 변경 사항 반영하기
코드나 serverless.yml 설정을 변경한 후, 다시 배포하려면 serverless deploy 명령어를 실행하면 됩니다. 변경된 내용이 자동으로 업데이트됩니다.
9. 서버리스 애플리케이션 제거하기
배포한 리소스를 삭제하려면 serverless remove 명령어를 사용합니다.
serverless remove
이 명령어를 실행하면 Lambda 함수, API Gateway, 그리고 다른 관련 리소스가 AWS에서 제거됩니다.
10. 결론
Serverless Framework는 AWS Lambda와 API Gateway 같은 서버리스 리소스를 쉽게 설정하고 배포할 수 있는 강력한 도구입니다. 간단한 serverless.yml 파일 작성과 몇 가지 명령어만으로 서버리스 애플리케이션을 효율적으로 관리할 수 있습니다. 이를 통해 개발자는 서버 관리 부담에서 벗어나, 비즈니스 로직에 집중할 수 있습니다.
'개발 환경 > AWS' 카테고리의 다른 글
[AWS] AWS CloudFront 캐시 관리 (0) | 2021.05.06 |
---|---|
[AWS] Amazon RDS, CloudWatch로 모니터링하기 (0) | 2021.04.28 |
[AWS] AWS API Gateway 모니터링하기 (0) | 2021.04.26 |
[AWS] Google drive에 있는 파일을 Amazon S3 Bucket에 업로드하기 (0) | 2021.04.21 |
[AWS] mac에서 AWS EC2 인스턴스 접속 및 파일 전송 방법 (0) | 2021.04.14 |
댓글