2015-12-22 16 views
5

Sappiamo tutti che CloudFlare ha una funzione in cui, se il tuo server è offline, inizierà a pubblicare una versione cache del tuo sito web - se qualcosa è andato storto o se stai facendo un semplice riavvio.Sopravvivere a un riavvio con AWS CloudFront

Ho cercato la rete in alto e in basso, su come fare la stessa cosa con CloudFront ma non riesco proprio ad essere in grado di scavare qualsiasi tipo di risorsa in relazione a questo problema.

Avete qualche indicazione?

+0

Qualsiasi motivo si desidera utilizzare CloudFront quando CloudFlare ha la funzionalità che si desidera? Trovo che CloudFlare sia generalmente migliore di CloudFront tranne in alcuni casi d'uso specifici. –

+0

@MarkB Voglio solo vedere se è possibile con CloudFront –

risposta

3

CloudFront preleva le risorse dalla propria origine, le memorizza nella posizione del bordo alla prima richiesta del visualizzatore e restituisce la versione memorizzata nella cache alle richieste di visualizzazione successive.

Dopo che l'oggetto è scaduto nella posizione del bordo, CloudFront contatterà nuovamente l'origine per determinare se la cache ha l'ultima versione dell'oggetto e, in caso contrario, per ottenere l'ultima versione. Se il tuo server di origine non è disponibile in questo momento, CloudFront restituirà la versione memorizzata nella cache [stale] dell'oggetto al visualizzatore.

Vedere la documentazione di CloudFront qui - http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html#HTTPStatusCodes-no-custom-error-pages.

+0

Sì, sono a conoscenza di questi fatti ma come si indirizza il traffico lì come ripiego? –

+0

Non sono sicuro di aver compreso la tua domanda. Come possiamo indirizzare il traffico dove? –

+0

La mia prima domanda riguarda come indirizzare il traffico verso CloudFront quando il server non funziona. –

3

Indirizza il traffico verso CloudFront per tutto il periodo. CloudFront estrarrà il contenuto dal tuo server in base alle necessità (ad esempio, se CloudFront ha già una copia cache di una pagina o di un'altra risorsa, verrà pubblicata tale copia cache). Se il tuo server non funziona a causa di un riavvio o perché qualcosa è andato storto e CloudFront ha una copia cache della tua pagina, CloudFront servirà la copia cache, indipendentemente da quanto sia fresca.

Se è necessario assicurarsi che una risorsa particolare si trovi nella cache di CloudFront prima che il server si interrompa, basta premere quella pagina con un browser web. Ciò renderà CloudFront in grado di servire la pagina dalla sua cache o di estrarla dal tuo server di origine; in entrambi i casi, il risultato netto è che la pagina è memorizzata nella cache in CloudFront.

+0

Quindi non c'è modo di instradare il traffico in modo condizionato in base a un healthcheck? –

+1

Supponiamo che il tuo sito web sia www.xyz.com. La voce DNS per www.xyz.com deve indicare qualcosa. Cambiando dinamicamente il DNS, in modo che un momento punti al tuo provider di hosting e il momento successivo che punta a CloudFront non è un'opzione praticabile. Il tempo di propagazione del DNS è in genere più lungo di quanto necessario per il riavvio del server. Quindi www.xyz.com dovrebbe * sempre * indicare la cosa che fa il controllo sanitario. È possibile aggiungere il proprio server di controllo dello stato e fare in modo che www.xyz.com punti, ma CloudFront esegue già il controllo dello stato di salute come descritto, quindi basta indicare www.xyz.com su CloudFront. – George

2

Il cloudfront memorizza nella cache solo il contenuto statico. Non è altro che un CDN.

Se il server deve essere riavviato, presumo che sia uno stack Web standard. Se è così, dovresti usare un ELB con più macchine. Probabilmente puoi cavartela con le micro istanze se pensi che il cloudfront stia facendo la maggior parte del lavoro.

Se si dispone di un sito Web statico, è sufficiente utilizzare S3. Non si riavvia, e puoi facilmente CDN via cloudfront. Non c'è bisogno di ELB

Problemi correlati