Git Action
- GitHub Action은 간단하게는 서버에 소스를 배포하는 서비스 입니다.
- Git Action은 Github에서 제공하는 배포 서비스에요.
- GIthub가 MS에 인수되면서 기존의 소스저장소의 기능에서 DevOps플랫폼으로 으로 발전하고 있어요.
- 비슷한 서비스로는 Gitlab, Bitbucket등이 있어요.
- 요즘 트랜드는 CI/CD(지속적 통합/지속적 제공) 의 통합입니다. 소스저장소와 배포시스템을 통합하는 것입니다.
- 아키텍처의 변화로 작아진 어플리케이션들을 부담없이 자주 배포하기 위함이죠.
Git Action 사용법
- GitHub 소스 리파지토리에 .github/workflows/main.yml 파일만 추가하면 됩니다.
https://docs.github.com/en/actions
GitHub Actions Documentation - GitHub Docs
Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. You can discover, create, and share actions to perform any job you'd like, including CI/CD, and combine actions in a completely customized wo
docs.github.com
GitHub Action을 이용한 자동 배포 만들기
1. IAM 권한 추가
IAM > 사용자 > 클릭
CloudFront 권한 추가
2. GitHub Action으로 레포지토리와 aws(cloudfront) 연동
1. git 폴더안에 "배포 스크립트 추가" - .github/workflows/main.yml
main.yml
name: github-repogitory name
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
3. github 레파지토리에서 settings key 설정
AWS 연동 준비 - Settings > Secrets
AWS Key 저장
Aws key를 파일에 두지 않고, settings에 저장하여 숨기기위함이다.
Distribution_id 는 cloudfront id이다.
4. 배포 확인
'Infra > AWS' 카테고리의 다른 글
[AWS] Elastic Beanstalk란 (ELB + Auto Scaling + EC2 한번에 관리) (0) | 2021.10.01 |
---|---|
[AWS] EC2 + ELB로 백엔드 구성해보기 (0) | 2021.10.01 |
[AWS] CloudFront CDN서비스를 이용해서 Front 구성하기 (0) | 2021.09.27 |
AWS IAM(내 AWS 계정에 접근하기 - 로컬에서 AWS 접속) (0) | 2021.09.27 |
aws s3 ( AWS 파일 업로드 저장소 ) (0) | 2021.09.27 |