API 개발/AWS Lambda API 배포

AWS Lambda : (7) Serverless Framework와 Github Actions 를 이용한 AWS 자동 배포

신강희 2024. 5. 27. 14:16
728x90

< (7) Serverless Framework와 

Github Actions 를 이용한 AWS 자동 배포 >

 

# 이전장까지 하여서 수동배포는 모두 진행해 보았고, 자동 배포하는법을 진행

- EC2 때와 동일하게 Github Actions를 이용

 

# 깃허브로 이동전에 serverless framework 화면에서 로그인

- 참고 URL : https://www.serverless.com/

 

Serverless: Zero-Friction Serverless Apps On AWS Lambda & Beyond.

Easily build auto-scaling, low-overhead applications on AWS Lambda, API Gateway, DynamoDB, and other managed services with the Serverless Framework.

www.serverless.com

 

# 서버리스 Access Keys 값이 필요하다!

- 로그인후 설정 > Access Keys > Add github actions에 사용할 키값 생성

- 생성된 키값은 절대 잃어버리지 말고 따로 저장!

 

# 이제 깃허브 화면으로 가서 actions 설정 진행

- AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY 그리고 SERVERLESS_ACCESS_KEY는 보안이 중요함으로 깃허브 시스템의 Actions secrets에 저장해 사용

- 자동 배포할 서버의 레파지토리로 이동

- Settings 좌측 하단의 Screts and variables > Actions > New repository secret를 선택

- 키값 마다 각각 생성

 

# 생성이 완료되었으면 Actions에서 New workflow를 작성해 준다.

- 자세한 작성법은 이전글 참고 (https://sorktjrrb.tistory.com/82)

- 양식은 정해져 있다 그대로 복사해서 수정할 부분 (이름이나 버전)만 바꾸고 그대로 사용하면됨

- 특히 python 버전이나 serverless 버전로컬에서 설치한 버전과 동일해야 정상적으로 동작되므로 유의해서 확인하고 본인에 환경에 맞게 수정하여서 사용해야 한다!

name: Deploy sls app

on: 
  push:
    branches:
      - main

jobs:     
  deploy:
    runs-on: ubuntu-latest
    env:
      SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    steps:
    - uses: actions/checkout@v3
    - name: install-python
      uses: actions/setup-python@v4
      with:
        python-version: '3.10'    
    - name: install serverless
      run: npm i -g serverless@3.38.0
    - name: severless deploy
      run: sls deploy --verbose --force

 

# 작성을 완료하고 저장하면 순서대로 서버에 업로드가 진행되는것이 확인 가능

- 이후에 성공하면 list가 생성되면서 이후에는 commit & pust 동작을 할경우 자동으로 적용됨

 

# 수정사항 적용 확인 (postman)

 

이렇게 자동배포 까지 모두 완료!

 

반응형