IT TIP

CloudFront의 TTL 0은 무엇에 유용합니까?

itqueen 2020. 10. 18. 19:53
반응형

CloudFront의 TTL 0은 무엇에 유용합니까?


몇 주 전에 Amazon은 콘텐츠 만료 기간을 낮췄다 고 발표했습니다.

Amazon CloudFront, 최소 콘텐츠 만료 기간 단축

실제로 CloudFront의 TTL을 0으로 설정할 수 있습니다. 제 질문은 TTL이 0으로 설정된 CloudFront 배포를 사용하는 것이 왜 유용할까요? 저에게 이것은 CloudFront에 도달하는 모든 요청에 ​​대해 캐싱이 전혀 없음을 의미합니다. 원점에 도달하게됩니다.

내가 무엇을 놓치고 있습니까?


Amazon CloudFront 의이 새로운 기능 은 실제로 많은 사용 사례에 매우 유용 합니다. 오리진에 도달하는 것은 첫눈에 보이는 것과 약간 다르게 작동하고 반대로 반드시 문제가되지 않기 때문입니다. 이 기능은 이미 이전에 출시되었지만 Amazon CloudFront 의 최신 릴리스 -동적 콘텐츠 지원 ( 예 : 당면한 질문) 과 함께 제공됩니다 .

가변 TTL (Time-To-Live) -대부분의 경우 동적 콘텐츠는 캐시 할 수 없거나 매우 짧은 시간 (아마도 몇 초) 동안 캐시 할 수 없습니다. 과거에는 모든 콘텐츠가 정적으로 간주되었으므로 CloudFront의 최소 TTL은 60 분이었습니다. 새로운 최소 TTL 값은 0 초입니다. 특정 오리진에 대한 TTL을 0으로 설정하면 CloudFront는 여전히 해당 오리진 의 콘텐츠캐시합니다 . 그런 다음 If-Modified-Since 헤더를 사용하여 GET 요청 을 수행하여 오리진이 오리진에서 변경되지 않은 경우 CloudFront가 캐시 된 콘텐츠를 계속 사용할 수 있음을 알릴 기회를 제공합니다 . [내 강조]

즉, 0의 TTL을 사용한다는 것은 기본적으로 CloudFront가 캐시 제어 권한을 오리진에 위임한다는 것을 의미합니다. 즉, 오리진 서버가 CloudFront에서 객체를 캐시하는 기간과 캐시 제어 여부를 결정합니다. 특히, If-Modified-Since 헤더있는 GET 요청 은 객체 자체가 오리진에서 검색된다는 것을 반드시 의미하는 것은 아니며 오리진이 HTTP 상태 코드 304-수정되지 않음 ( 해당되는 경우)을 반환 할 수 있고 반환해야 함을 의미합니다. :

마지막 요청 이후 자원이 수정되지 않았 음을 나타냅니다. [...] 이것을 사용하면 서버와 클라이언트 모두에서 대역폭과 재 처리가 절약 됩니다. 서버에서 재 처리되는 페이지 전체와 비교 하여 헤더 데이터 만주고받은 다음 더 많은 대역폭을 사용하여 다시 전송해야하기 때문입니다. 서버와 클라이언트의. [강조 내]

HTTP 아키텍처의 매우 중요하고 효과적인 부분 인 HTTP 캐시 제어의 메커니즘과 이점에 대한 자세한 내용 은 Mark Nottingham의 우수한 캐싱 자습서 를 참조하십시오.

이러한 모든 부분이 함께 작동하는 방식을 이해하는 것은 실제로 약간 어려울 수 있습니다. 따라서 CloudFront 엣지 캐시에 객체가 머무르는 기간 지정 (객체 만료) 내에서 CloudFront가 다운로드 배포를 위해 객체를 캐시하는 최소 시간 지정 섹션의 표에서 효과를 요약하려고 시도합니다. 특히 TTL = 0이 있거나없는 CloudFront의 컨텍스트에 적용될 때.


Amazon은 "TTL이 0"이 아니라 "최소 TTL이 0"이라고 말합니다. 그리고 그것은 매우 다릅니다. 위의 설명은 매우 바람직하지만 Cloudfront가 실제로 수행한다는 보장은 없습니다.

지금 내 경험상 캐시 된 이미지가 가장자리에 몇 분 동안 머무르는 것을 볼 수 있지만 원본은 이미 변경되었습니다.

그래서 "최소 TTL은 0"이라는 말은 아마 "아마존은 이것을 캐시에 보관하려는 엄격한 의도가 없습니다"와 비슷할 것입니다. 그리고 아마도 "자주 다시 가져올 것입니다"라고 생각합니다.

웹 사용자가 새 콘텐츠를 게시하는 CMS와 같은 애플리케이션의 경우 TTL-0만으로는 충분하지 않다고 생각합니다. 여전히 CMS에서 무효화를 호출하거나 다른 버전 번호에 대해 다른 경로를 사용해야합니다.


CloudFront를 인증서 관리자와 함께 사용하여 S3 웹 사이트에 HTTPS 지원을 추가 할 수 있습니다. 이것을 원할 수도 있지만 캐싱은 없습니다.

참고 URL : https://stackoverflow.com/questions/10621099/what-is-a-ttl-0-in-cloudfront-useful-for

반응형