ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • aws cloudfront invalidation(무효화)란? cli통해 하는법
    클라우드/aws 2024. 10. 5. 11:54
    728x90
    반응형

    AWS CloudFront Invalidation은 CloudFront의 **캐시된 콘텐츠를 무효화(삭제)**하여, 사용자들이 새로운 버전의 콘텐츠를 즉시 받을 수 있도록 하는 기능입니다. CloudFront는 엣지 로케이션(전 세계에 분산된 서버)에서 콘텐츠를 캐시하여 사용자에게 빠르게 제공하는데, 원본 서버에서 콘텐츠를 업데이트했을 때, CloudFront 엣지 로케이션에 저장된 캐시도 최신 상태로 업데이트되어야 합니다.

    CloudFront Invalidation의 주요 목적

    1. 캐시된 콘텐츠 무효화: 클라이언트에게 전달되는 캐시된 파일이 최신 파일이 아니거나, 변경된 경우 무효화를 통해 새 파일을 가져올 수 있습니다.
    2. 콘텐츠 업데이트: 배포된 웹사이트나 애플리케이션의 파일(예: CSS, JS, 이미지 등)이 업데이트될 때, 즉시 변경 사항을 반영하기 위해 사용됩니다.
    3. TTL(Time-to-Live) 설정 외 업데이트: CloudFront는 각 객체에 대해 TTL을 설정해 캐시 유효 기간을 관리하는데, TTL이 만료되기 전에 콘텐츠를 즉시 새 버전으로 업데이트하고 싶을 때 무효화 요청을 사용합니다.

    CloudFront Invalidation 예시

    예를 들어, 웹사이트의 CSS 파일을 업데이트했다고 가정해보겠습니다. 사용자들은 CloudFront의 캐시된 버전의 CSS 파일을 계속해서 다운로드하게 될 것입니다. 하지만 새로운 CSS 파일을 즉시 적용하려면, 해당 파일에 대한 캐시를 무효화해야 합니다.

    CloudFront Invalidation 요청 예시:

    1. AWS Management Console 사용:
      • CloudFront 콘솔에서 Invalidations 메뉴로 이동합니다.
      • "Create Invalidation" 버튼을 클릭한 후, 무효화할 파일의 경로를 입력합니다.
        • 예: /css/style.css
        • 여러 파일을 한 번에 무효화할 수 있으며, 특정 디렉토리 내 모든 파일을 무효화하려면 /*를 사용할 수 있습니다.
        • 예: /images/*
      • 요청을 제출하면 CloudFront는 해당 파일 또는 디렉토리의 캐시를 무효화하고, 이후 사용자는 새로운 콘텐츠를 받게 됩니다.
    2. AWS CLI 사용: AWS CLI를 사용하여도 무효화 요청을 수행할 수 있습니다.
    aws cloudfront create-invalidation \
      --distribution-id E1A2BC3D4E5F6G \
      --paths "/css/style.css"

     

     

    • 위 명령어에서:
      • distribution-id는 CloudFront 배포 ID를 의미합니다.
      • /css/style.css는 무효화할 파일 경로입니다.

    3.SDK를 사용한 Invalidation: AWS SDK를 통해 프로그램에서 무효화 요청을 자동화할 수도 있습니다. 예를 들어, 자바로 CloudFront 무효화를 요청할 수 있습니다.

     

    CreateInvalidationRequest invalidationRequest = new CreateInvalidationRequest()
        .withDistributionId("E1A2BC3D4E5F6G")
        .withInvalidationBatch(new InvalidationBatch()
            .withPaths(new Paths()
                .withItems("/css/style.css")
                .withQuantity(1))
            .withCallerReference(UUID.randomUUID().toString()));
    
    cloudFrontClient.createInvalidation(invalidationRequest);

     

     

    주의 사항

    • 비용: CloudFront는 매월 일정 횟수의 무효화 요청을 무료로 제공하지만, 그 이상 무효화 요청이 발생하면 추가 비용이 청구됩니다.
    • 캐시 무효화 성능: 무효화 요청 후, 캐시된 콘텐츠가 완전히 제거되기까지 약간의 시간이 소요될 수 있습니다. 이 시간 동안 일부 사용자는 여전히 캐시된 콘텐츠를 받을 수 있습니다.

    요약

    CloudFront Invalidation은 CloudFront 엣지 서버에 캐시된 콘텐츠를 무효화하여 원본 서버의 최신 콘텐츠를 사용자에게 즉시 제공하는 기능입니다. 이를 통해 콘텐츠 업데이트가 즉시 반영되도록 할 수 있습니다.

     
     
    728x90
    반응형
Designed by Tistory.