2015-12-22 13 views
5

Wir wissen alle, dass CloudFlare über eine Funktion verfügt, bei der, wenn Ihr Server offline ist, eine zwischengespeicherte Version Ihrer Website angezeigt wird - egal, ob etwas schiefgelaufen ist oder ob Sie eine einfacher Neustart.Überstehen eines Neustarts mit AWS CloudFront

Ich habe das Netz hoch und niedrig gesucht, wie man das gleiche mit CloudFront macht, aber ich kann einfach nicht in der Lage sein, irgendeine Art von Ressource in Bezug auf diese Angelegenheit auszugraben.

Haben Sie irgendwelche Hinweise?

+0

Möchten Sie CloudFront verwenden, wenn CloudFlare die gewünschte Funktion hat? Ich finde, dass CloudFlare im Allgemeinen besser als CloudFront ist, außer in einigen speziellen Anwendungsfällen. –

+0

@MarkB Ich möchte nur sehen, ob es möglich ist, mit CloudFront –

Antwort

3

CloudFront holt Ihre Assets von Ihrem Ursprung ab, speichert sie an der Edge-Position nach der ersten Viewer-Anforderung und gibt die zwischengespeicherte Version an die nachfolgenden Viewer-Anforderungen zurück.

Nachdem das Objekt am Edge-Standort abgelaufen ist, kontaktiert CloudFront den Ursprung erneut, um festzustellen, ob der Cache über die neueste Version des Objekts verfügt und falls nicht, um die neueste Version zu erhalten. Wenn Ihr Ursprungsserver zu diesem Zeitpunkt nicht verfügbar ist, gibt CloudFront die zwischengespeicherte Version des Objekts an den Viewer zurück.

Die CloudFront-Dokumentation finden Sie hier - http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html#HTTPStatusCodes-no-custom-error-pages.

+0

Ja, ich kenne diese Fakten Aber wie leiten Sie den Verkehr als Fallback? –

+0

Nicht sicher, ob ich Ihre Frage verstehe. Wie leiten wir den Verkehr dorthin? –

+0

Meine erste Frage bezieht sich darauf, wie der Datenverkehr zu CloudFront weitergeleitet wird, wenn der Server nicht verfügbar ist. –

3

Zeigen Sie Ihren Datenverkehr auf CloudFront die ganze Zeit. CloudFront holt den Inhalt bei Bedarf von Ihrem Server ab (d. H. Wenn CloudFront bereits über eine frisch zwischengespeicherte Kopie einer Seite oder einer anderen Ressource verfügt, wird diese zwischengespeicherte Kopie bereitgestellt). Wenn Ihr Server aufgrund eines Neustarts nicht betriebsbereit ist oder weil etwas schief gelaufen ist und CloudFront über eine zwischengespeicherte Kopie Ihrer Seite verfügt, wird CloudFront die zwischengespeicherte Kopie bereitstellen, unabhängig davon, wie frisch sie ist.

Wenn Sie sicherstellen müssen, dass eine bestimmte Ressource im Cache von CloudFront ist, bevor Ihr Server ausfällt, klicken Sie einfach auf diese Seite mit einem Webbrowser. Dadurch wird CloudFront angewiesen, die Seite aus ihrem Cache zu bedienen oder sie von Ihrem Ursprungsserver zu übernehmen. In jedem Fall ist das Nettoergebnis, dass die Seite in CloudFront zwischengespeichert wird.

+0

Es gibt also keine Möglichkeit, den Datenverkehr basierend auf einem Healthcheck bedingt zu routen. –

+1

Sagen Sie Ihre Website ist www.xyz.com. Der DNS-Eintrag für www.xyz.com muss auf etwas zeigen. Dynamisches Wechseln des DNS, so dass es einen Moment auf Ihren Hosting-Provider zeigt und im nächsten Moment auf CloudFront hinweist. Die DNS-Laufzeit ist normalerweise länger als der Neustart eines Servers. Also sollte www.xyz.com * immer * auf die Sache zeigen, die den Gesundheitscheck macht. Sie können Ihren eigenen Systemdiagnose-Server hinzufügen und www.xyz.com darauf zeigen, aber CloudFront führt die Systemdiagnose bereits durch, wie ich es beschrieben habe. Zeigen Sie einfach www.xyz.com auf CloudFront. – George

2

Cloudfront speichert nur statische Inhalte. Es ist nichts anderes als ein CDN.

Wenn Ihr Server neu starten muss, gehe ich davon aus, dass es sich um einen Standard-Web-Stack handelt. Wenn dies der Fall ist, sollten Sie ein ELB mit mehreren Computern verwenden. Sie können wahrscheinlich mit Mikroinstanzen davonkommen, wenn Sie denken, dass Cloudfront den Hauptteil der Arbeit leistet.

Wenn Sie eine statische Website haben, verwenden Sie einfach S3. Es startet nicht neu, und Sie können CDN über Cloudfront einfach. Keine Notwendigkeit für ELB

Verwandte Themen