[CloudFront & AWS Global Accelerator] CloudFront - Cache Invalidation

IMKUNYOUNG·2024년 8월 28일
0

AWS-SAA

목록 보기
89/91

CloudFront는 전 세계에 분산된 엣지 로케이션을 통해 사용자들에게 빠르고 안정적으로 콘텐츠를 제공하는 AWS의 콘텐츠 전송 네트워크(CDN)입니다. 그러나 콘텐츠를 업데이트하는 경우, 사용자들이 최대한 빨리 최신 콘텐츠를 받을 수 있도록 캐시를 무효화해야 할 때가 있습니다. 이번 포스트에서는 CloudFront에서 캐시를 무효화하고, 업데이트된 콘텐츠를 사용자에게 신속히 전달하는 방법에 대해 알아보겠습니다.


CloudFront의 기본 동작 방식

CloudFront는 엣지 로케이션(Edge Location)에 캐시를 저장하여 사용자들에게 콘텐츠를 빠르게 전달합니다. 이때 엣지 로케이션은 오리진 서버(예: S3 버킷)로부터 콘텐츠를 가져와 캐시에 저장한 후, 설정된 타임 투 리브(TTL, Time to Live) 동안 이 캐시된 콘텐츠를 계속 제공합니다. TTL이 만료되면, 엣지 로케이션은 다시 오리진 서버로부터 최신 콘텐츠를 가져와 캐시에 저장하게 됩니다.

하지만 콘텐츠가 업데이트되었을 때, TTL이 만료되기를 기다리는 것은 시간이 오래 걸릴 수 있습니다. 관리자는 사용자에게 최대한 빠르게 최신 콘텐츠를 제공하고자 할 것입니다. 이런 경우, CloudFront 캐시 무효화(Invalidation)를 통해 캐시된 콘텐츠를 강제로 삭제하고, 오리진 서버로부터 최신 콘텐츠를 가져오도록 할 수 있습니다.


CloudFront 캐시 무효화 실행하기

캐시 무효화를 실행하려면, 특정 파일 경로나 패턴을 지정하여 해당 경로의 콘텐츠를 무효화할 수 있습니다. 예를 들어:

  1. 특정 파일 무효화: /index.html 경로를 무효화하여 엣지 로케이션에 저장된 index.html 파일을 삭제할 수 있습니다.
  2. 경로 패턴 무효화: /images/* 경로 패턴을 무효화하여, /images/ 폴더 내의 모든 이미지 파일을 무효화할 수 있습니다.

캐시 무효화가 실행되면, CloudFront는 각 엣지 로케이션에 해당 경로의 파일들을 캐시에서 삭제하라는 명령을 보냅니다. 이후 사용자가 해당 파일들을 요청하면, 엣지 로케이션은 오리진 서버로부터 업데이트된 최신 파일을 받아 사용자에게 전달하게 됩니다.


무효화 예시

다음은 CloudFront 캐시 무효화의 예시입니다:

  • index.html 파일을 무효화합니다.
  • /images/ 디렉토리 내의 모든 이미지를 무효화합니다.

이 경우, CloudFront는 모든 엣지 로케이션에 index.html 파일과 /images/ 디렉토리 내의 모든 파일들을 캐시에서 삭제하도록 지시합니다. 이후 사용자가 index.html 파일이나 /images/ 디렉토리의 이미지를 요청하면, 엣지 로케이션은 오리진 서버에서 새로운 파일을 가져오게 됩니다.


마치며

CloudFront는 캐시된 콘텐츠를 빠르게 전달할 수 있지만, 콘텐츠 업데이트 시 사용자에게 최신 데이터를 제공하기 위해서는 캐시 무효화가 필요할 수 있습니다. CloudFront의 캐시 무효화 기능을 활용하면 특정 파일이나 경로 패턴의 캐시를 강제로 삭제하고, 오리진 서버의 최신 콘텐츠를 엣지 로케이션으로 가져오도록 할 수 있습니다. 이를 통해 사용자들은 항상 최신 콘텐츠를 빠르게 제공받을 수 있게 됩니다.

0개의 댓글