PromleeBlog
sitemap
aboutMe

posting thumbnail
Github Action을 사용해 S3로 정적 파일 업로드
GIthub Action for uploading Static files to S3

📅 2024년 06월 22일

🚀

들어가기 전에 🔗

Github 레포지토리에서 Github Actions를 사용하여 정적 파일을 자동으로 배포하는 방법을 알아보자.
S3 버킷과 레포지토리는 이미 생성되어 있다고 가정한다.

🚀

AWS 설정 🔗

IAM 생성 🔗

AWS에 로그인 후 IAM(Identity and Access Management) 서비스로 이동한다.
사용자 > 사용자 생성 버튼을 클릭한다.
이름을 정하고 다음 버튼 클릭
image
권한 설정 화면에서는 직접 정책 연결, AmazoneS3FullAccess, CloudFrontFullAccess를 선택한다.
image
image
계속 다음을 눌러 사용자 생성을 마무리한다.
사용자 생성이 완료되면 사용자 > 보안 자격 증명 > 액세스 키 만들기를 클릭한다.
기타를 선택 후 태그도 입력해준다.
image
image
액세스 키가 생성되면 잘 보관해둔다.
절대로
공개된 곳에 올려두면 안된다.
image

🚀

Github Actions 설정 🔗

Github Secrets 추가 🔗

레포지토리로 이동하여 Settings > Security > Secrets and variables로 이동해 New repository secret을 클릭한다.
image
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY를 추가한다.
image
image

yml 파일 생성 🔗

.github/workflows 디렉토리에 deploy.yml 파일을 생성한다.
./.github/workflows/deploy.yml
name: Main CI
 
on:
  push:
    branches:
      - main
jobs:
  push-to-s3:
    name: Push to S3
    runs-on: ubuntu-20.04
 
    # 레포지토리에 접근하여 CI서버로 코드를 내려받음
    steps:
    - name: Checkout
      uses: actions/checkout@v3
 
    # 캐시 사용
    - name: Cache dependencies
      uses: actions/cache@v3
      with:
        path: |
          ./posts
        key: ${{ runner.os }}-posts-${{ hashFiles('**/posts/**') }}
 
    # aws에 접근하기 위한 권한 설정
    - name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: ap-northeast-2
 
    # s3에 파일 업로드
    - name: Upload to S3
      run: |
        aws s3 sync \
          ./posts s3://promleeblog-cdn
			# file path, s3 버킷 이름
추가 후 main 브랜치로 push하면 Github Actions가 실행되어 S3 버킷에 파일이 업로드된다.
image

🚀

참고 🔗