infra, cloud/aws

Serverless framework의 배포 과정

worldint 2023. 8. 22. 11:15

 

관련 키워드

aws lambda, cloudformation( 템플릿, 스택)
serverless-nextjs
serverless/components
serverless/cli

 

Serverless가 프레임워크 이름임(개념이 아닌 고유명사)

얘가 해주는 역활은 AWS 인프라의 cloudfront + lambda + S3를 사용해서 배포를 해줌

 

간단히 nextjs를 사용하니까 그냥 정적 html파일로 빌드된걸 s3에 올리고 cloudfront와 연결해주는것같다

 

* 이거말고 다른 vercel이나 sst도 비슷한 방식일 것으로 예상된다
현재 nextjs13으로 업그레이드해서 serverless에서 sst로 바꿔야 하니 sst는 그때 다시 정리하자

배포 과정 

serverless/cli를 사용하기 때문에
npx components-v1 명령어를 사용하면 
serverless.yml파일에 기록된데로 배포가 진행된다

//serverless.yml

myServerlessNext:
  component: '@sls-next/serverless-component@latest'
  inputs:
    bucketName: '${env.BUCKET_NAME}'
    cloudfront:
      distributionId: ${env.CROUDFRONT_ID}

    name:
      defaultLambda: '${env.DEFAULT_LAMBDA}'
      apiLambda: '${env.API_LAMBDA}'

사용되는 aws 서비스는 s3, 클라우드 프론트, lambda@Edge이다

저 '@sls-next/serverless-component@latest'이 라이브러리는 packge.json에 있으면 안되고
그냥 yml파일에 써놓으면 serverless/cli가 npx 사용해서 저 라이브러리를 쓰는 형태같음