2017-04-26 3 views
0

업데이트됩니다 최소 TTL 0 어떻게됩니까 어디 (AN S3 버킷에 연결) : S3에서 개체를 업데이트하면 이전에 캐시에 저장되었다고 가정하고 Cloudfront가 즉시 새 개체를 제공합니까? 아니면 기본 TTL 당 최대 1 주 동안 캐시 된 항목을 계속 제공합니까?CloudFront를의 TTL 설정 :</p> <pre><code>Min TTL: 0 Max TTL: 1 year Default TTL: 1 week </code></pre> <p>내 질문은 이것이다 : 나는 CloudFront를위한 사용자 지정 개체 캐싱 TTL 설정이있는 경우 S3 객체가

0 분 ttl로 업데이트 된 것으로 인식하지만이 내용을 명확히하는 문서는 찾을 수 없습니다.

두 번째 질문 : 이것은 사용자 지정 TTL이며 최소값이 0이므로 개체가 실제로 캐시되지 않는다는 의미입니까? (이 경우 기본값과 최대 값을 무시하고 있습니까?)

답변

0

최소 TTL은 가정 한 것과 다릅니다.

원점으로부터 페치 목적은 다음 CloudFront를가 max-age=n을 무시하고 대신 최소 TTL까지의 오브젝트를 캐시 n < minimum-ttlCache-Control: max-age=n 헤더 경우. 최소 ttl을 0으로 설정하면 본질적으로 minimum-ttl을 적용 할 수 없게됩니다 (시간 여행을 발명 할 때까지). 선언 된 최대 연령이 0보다 작을 수 없기 때문에

최대 TTL은 동일합니다. 반면에 n > maximum-ttl이면 CloudFront는 최대 -ttl보다 오래 동안 객체를 캐시하지 않습니다.

Cache-Control: max-age=n이 없으면 CloudFront는 default-ttl보다 오래 동안 객체를 캐시합니다.

어떤 경우에도 CloudFront는 TTL이 만료 될 때까지 이미 캐시 된 객체의 새 버전을 다시 확인하지 않습니다. S3에서 변경된 객체에 대한 알림을받지 않습니다. Age: 응답 헤더를 검사하여 개체가 특정 가장자리 캐시에 있었던 시간을 알 수 있습니다.

개체를 일찍 evict 처리해야하는 경우 캐시 무효화를 사용하십시오. 무효화는 지정된 패턴과 일치하는 모든 객체와 일치합니다 (예 : /images/*은 해당 경로와 일치하는 객체를 제거함). 무효화는 모든 CloudFront 에지 캐시에 "제거 된 시간 전에 캐시 된 일치하는 객체가있는 경우 해당 객체가 있어야합니다. 무효로 취급되어 더 이상 요청을 처리하는 데 사용되지 않습니다. 패턴과 일치하는 캐시 된 오브젝트가 발견되었는지 여부에 관계없이 무효화는 성공합니다. 아마도 그 사실을 즉시 제거하지는 않을 것이기 때문에 오래된 일치하는 캐시 엔트리가 사용되지 못하게하는 마커를 설정하고 (다음 요청에서 다시 가져 오기를 강요 함) 실제로 백그라운드에서 나중에 찾아서 제거합니다. 매월 1,000 건의 무효 요청을 무료로받을 수 있습니다. 여기서 1 건의 무효 요청에는 와일드 카드를 포함하고 수백만 건의 객체를 제거 할 수 있지만 여전히 1 건의 무효로 간주됩니다.