일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- git
- docker
- 중급파이썬
- 채팅
- merge
- react
- Class
- node
- SAA
- lambda
- 카톡
- wetube
- S3
- RDS
- SSA
- Props
- MongoDB
- socket io
- pandas
- flask
- EC2
- 파이썬
- 튜플
- crud
- Vue
- TypeScript
- dict
- async
- NeXT
- AWS
- Today
- Total
초보 개발자
cloud front, github action 본문
나의 버킷이 속하는 리전에서 정적호스팅을 사용하면, 빠르지만 만약 다른 리전에서 사용하면 느릴 것이다.
그럼 리전마다 s3를 만들어주면 해결이 가능하겠지만, 비효율적이다. cloud front는 이 부분을 해결해 줄 것이다.
아래의 그림과 같은 역할을 한다고 한다.
cloudfront에 들어가서 우리의 버킷을 선택해주고 생성해보자!
편집에 들어가서 기본값을 s3에 있는 index.html로 지정해주면
새로운 도메인을 들어가면 바로 출력이 되는 것을 확인할 수 있다.
github action을 사용하여 우리가 index.html을 수정하면 그 수정한 파일이 자동으로 s3에 저장되고 그 저장된 index.html이 cloudfront에서 다시 캐싱되는 것을 해주어야 한다.
따라서 먼저 IAM의 권한을 추가시켜주자. 이전에는 s3에 대한 접근 권한만 있었다. 이젠 cloudfront에도 접근할 수 있도록 해주자.
깃을 init하고 거기에 .github라는 폴더를 생성 그 안에 workflows라는 폴더 생성 그 안에 main.yml을 생성해주었다.
이 것은 우리가 push를 하면 그 뒤에 깃허브에서 자동으로 아래의 코드를 실행시켜 주는 것이다.
name : Upload binary to S3 bucket이 부분이 S3저장소에 업로드 하는 부분이다.
--include 'templates/index.html' 이 부분이, 우리의 로컬 저장소의 templates/index.html을 그대로 S3저장소의 templates/index.html에 저장한다. 기존 것이 있으면 덮어쓴다. 그리고 아래의 name : Invalidate ~~는 수정한 내용을 cloudfront에서 뭐 해준다는데 그건 잘 모르겠다.. PATH 옵션도 있었는데 뭔지 몰라서 심지어 그냥 지우고 썼는데 잘 바뀐다...?
name: my-front.
on:
push:
branches:
- master
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 'templates/index.html'
env:
AWS_S3_BUCKET: ${{ secrets.BUCKET_NAME }}
- name: Invalidate cache CloudFront
uses: chetan/invalidate-cloudfront-action@master
env:
DISTRIBUTION: ${{ secrets.DISTRIBUTION_ID }}
continue-on-error: true
'AI 웹개발 트랙 - 내배캠 > 7주차' 카테고리의 다른 글
AWS S3, IAM (0) | 2022.01.27 |
---|