[AWS] AWS S3+CloudFront로 배포한 사이트 빌드, 배포 후 변경 사항 즉시 반영 안될 때

loopydoopy·2023년 10월 15일
0

오류해결

목록 보기
2/2

❗문제 상황

변경 사항이 반영되었는지 확인하려 배포한 사이트에 접속했는데 변경 사항이 반영되지 않은 문제가 발생했다.
백엔드 팀원한테 바로 알려주겠다고 한 부분이 있었는데 몇 시간이 지나도 반영되지 않았다.🤯

10초에 한 번씩 새로고침 해보고
파일을 메인 페이지를 아예 빈 페이지로 만들어서 다시 빌드+배포 해보고
AWS S3 버킷-객체 탭에 들어가서 마지막으로 수정된 시간까지 확인해본 결과 배포 자체에는 문제가 없어보였다.
구글링 해보니 브라우저 캐시를 삭제하라고 해서 몇 번씩이나 삭제하고 새로고침 해봤지만 반영되지 않았고 핸드폰으로 접속해도 마찬가지였다.


❓ 원인

기본적으로 CloudFront는 S3의 응답을 24시간 동안 캐싱한다.
CloudFront를 통해 S3에 저장된 객체를 사용하는데 S3의 객체를 업데이트 해도 CloudFront 배포는 이전 버전 파일을 제공하는 것이다.

(CloudFront 동작 원리+데이터 전달 방식 관련 추가 글 업로드 예정)

⚒️ 해결 (객체 무효화)

CloudFront에서 업데이트된 Amazon S3 콘텐츠를 바로 적용하기 위한 가장 빠른 방법은
객체 무효화이다.

1. CloudFront 콘솔로 이동한다.

https://us-east-1.console.aws.amazon.com/cloudfront/v4/home#/distributions


2. 해당되는 배포를 선택하고 '무효화' 탭에 가서 '무효화 생성' 버튼을 클릭한다.

3. 객체 경로 추가

/* : 전체 경로에 대해 무효화
무효화 생성 버튼을 누르고 잠시 기다리면 아래와 같이 뜬다
(공식 사이트에 의하면 적용되기까지 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

0개의 댓글