2023-01-15 일에 구동 확인했습니다.
NestJS + Lambda + DynamoDB 환경 구성은 아래 글을 참고해주세요.
[Serverless]NestJS + Lambda + DynamoDB 구성 + CI/CD
CI/CD 내용이 필요하신 분은 다음 글을 참고하세요. 요즘 Serverless 아키텍쳐의 인기가 많아 NestJS + Lambda + DynamoDB를 활용해 환경을 구성해 보았는데요. 신기술이면서, 관련 정보도 많이 없어 환경 구
aierse.tistory.com
Github Actions를 활용하여 CI, CD를 구축해보겠습니다.
환경 구성을 마치신 분은 AWS 콘솔측 권한설정까지 모두 마치셨을겁니다.
따라서 깃허브 측의 환경 변수만 세팅하고, actions 코드만 작성하면 CI, CD는 모두 완료됩니다.
깃허브 환경 변수
AWS Access key, Secret Key, Region은 특별히 주의해서 관리해야합니다. 키를 탈취당하면 불법적인 용도로 활용되어, 요금이 청구될 수 있기 때문이죠.
따라서 Public 레포지토리의 경우 세심하게 관리할 필요가 있습니다.
그래서 깃허브에서는 노출되면 안되는 중요한 변수들을 저장하는 기능을 제공하는데요.
로컬 환경에서 .env 파일과 같은 역할을 합니다.
깃허브 레포지토리에서 settings - Secrets and variables - Actions 탭에서 레포지토리 내부에서 사용할 수 있는 비밀 변수들을 저장할 수 있습니다.
New Repository secret 버튼을 누르면 비밀 변수를생성할 수 있습니다.
AWS Access key, Secret Key, Region 을 저장해주세요.
프로젝트 설정
name: Deploy Lambda
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Node.js
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: Install Dependencies
run: npm install
- name: Set Serverless Plugin Optimize
run: npx serverless plugin install -n serverless-plugin-optimize
- name: Set Serverless Plugin DynamoDB
run: npx serverless plugin install -n serverless-dynamodb
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Deploy Server
run: npm run deploy
- package.json 파일이 있는 폴더에서 .github 폴더를 생성합니다.
- .github 폴더 내에 workflows 폴더를 생성합니다.
- .gh-pages.yml 파일을 생성하고 위 코드를 붙여넣기 합니다.
파일을 생성할 때 . 까지 꼼꼼히 확인해주세요.
제대로 생성하셨다면 /github/workflows/.gh-pages.yml 경로에 존재하게 됩니다.
/github/workflows/ 폴더는 깃허브에 push, pull request 등의 이벤트가 발생하면, 함께 실행할 코드를 작성하는 폴더입니다. 따라서 파일명은 자유롭게 지어도 상관없지만, 폴더 경로는 일치시켜야 합니다.
이제 마지막으로 제대로 배포되는지 확인해볼 차례입니다!
레포지토리에 푸시하고 Actions 탭에서 제대로 수행됐는지 확인하시면 CI, CD 완료입니다!
'웹 > NestJS' 카테고리의 다른 글
[NestJS][Lambda][DynamoDB] Serverless 구성 (0) | 2024.01.29 |
---|