2015-12-22 18 views
5

Wszyscy wiemy, że CloudFlare ma funkcję, w której jeśli serwer jest w trybie offline, zacznie wyświetlać buforowaną wersję witryny - czy coś poszło nie tak czy nie. prosty restart.Przetrwanie po ponownym uruchomieniu z AWS CloudFront

Szukałem w sieci wysokich i niskich, jak zrobić to samo z CloudFront, ale po prostu nie mogę wydobyć żadnego zasobu w odniesieniu do tej sprawy.

Czy masz jakieś wskazówki?

+0

Każdy powód, dla którego chcesz korzystać z CloudFront, gdy CloudFlare ma pożądaną funkcję? Uważam, że CloudFlare jest generalnie lepszy niż CloudFront, z wyjątkiem kilku konkretnych przypadków użycia. –

+0

@MarkB Chcę tylko sprawdzić, czy jest to możliwe z CloudFront –

Odpowiedz

3

CloudFront będzie pobierał twoje zasoby z twojego miejsca pochodzenia, przechowuje je w lokalizacji brzegowej przy pierwszym żądaniu przeglądarki i zwraca wersję z pamięci podręcznej do kolejnych żądań przeglądarki.

Po wygaśnięciu obiektu w miejscu krawędzi, CloudFront skontaktuje się z punktem początkowym ponownie, aby ustalić, czy pamięć podręczna ma najnowszą wersję obiektu i, jeśli nie, uzyskać najnowszą wersję. Jeśli twój serwer źródłowy nie jest dostępny w tym momencie, CloudFront zwróci [nieaktualną] buforowaną wersję obiektu do przeglądarki.

Zobacz dokumentację CloudFront tutaj - http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html#HTTPStatusCodes-no-custom-error-pages.

+0

Tak, znam te fakty ale w jaki sposób przekierowujesz tam ruch uliczny? –

+0

Nie jestem pewien, czy rozumiem Twoje pytanie. W jaki sposób kierujemy ruch w którym? –

+0

Moje pierwsze pytanie dotyczy sposobu kierowania ruchu do CloudFront, gdy serwer jest wyłączony. –

3

Wskaż swój ruch na CloudFront cały czas. CloudFront pobierze zawartość z twojego serwera w miarę potrzeb (tzn. Jeśli CloudFront ma już wystarczająco świeżo zapisaną kopię strony lub innego zasobu, wyświetli tę buforowaną kopię). Jeśli serwer jest wyłączony z powodu restartu lub ponieważ coś poszło nie tak i CloudFront ma buforowaną kopię twojej strony, CloudFront będzie obsługiwał kopię z pamięci podręcznej, niezależnie od tego, jaka jest aktualna.

Jeśli chcesz się upewnić, że określony zasób znajduje się w pamięci podręcznej CloudFront zanim serwer przestanie działać, po prostu naciśnij tę stronę w przeglądarce. Spowoduje to, że CloudFront będzie obsługiwał stronę z jej pamięci podręcznej lub pobierze ją z serwera źródłowego; w obu przypadkach wynik netto jest buforowany w CloudFront.

+0

Więc nie ma możliwości warunkowego kierowania ruchu na podstawie kontroli stanu? –

+1

Powiedz, że Twoja strona internetowa to www.xyz.com. Wpis DNS dla www.xyz.com musi wskazywać na coś. Dynamiczne przełączanie DNS, tak aby w jednej chwili wskazywało na dostawcę usług hostingowych, a w następnej chwili wskazuje, że CloudFront nie jest realną opcją. Czas propagacji DNS jest zwykle dłuższy niż czas potrzebny do zrestartowania serwera. Więc www.xyz.com powinien * zawsze * wskazywać na rzecz, która sprawdza stan zdrowia. Możesz dodać własny serwer sprawdzania kondycji i sprawić, aby witryna www.xyz.com wskazywała na to, ale CloudFront już wykonuje test kondycji, tak jak to opisałem, więc po prostu wskaż stronę www.xyz.com w CloudFront. – George

2

Cloudfront buforuje tylko zawartość statyczną. To nic innego jak CDN.

Jeśli serwer wymaga ponownego uruchomienia, zakładam, że jest to standardowy stos sieciowy. Jeśli tak, powinieneś użyć ELB z wieloma maszynami. Prawdopodobnie możesz uciec z mikro instancjami, jeśli uważasz, że w chmurze wykonuje się większość pracy.

Jeśli masz statyczną stronę internetową, po prostu użyj S3. Nie uruchamia się ponownie i można łatwo CDN za pośrednictwem cloudfront. Nie ma potrzeby, aby ELB