Amazon Web Service

[AWS] Cloudfront | CDN 캐시 삭제 방법

인프라보이 2020. 4. 12. 12:11

AWS에서 사이트를 운영한다면 당연히 Cloudfront를 사용할 것입니다. EC2나 S3에 데이터를 CDN을 설정하지 않고 웹 서비스를 한다면 성능 저하와 서비스 비용이 추가적으로 발생할 수 있습니다.

그러면 Cloudfront CDN 서비스 구조는 아래와 같은 방식으로 트래픽이 처리 될 것입니다.

 

 AWS로 서비스 중인 웹 사이트(홈페이지)를 운영중인데, 이미지를 변경하거나 추가 경로를 생성하여 홈페이지에 변화를 주었는데도 내 브라우저의 캐시를 날리고 사이트에 접속해도 이전 상태를 계속 보일 경우가 있다. 

 이런 경우 CDN의 캐시를 무효화 (Invalidation)을 해주어야 반영이 되며, CDN의 TTL(time to live)를 조절하여 설정하는 방법도 있다. 여기서는 CDN 캐시 무효화(Cloudfront Cache Invalidation)하는 방법을 공유합니다.

 

 [전제조건] 사이트의 모든 이미지, 경로 등이 업데이트 되었고 나는 내 Cloudfront CDN이 가지고 있는 모든 캐시를 무효화 할 것입니다. 

 

1. AWS 콘솔 접속 후 서비스 항목에 Cloudfront 선택합니다.

 

2. Cloudfront Distribution 중 캐시 무효화를 원하는 것을 선택합니다.

3. Invalidations 버튼을 클릭합니다.

4. Create Invalidation 버튼을 클릭합니다.

5. Object Paths에 아래 그림과 같이 전체 경로에 대한 무효화를 선언해주면, Cloudfront CDN에 올려진 캐시 데이터가 무효화 (삭제처리)가 됩니다. 

 

   Cloudfront의 특정경로 또는 특정 이미지 확장자만 무효화를 하고 싶다면, 해당 경로만 지정해 주면 됩니다. 

   /*.jpg

   /*.png

   /path/upload/*.jpg     ("/path/upload/" 경로의 모든 jpg 파일을 무효화(삭제) 처리)

   전체 경로를 날리는 것보다 부분 수정을 하였으면, 위와 같이 특정 경로, 특정 파일 위주로 캐시를 날려주면 좋습니다.     (오리진으로의 부하를 줄여주기 위함입니다.)

 

6. Cloudfront CDN 캐시가 삭제되면 다시 웹사이트(홈페이지)에 접속 시 "Miss from Cloudfornt" 처리가 되고 오리진(EC2, S3)의 데이터를 요청해서 받아가게 됩니다.

 

 cloudfront에서 처리되지 않음.

 

 

Amazon Web Service 문서에서 Cloudfront 캐시 무효화 방법에 대한 논문같은 문서를 참고하세요. 

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

 

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

 

docs.aws.amazon.com

 

728x90