๐ฑ GitHub Action์ ์ด์ฉํ ์๋ ๋ฐฐํฌ ๋ง๋ค๊ธฐ
โ S3 CloudFront์ GitHub Action์ ์ด์ฉํด์ CI/CD ๋ง๋ค๊ธฐ
โ ๋ง๋๋ ์ด์ ๋ ์์ค๋ฅผ push ํ๋ฉด ๋ฐ๋ก ์ธํ๋ผ์ ๋ฐฐํฌํ๋ ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ์ํด์.
โ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ, CI/CD ๋ผ๊ณ ํจ.
1. IAM ๊ถํ ์ถ๊ฐ
(1) IAM ์๋น์ค ์ ์, ์ฌ์ฉ์ ์ด๋ฆ ํด๋ฆญ !
(2) ๊ถํ ์ถ๊ฐ ํด๋ฆญ !
(3) ๊ธฐ์กด ์ ์ฑ ์ง์ ์ฐ๊ฒฐ -> CloudFrontFullAccess ์ ํํ์ฌ ๊ถํ ์ถ๊ฐ
(4) ๊ถํ์ S3, CloudFront์ ๋ํ ๊ถํ ํ์ธ ์๋ฃ !
2. GitHub Action์ ์ด์ฉํ ๋ฐฐํฌ ์ค๋น
(1) GitHub repository ๋ง๋ค๊ณ Pycharm ์ฐ๋ํ๊ธฐ
*๏ธโฃ ๋ฐฉ๋ฒ !
(2) ๋ฌธ์ ๋ณด๊ธฐ
*๏ธโฃ GitHub Action ์ฌ์ฉ๋ฒ ์ฐธ๊ณ ๋ฌธ์
(3) ๋ฐฐํฌํ index.html ํ์ผ ์ถ๊ฐ
(4) ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์ถ๊ฐ
โ .github/workflows/main.yml
โ github ํด๋ -> workflows ํด๋ -> main.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
(5) [(3),(4)] ํ์ผ Commit, push ํ๊ธฐ
(6) GitHub ์์ Action ๋ฉ๋ด ํด๋ฆญํ์ฌ Action ํ์ธ !
โ AWS Access key ๋ฅผ ์ค์ ํ์ง ์์์ ์ค๋ฅ ๋ฐ์. (7)๋ฒ์์ ํด๊ฒฐ !
(7) secret ์ค์ ํ๊ธฐ
โ Setting -> secrets -> New repository secret
โ ์ด์ ์ ๋ณต์ฌํด ๋ iam ์ฌ์ฉ์์ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY๋ฅผ ๊ฐ๊ฐ ์ถ๊ฐ !
โ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก BUCKET_NAME (S3 ์ฐธ๊ณ ), DISTRIBUTION_ID(CloudFront ์ฐธ๊ณ ) ์ถ๊ฐ !
(8) ๋ค์ ์ปค๋ฐ, ํธ์ ํด์ ํ์ธํ๊ธฐ
โ ์ด๋ก์ ์ฒดํฌ ๋ชจ์ ๋จ๋ฉด ์ฑ๊ณต !
โ CloudFront์์ URL ์ ์ํ๋ฉด ์๋ฌ ์์ด ์ ๋ํ๋จ
(9) ์ฑ๊ณต ํ์ธ
โ index ํ์ผ ์์ ํ commit, push ํ์ ๋, ๋ฐ๋ก ๋ฐ์๋จ.
'๐ฉโ๐ป Learn programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] ๋คํธ์ํฌ 2 - ๋ณด์๊ทธ๋ฃน, ํ๋ ฅ์ IP (0) | 2022.04.26 |
---|---|
[AWS] ๋คํธ์ํฌ 1 - VPC, ์๋ธ๋ท, ๋ผ์ฐํ ํ ์ด๋ธ, ์ธํฐ๋ท ๊ฒ์ดํธ ์จ์ด (0) | 2022.04.26 |
[GIT] Git๊ณผ Pycharm ์ฐ๋ํ๊ธฐ (0) | 2022.04.26 |
[GIT] GitHub Action (0) | 2022.04.26 |
[AWS] CloudFront๋ก ํ๋ก ํธ ๊ตฌ์ฑํด๋ณด๊ธฐ (0) | 2022.04.26 |