[AWS] CloudFront 캐싱 무효화 하는 방법

2024. 11. 8. 16:24Server/AWS

 

디자인팀에서 기존 s3에 올려놨던 이미지 파일을 변경해 달라고 요청이 들어왔다.

파일명은 같아서 기존 파일을 덮어씌우는 형태로 변경 후 

'변경완료했습니다~' 하고 피드백을 드렸다.

 

왠걸? 주신 파일 그대로 변경했는데 변경이 안되었다고 연락이 왔고,

'엥 난 변경했는데??' 생각하면서 이슈 확인이 시작되었다..

다행히 30분 내로 원인 + 해결까지 완료 

 

 

이 이슈를 통해서 알게 된 점

1. 같은 파일명으로 변경 후, 변경 전 파일이 캐싱되어 있으면 캐싱이 만료되기 전까지는 변경 전 파일을 바라보게 된다는 점

2. 네트워크 응답 헤더를 통해 cloudfront를 통해 캐싱되었는지 확인할 수 있는 태그가 있다는 점

3. cloudFront를 폴더별, 파일별로 무효화시키는 명령어가 있다는 점

 

해당 파일이 cloudFront에 의해 캐싱되어있는지 확인하는 방법

나는 curl 명령어를 통해 확인했음. (브라우저 개발자 도구의 이미지 객체로도 확인 가능함)

$ curl -I <cloudFront로 된 파일 경로>

 

 

x-cache 태그에 `Hit From cloudfront` 라고 되어있으면 cloudFront 캐싱되어 있는다는 의미이다.

 

 

cloudFront 캐싱 무효화 방식

AWS 로그인 후 안전하게 s3의 상단 clounShell(터미널 모양 아이콘) 클릭 후 접근한다.

해당 터미널에서 아래 명령어 실행한다.

 

무효화 하기

$ aws cloudfront create-invalidation --distribution-id <cloudFront id> --paths <파일 또는 폴더 경로>
  • cloudFront id: AWS cloudFront의 배포 ID
  • 단일 파일 날리고 싶을 경우: cloudFront Url을 제외한 파일 경로 작성
  • 폴더 자체를 날리고 싶을 경우: /폴더명/* 작성

결과: status: inProgress이면 성공

 

무효화 확인하기

$ aws cloudfront list-invalidations --distribution-id <cloudFront id>

 

결과: status==Completed이면 성공