변경 사항이 반영되었는지 확인하려 배포한 사이트에 접속했는데 변경 사항이 반영되지 않은 문제가 발생했다.
백엔드 팀원한테 바로 알려주겠다고 한 부분이 있었는데 몇 시간이 지나도 반영되지 않았다.🤯
10초에 한 번씩 새로고침 해보고
파일을 메인 페이지를 아예 빈 페이지로 만들어서 다시 빌드+배포 해보고
AWS S3 버킷
-객체
탭에 들어가서 마지막으로 수정된 시간까지 확인해본 결과 배포 자체에는 문제가 없어보였다.
구글링 해보니 브라우저 캐시를 삭제하라고 해서 몇 번씩이나 삭제하고 새로고침 해봤지만 반영되지 않았고 핸드폰으로 접속해도 마찬가지였다.
기본적으로 CloudFront는 S3의 응답을 24시간 동안 캐싱한다.
CloudFront를 통해 S3에 저장된 객체를 사용하는데 S3의 객체를 업데이트 해도 CloudFront 배포는 이전 버전 파일을 제공하는 것이다.
(CloudFront 동작 원리+데이터 전달 방식 관련 추가 글 업로드 예정)
CloudFront에서 업데이트된 Amazon S3 콘텐츠를 바로 적용하기 위한 가장 빠른 방법은
객체 무효화
이다.
https://us-east-1.console.aws.amazon.com/cloudfront/v4/home#/distributions
/* : 전체 경로에 대해 무효화
무효화 생성 버튼을 누르고 잠시 기다리면 아래와 같이 뜬다
(공식 사이트에 의하면 적용되기까지 1~100초 정도 걸린다고 한다)
이후 다시 사이트에 접속해보니 변경 사항이 제대로 적용되있는 것을 확인했다.
원인을 찾다보니 CloudFront의 동작 원리와 데이터 전달 과정이 궁금해져서 추가로 공부하고 정리해서 포스팅할 계획이다✨📝
CloudFront가 Amazon S3에서 오래된 콘텐츠를 제공하는 이유는 무엇인가요?
https://repost.aws/ko/knowledge-center/cloudfront-serving-outdated-content-s3
[AWS Amazon CloudFront 개발자 안내서] 파일 무효화
https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html