Najlepsza Praktyka Wdrażania Chmury Amazon S3

Naszym obecnym planem dla witryny jest użycie usługi Cloudfront Amazon jako CDN dla plików zasobów, takich jak CSS, JavaScript i obrazów oraz wszelkich innych plików statycznych.

Mamy obecnie 1 bucket W S3, który zawiera wszystkie te pliki statyczne. Pliki są podzielone na różne foldery w zależności od tego, czym są, "Skrypty" to Pliki JS, "obrazy" to obrazy itp.

Więc od początku nie zdawałem sobie sprawy, że po uruchomieniu wiadra z S3 na Dystrybucja Cloudfront, wtedy każda kolejna aktualizacja do zasobnika nie zostanie wdrożona ponownie do tej samej dystrybucji. Wygląda więc na to, że musisz ponownie przenieść wiadro do innej instancji Cloudfront za każdym razem, gdy masz aktualizację pliku statycznego.

To jest dobre dla obrazów, ponieważ możemy łatwo upewnić się, że jeśli nastąpi zmiana obrazu, to po prostu tworzymy nowy obraz. Ale to jest trudne do zrobienia dla CSS i JS.

Więc, to prowadzi mnie do najlepszych praktyk pytania:

  1. czy najlepszą praktyką jest tworzenie kolejnej dystrybucji Cloudfront dla każdego wdrożenia produkcyjnego? Problem polega na tym, że powoduje problemy z rekordami CNAME.
  2. czy najlepszą praktyką jest nie magazynowanie CSS i JS w Cloudfront z powodu natury tych plików i ich potrzeby łatwej modyfikacji? Wydaje się, że odpowiedzią na to byłoby nie, ponieważ taki jest cel CDN.
  3. czy jest jakaś inna metoda z Cloudfront, której nie znam o czym?
Author: Mike Richards, 2011-07-14

2 answers

Możesz wysyłać wnioski o unieważnienie do CloudFront.

Http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

Zamiast wiadra S3, używamy własnego serwera jako niestandardowego źródła. Mamy .htaccess alias style_*.css do style.css i wstawiamy czas modyfikacji pliku dla style.css w HTML. Ponieważ CloudFront widzi zupełnie inny adres URL, pobierze nową wersję.

(Uwaga: Niektóre CDN pozwalają ci to zrobić poprzez łańcuch zapytań, ale CloudFront ignoruje wszystkie dane ciągów zapytań do buforowania, stąd rozwiązanie .htaccess.)

Edit: CloudFront może być (opcjonalnie) skonfigurowany do używania ciągów zapytań.

 18
Author: ceejayoz,
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
2012-05-21 19:34:58

CloudFront rozpoczął obsługę ciągów zapytań, których można użyć do unieważnienia pamięci podręcznej. http://aws.typepad.com/aws/2012/05/amazon-cloudfront-support-for-dynamic-content.html

 8
Author: Mayank Jain,
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
2012-06-05 05:20:26