"S3 bucket에 파일을 업로드 하였음에도 불구하고 변경사항이 Cloud front distribution에 반영되지 않는 상황"
→ AWS S3 + CloudFront를 이용해 웹을 배포하였는데, 그 이후 수정 사항이 생겨 소스 코드를 수정 후 다시 빌드를 하고 S3 서버에 올렸으나, 해당 수정 사항이 사이트에 반영되지 않았다.
물론, 시간이 경과하면 변경 사항이 Cloud front distribution에도 적용되겠지만, 본인의 경우에는 당장 수정이 잘 되었는지 확인해야하는 상황이였다.
→ Cloudfront는 CDN 서비스로서 캐시하고 있을 수 있다고 한다. 따라서, 변경사항을 배포에 반영하기 위해서는 Invalidation이 필요하다.
→ 콘솔을 활용한 Invalidation은 다음과 같았다.
- CloudFront 콘솔을 연다.
- 파일을 무효화하려는 배포를 선택한다.
- Distribution Settings(배포 설정)를 선택한다.
- Invalidations(무효화) 탭을 선택한다.
- Create Invalidation(무효화 생성)을 선택한다.
- 전체 캐싱을 무효화하기 위해서는
/*
을 입력한다.- Invalidate(무효화)를 선택한다.
- 진행 중을 잠시 기다리면 무효화가 생성된다.
→ 위와 같이 무효화를 한번 생성하고나니까 바로 수정 사항이 cloudfront에 반영된 것을 확인할 수 있었다.
하지만 그 이후에 재수정 후에 또 다시 반영되지 않는 현상을 만나게 되었다.
→ 위에서 한 것처럼 무효화 설정을 하면 캐시를 제거해주고 다시 갱신된 파일을 캐시하여 반영되는 것은 맞지만, 이는 무효화를 생성한 시점에서 한번 동작할 뿐이다. 이 부분을 모르고 사용했었다.!
결론적으로, 그 이후에 계속해서 변경사항이 있다고 해서 갱신이 이루어지는 것이 아니였다.
CloudFront의 무효화는 S3의 bucket 변경 후 사이트의 즉각적인 갱신이 필요할 때 마다 해주어야 한다.
변경 사항을 빌드하고 S3의 bucket에 다시 소스 코드를 업로드 하고 나서 변경사항에 대한 변화를 CloudFront에서 바로 확인하고 싶을 때마다 해주며 문제를 해결하였다.
지구님과 동네북 프로젝트 하던 시절이 떠오르는군요...홀홀..