본문 바로가기

RestfulAPI

Serverless Framework와 Github Acitons를 이용한 AWS 자동 배포

현재 restfulAPI를 바로 AWS에 배포했지만 깃허브에는 서버리스가 없다. 그래서 깃 허브에도 서버리스 및 여러 액세스 키 값들을 설정 해주는 Github Actions 를 해볼 생각이다. 그러면 협업도 하면서 자동배포가 가능해진다. 

 

먼저 깃허브로 들어가 Settings ->Secrets and variables ->Actions 에 들어가 준다.

그다음 New repository secret 을 누르고 나와 똑같이 3개의 키를 만들 것이다.

AWS_ACCESS_KEY_ID 와 AWS_SECRET_ACCESS_KEY는 저번에 다운 받았던 api_dev_accesKeys 라고 엑셀 파일로 저장된 키가 있을 것이다. 거기에 각각에 맞게 넣어준다

SERVERLESS_ACCESS_KEY는 serverless framework 를 검색해 들어가거나 링크를 타고 들어가준다.

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

서버리스 프레임워크에 들어준다.

그 다음 톱니바퀴모양(Settings)를 클릭 해주고 Access Keys 를 눌러준다.

+Add 클

액세스 키를 만들어주자.

키를 만들면 하나의 암호키가 만들어지는데 그것이 서버리스 액세스 키이다 근데 이것은 잘못하고 삭제되면 절대로 다시 찾지 못하지 무조건 까먹지 않게 코드를 구글 드라이브나 자신의 카카오톡에 보내거나 따로 보관을 잘 해놓는게 좋다.

서버리스 엑세스 키에 이제 복사한 그 키를 넣어주고 만들어 주면 된다.

 

그다음 액션즈 클릭

set up a workflow yourself 클릭

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
    - run: serverless plugin install -n serverless-wsgi
    - name: severless deploy
      run: sls deploy --verbose --force

이 코드를 넣어주고 Commit Changes 클릭 해주면 된다.

Actions로 다시 들어가 이렇게 초록불이 뜰 때까지 기다려 주자. 그래야 환경 셋팅이 다 끝난것이다.

이제 준비는 끝났으니 자동 배포되는지 확인해보자.

 

나는 'test':'hello'를 추가 문구로 넣었다. 터미널에서 sls deploy 해주고, 커밋 푸쉬해주자.

잘 적용이 됐다. 이로써 깃허브에 서버리스 프레임워크를 설치하고 자동으로 배포할 수 있도록 설정이 끝났다.