CloudFront में TTL 0 क्या है?


80

कुछ हफ़्ते पहले अमेज़ॅन ने घोषणा की कि उन्होंने सामग्री की अवधि समाप्त कर दी है:

Amazon CloudFront न्यूनतम सामग्री समाप्ति अवधि को कम करती है

इतना है कि आप वास्तव में अब CloudFront में TTL को 0. पर सेट कर सकते हैं। तो मेरा सवाल यह है कि, TTF के साथ CloudFront वितरण के लिए उपयोगी क्यों हो सकता है। 0. मेरे लिए इसका मतलब यह है कि CloudFront को मिलने वाले हर अनुरोध पर कोई कैशिंग न हो। मूल से टकराने पर समाप्त हो जाएगा।

मैं क्या खो रहा हूँ?

जवाबों:


167

अमेज़ॅन क्लाउडफ्रंट की यह नई सुविधा वास्तव में कई उपयोग के मामलों के लिए बेहद उपयोगी है, क्योंकि मूल को मारना पहली नज़र में देखने की तुलना में थोड़ा अलग काम करता है और जरूरी नहीं कि इसके विपरीत हो; जबकि यह सुविधा पहले ही जारी की जा चुकी है, यह सभी अमेज़ॅन क्लाउडफ़ॉरेस्ट की हालिया रिलीज़ के साथ आती है - डायनेमिक कंटेंट के लिए समर्थन , जैसे प्रश्न के लिए हाथ में:

वेरिएबल टाइम-टू-लाइव (टीटीएल) - कई मामलों में, गतिशील सामग्री या तो बहुत कम समय के लिए या तो संभव नहीं है या संभव नहीं है, बस कुछ सेकंड। अतीत में, CloudFront का न्यूनतम TTL 60 मिनट था क्योंकि सभी सामग्री को स्थिर माना जाता था। नया न्यूनतम TTL मान 0 सेकंड है। यदि आप किसी विशेष उत्पत्ति के लिए TTL को 0 पर सेट करते हैं, तो CloudFront अभी भी उस मूल की सामग्री को कैश करेगायह इफ़-मॉडिफाइड-चूंकि हेडर के साथ एक GET अनुरोध करेगा , जिससे मूल को यह संकेत देने का मौका मिलेगा कि क्लाउडफ्रंट कैश्ड सामग्री का उपयोग करना जारी रख सकता है यदि यह मूल में परिवर्तित नहीं हुआ है[जोर मेरा]

दूसरे शब्दों में, 0 के TTL का उपयोग करने का मुख्य रूप से मतलब है, कि CloudFront कैश कंट्रोल के लिए प्राधिकरण को मूल में सौंपती है, अर्थात मूल सर्वर यह तय करता है कि क्या या नहीं और कब तक CloudFront ऑब्जेक्ट को कैश करता है; कृपया विशेष रूप से ध्यान दें, कि अगर एक संशोधित-से-हेडर के साथ एक GET अनुरोध जरूरी नहीं है कि ऑब्जेक्ट स्वयं मूल से पुनर्प्राप्त किया जाता है, बल्कि मूल HTTP स्थिति कोड को वापस कर सकता है (और चाहिए) 304 - लागू नहीं जहां संशोधित नहीं :

पिछले अनुरोध के बाद से संसाधन को संशोधित नहीं किया गया है। [...] इसका उपयोग बैंडविड्थ और सर्वर और क्लाइंट दोनों पर पुनर्संयोजन बचाता है, क्योंकि केवल हेडर डेटा को सर्वर द्वारा पुनः संसाधित किए जा रहे पृष्ठ की संपूर्णता की तुलना में भेजा और प्राप्त किया जाना चाहिए , फिर अधिक बैंडविड्थ का उपयोग करके फिर से भेजा जाता है सर्वर और ग्राहक के। [जोर मेरा]

HTTP नॉटिफ़ कंट्रोल के यांत्रिकी और लाभों पर विवरण के लिए मार्क नॉटिंघम का उत्कृष्ट कैशिंग ट्यूटोरियल देखें, जो HTTP वास्तुकला का एक बहुत ही महत्वपूर्ण और प्रभावी हिस्सा है।

समझना कैसे इन सभी भागों को एक साथ काम एक मुश्किल वास्तव में थोड़ा, तदनुसार अनुभाग में तालिका हो सकता है कम से कम समय निर्दिष्ट करना कि CloudFront कैश डाउनलोड वितरण के लिए ऑब्जेक्ट्स के भीतर निर्दिष्ट करना कितना समय एक CloudFront एज कैश (वस्तु का समय समाप्त होने) में ऑब्जेक्ट्स स्टे प्रभाव को संक्षेप में प्रस्तुत करने का प्रयास जब टीटीएल = 0 के साथ या बिना CloudFront के संदर्भ में विशेष रूप से लागू किया जाता है।


3
यह एक शानदार प्रतिक्रिया है। समझ गया!
शाम

3
धन्यवाद स्टीफ़न! एक पूरी तरह से और अच्छी तरह से लिखित जवाब। AWS को अपने DOCS में इसे डालना चाहिए !!! हा!
asherrard

2
बहुत अच्छी तरह से समझाया गया। गंभीरता से। +10 उपयोग की गई सादगी और शब्दावली के लिए।
शिवकुमार मल्लसप्पा

5

ध्यान दें कि अमेज़ॅन "टीटीएल 0 है" नहीं कह रहा है, यह कह रहा है "न्यूनतम टीटीएल 0 है"। और यह बहुत अलग है। ऊपर वर्णन बहुत ही वांछनीय है लेकिन इस बात की कोई गारंटी नहीं है कि क्लाउडफ्रंट वास्तव में ऐसा करता है।

अभी मेरे अनुभवों में, मैं एक कैश्ड छवि को किनारे पर कुछ मिनटों के लिए देख सकता हूं जबकि मेरा मूल पहले से ही बदल चुका है।

इसलिए, मुझे लगता है कि "मिनिमम टीटीएल 0 है" कहना शायद अधिक पसंद है "अमेज़ॅन के पास इसे कैश में रखने का कोई सख्त इरादा नहीं है", और शायद "और यह अक्सर रिफलेक्ट होगा"।

सीएमएस जैसे अनुप्रयोगों के लिए, जहां वेब उपयोगकर्ता नई सामग्री पोस्ट कर रहा है, मुझे लगता है कि TTL-0 अभी भी पर्याप्त नहीं है। आपको अभी भी या तो सीएमएस से अमान्यताओं को लागू करना है या विभिन्न संस्करण संख्याओं के लिए अलग-अलग रास्तों को नियुक्त करना है।


2

CloudFront का उपयोग प्रमाणपत्र प्रबंधक के साथ संयोजन में S3 वेबसाइटों में HTTPS समर्थन जोड़ने के लिए किया जा सकता है। आप यह चाहते हो सकता है, लेकिन शून्य कैशिंग।


0

इसके लिए एक और उपयोग मामला है। यदि आप लैम्ब्डा एज https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGride/lambda-at-the-edge का उपयोग करके गैर-उपलब्ध करने योग्य सामग्री के अनुरोध के शीर्षकों में हेरफेर करना चाहते हैं । एचटीएमएल । उदाहरण है x-api-key

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.