본문 바로가기
개발 환경/AWS

[AWS] AWS Lambda Layer, Serverless로 배포하기

by 우주다람쥐 2020. 12. 1.
반응형

AWS를 사용하다 보면 Lambda Layer를 사용하게 된다.

AWS Lambda Layer를 Serverless로 배포해보자.

 

예시는 npm_modules를 Lambda Layer로 배포하는 것을 기준으로 했다.

 

1. Amazon S3 Bucket 만들기

해당 S3 Bucket은 Lambda Layer가 배포할 때 사용할 deploymentBucket이다.

Lambda Layer의 버전을 관리하고 싶다면 버전 관리를 활성화로 변경한다.

 

2. serverless.yml 만들기

serverless.yml은 아래와 같이 작성해서 만들어준다.

# 서비스명
service: lambda-layer

# 제공자
provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: ap-northeast-2
  deploymentBucket:
    name: deploy-source
    serverSideEncryption: AES256
  deploymentPrefix: serverless

layers:
  node-modules:
    path: ./
    name: lambda-layer-node-modules-dev
    description: lambda-layer-node-modules
    compatibleRuntimes:
      - nodejs12.x

# 패키지
package:
  exclude:
    - .gitmodules
    - .git/**
    - .idea/**
    - deploy.js
    - package-lock.json
    - package.json

stage명은 배포할 때 입력받기 위해 위와 같이 작성했다.

그 외의 정보는 본인이 배포하는 AWS 환경 및 개발한 내용에 맞게 수정한다.

 

3. 배포할 node_modules 세팅

package.json을 생성하고, 내용을 작성한다.

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "dependencies": {
    "aws-sdk": "^2.799.0"
  },
  "devDependencies": {},
  "author": "test <test@test.com>",
  "license": "ISC"
}

package.json을 생성했다면, node_modules를 install한다.

$ npm i

 

4. serverless로 배포하기

모든 준비가 끝났다면 serverless로 배포하자.

$ sls deploy -s dev -v

 

배포가 성공적으로 되었다면 Lambda Layer를 활용해서 AWS Lambda를 사용하면 된다.

반응형

댓글