TIL

Github Action을 이용한 AWS 자동배포

Frontend Developer 2023. 4. 20. 01:00

github action을 이용해 자동배포를 하려면 먼저 s3를 이용해 프로젝트가 배포되어 있어야 한다.

 

S3로 배포가 되어있다면 IAM사용자로 로그인한다.

 

이후 사용자를 생성하여 ACCESS_KEY_ID 와 SECRET_ACCESS_KEY 를 저장하도록 하자. 

 

해당 사용자로 ID와 KEY를 받았다면 github의 레포 설정에서 KEY값과 ID값을 넣어주면 된다.

추가로, 배포된 S3버킷의 이름과 지역을 넣어주도록 하자.

 

 

이를 다 마치고 난 후 github - action 에서 workflow를 생성하여 세부 설정을 코드로 작성하면 된다.

 

이후 yml파일에 해당 코드를 넣어주어 배포가 되는지 확인한다.

name: workflow 제목
on:
  push:
    branches:
      - 마스터 or 메인브랜치
  pull_request:
    branches:
      - 마스터 or 메인브랜치

jobs:
  run:
    runs-on: ubuntu-latest
    env:
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
    steps:
      - uses: actions/checkout@v1

      - name: Install dependencies
        run: npm install

      - name: Build
        run: CI='' npm run build

      - name: Deploy to S3
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
          S3_BUCKET: ${{ secrets.S3_BUCKET  }}
        run: |
          aws s3 sync build/ s3://${{ env.S3_BUCKET }} --delete