Github에서 제공하는 배포 서비스
GIthub가 MS에 인수되면서 기존의 소스저장소의 기능에서 DevOps플랫폼
비슷한 서비스로는 Gitlab, Bitbucket등 있다.
요즘 트랜드는 CI/CD의 통합 이다. 소스저장소와 배포시스템을 통합하는 것 이다.
아키텍처의 변화로 작아진 어플리케이션들을 부담없이 자주 배포하기 위함.
그럼 GitHub Action 으로 한번 배포를 해보도록 하겠다.
AWS에서 'I AM' 이라고 검색해 보자.
IAM > 사용자 > 클릭
'권한 추가'를 클랙해 주자!
기존 정책 직접 연결로 'CloudFrontFullAccess' 로 권한을 주자.
권한이 등록되었는지 권한탭에서 확인해 보자.
테스트를 위해 index.html 과 mian.yml을 만들어야 한다.
상단 경로에 main.yml 파일을 만들어 주자.
name: my-front
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'ap-northeast-2'
steps:
- name: Checkout source code.
uses: actions/checkout@master
- name: Upload binary to S3 bucket
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --exclude '*' --include 'index.html'
env:
AWS_S3_BUCKET: ${{ secrets.BUCKET_NAME }}
- name: Invalidate cache CloudFront
uses: chetan/invalidate-cloudfront-action@master
env:
DISTRIBUTION: ${{ secrets.DISTRIBUTION_ID }}
PATHS: '/index.html'
continue-on-error: true
name , branches 명을 변경후 커밋과 푸시를 진행하자.
AWS 연동 준비 - Settings > Secrets
ACCESS KEY , SECRET KEY , BUCKET NAME , DISTRIBUTION ID(클라우드 프론트 아이디)
해당값을 상단 변수로 모두 등록해 준다.
GitHub Repo 에 있는 Action 탭에 가시면 add가 정상으로 되어있다면 성공이다.
Cloud Front의 도메인으로 접속이 잘되는지 확인해 보자.
이것저것 변경해보고 잘 적용되는지 확인해 보자!