Do czego przydatny jest TTL 0 W CloudFront?

Kilka tygodni temu Amazon ogłosił, że obniżył okres ważności treści:

Amazon CloudFront Obniża Minimalny Okres Ważności Treści

Tak bardzo, że możesz ustawić teraz TTL w CloudFront na 0. Więc moje pytanie brzmi, dlaczego warto mieć dystrybucję CloudFront z TTL ustawionym na 0. Dla mnie oznacza to brak buforowania, więc każde żądanie, które trafi do CloudFront, zakończy się uderzeniem w origin.

Co mi umyka?

Author: Steffen Opel, 2012-05-16

3 answers

Ta nowa funkcja Amazon CloudFront jest w rzeczywistości niezwykle przydatna w wielu przypadkach użycia, ponieważ uderzenie w origin działa nieco inaczej niż wygląda na pierwszy rzut oka i niekoniecznie stanowi problem, wręcz przeciwnie; chociaż funkcja ta została wydana już wcześniej, wszystko to łączy się z niedawnym wydaniem Amazon CloudFront - wsparcie dla dynamicznej zawartości , np. dla pytania:

]}

Zmienna Time-To-Live (TTL) - W wielu przypadkach dynamiczna zawartość jest albo nie buforowalne lub buforowalne przez bardzo krótki okres czasu, być może tylko kilka sekund. W przeszłości minimalny TTL CloudFront wynosił 60 minut, ponieważ cała zawartość została uznana za statyczną. Nowy minimalny TTL wartość to 0 sekund. Jeśli ustawisz TTL dla określonego pochodzenia na 0, CloudFront nadal będzie buforować zawartość z tego źródła. wtedy wykonaj żądanie GET z nagłówkiem If-Modified-Since , dając w ten sposób na origin szansa na sygnał, że CloudFront może nadal korzystać z zawartość buforowana, jeśli nie zmieniła się w źródle . [4]}

W tym celu należy zwrócić uwagę na to, że żądanie GET z nagłówkiem If-Modified-Since {[4 oznacza to, że sam obiekt jest pobierany z origin, a raczej origin może (i powinien) zwrócić kod statusu HTTP 304-Nie zmodyfikowany tam, gdzie ma to zastosowanie:

Wskazuje, że zasób nie został zmodyfikowany od ostatniego żądania. [...] użycie tego oszczędza przepustowość i ponowne przetwarzanie zarówno na serwerze, jak i klienta, ponieważ tylko dane nagłówka muszą być wysłane i odebrane w porównanie do całości strony poddawanej ponownemu przetworzeniu przez serwer, a następnie wysłane ponownie przy użyciu większej przepustowości serwera i klienta. [4]}

Zobacz Mark Nottingham ' s excellent caching Tutorial aby uzyskać szczegółowe informacje na temat mechaniki i korzyści z kontroli pamięci podręcznej HTTP, naprawdę ważną i skuteczną część architektury HTTP.

Zrozumienie, jak wszystkie te części ze sobą współpracują, może być naprawdę trochę trudne, dlatego tabela w sekcji określająca minimalny czas, przez jaki CloudFront buforuje obiekty do pobrania Distributions within określająca, jak długo obiekty pozostają w pamięci podręcznej krawędzi CloudFront (Object Expiration) próbuje podsumować efekty, gdy są stosowane w kontekście CloudFront z lub bez TTL = 0.

 129
Author: Steffen Opel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-22 23:06:29

Zauważ, że Amazon nie mówi "TTL to 0", tylko "Minimum TTL to 0". a to zupełnie co innego. Powyższy opis jest bardzo pożądany, ale nie ma gwarancji, że Cloudfront faktycznie to zrobi.

W moich doświadczeniach w tej chwili widzę buforowany obraz pozostający przez kilka minut na krawędzi, podczas gdy moje pochodzenie już się zmieniło.

Więc myślę, że powiedzenie "Minimum TTL to 0" jest prawdopodobnie bardziej jak "Amazon nie ma ścisłego zamiaru trzymać tego w pamięci podręcznej", a może " i to będzie często refetch".

Dla aplikacji takich jak CMS, gdzie użytkownik sieci publikuje nowe treści, myślę, że TTL - 0 nadal nie wystarczy. Nadal musisz albo wywołać unieważnienia z CMS lub użyć różnych ścieżek dla różnych numerów wersji.

 3
Author: polx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-26 21:23:48

CloudFront może być używany w połączeniu z menedżerem certyfikatów, aby dodać obsługę HTTPS do witryn S3. Możesz tego chcieć, ale zero buforowania.

 0
Author: nathan-cloudright.co.uk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-26 14:42:18