[AWS] Cloudfront 캐시 무효화

울상냥·2023년 4월 8일
1

배포

목록 보기
11/18

Https를 사용하게 되면서 기존사용하던 S3와 함께 Cloutfront를 사용하게 되었다.
S3의 리액트 빌드 파일을 업데이트 하였으나 서버에 적용이 안되는 문제가 발생했다

Cloudfront는 AWS에서 제공하는 CDN(Content delivery network)서비스이다.

간략하게 CDN이란

사용자의 지리적위치와 관계없이 컨텐츠를 더욱 빠르게 제공하는 시스템

을 말한다. Cloudfront는 기본적으로 24시간동안(기본 TTL) 오리진의 응답을 캐시한다. 이 동안에 엣지 로케이션에 요청이 오는 경우에는 캐시된 응답을 사용한다.

업데이트 내용이 적용이 안되고 있었던 이유는 캐시된 응답을 사용하고 있었기 때문이다!
캐시된 파일을 제거해보자.


무효화하기

CloutFront > 배포 > ID > 무효화 > 무효화 생성

경로는 /*로 설정해줘서 모든 경로에대한 캐시를 무효화 해줬다. 개별적으로 선택할 수도 있다.

무효화가 완료 된 후 정상적으로 업데이트가 적용된 것을 확인할 수 있었다.

GithubActions 무효화 설정

현재 프로젝트에서 GithubActions에서 push시에 자동으로 프로젝트가 S3로 업로드 되도록 해놓았기 때문에 무효화 설정도 같이 적용해 주었다.

우선 AWS에서 IAM > 사용자 > 권한 정책 > 권한추가 에서

CloudFrontFullAccess 권한을 추가 해주고..

yml파일 마지막에 다음과 같은 내용을 추가해주었다.

      - name: Cloudfront invalidation
        run: |
          aws cloudfront create-invalidation \
            --distribution-id ${{ secrets.AWS_DISTRIBUTION_ID }} \
            --paths "/*"

프리티어..

무효화는 비용이 발생할 수 있기 때문에 프리티어의 경우 주의하자.

(프론트 친구야 푸시를 .. 적당히.. 부탁해)

profile
안되면 되게하라

0개의 댓글