WordPress e Amazon CloudFront per Content Delivery Network
da Massimo Della Rovere · pubblicato il 2 Dicembre, 2016 · modificato il 5 Giugno, 2017

Se avete seguito gli articoli precedenti che riguardano WordPress in Cloud Computing sapete che in questo momento ci ritroviamo con una configurazione che prevede una istanza EC2 con WordPress installato e una istanza MySQL esterna per la gestione del database. Dato che il nostro obiettivo è quello di svincolare dal server principale tutte le risorse che devono essere condivise, in questo articolo vedremo come portare le risorse statiche come immagini, file, fogli di stile, javascript, etc, fuori dal server in modo che possano essere gestite dal servizio CDN di Amazon CloudFront.

Vantaggi

Usare una soluzione di content delivery network porta ad una serie di vantaggi che vanno oltre al servizio specifico che andiamo ad utilizzare. Vi riporto qui di seguito quelli che secondo me sono i più importanti e su cui vale la pena riflettere.

Server più performante: Quando caricate una singola pagina web in realtà il browser eseguirà diverse richieste HTTP allo stesso server per il caricamento delle immagini e di tutte le risorse che incontra nella pagina HTML, quindi la richiesta di una pagina può in realtà generare molte richieste HTTP che a loro volta caricano di lavoro il nostro server. Spostando tutte queste risorse su una CDN il nostro server risparmierà migliaia di richieste HTTP che saranno elaborate dal servizio di Amazon CloudFront.

Migliore latenza: Quando le immagini sono memorizzate sul nostro server chiunque vuole scaricarle dovrà effettuare una connessione al server stesso e quindi arrivare in modo fisico alla ubicazione del server e alla sua regione geografica di appartenenza. Se invece le risorse sono memorizzate in CDN, Amazon eseguirà una copia di queste risorse in diverse locazioni e servirà l’utente da quella più vicina. Ad esempio, se siamo in Italia e stiamo usando una configurazione classica, la nostra richiesta dovrà arrivare fino al datacenter del nostro server (ad esempio Irlanda), mentre se usiamo CloudFront con molta probabilità la richiesta delle immagini sarà servita da Milano.

Ridondanza: memorizzare tutte le risorse statiche su Amazon S3 e di conseguenza su CloudFront nelle varie edge location significa anche stare al sicuro da eventuali guasti che si potrebbero verificare sull’hardware dell’istanza virtuale, infatti i dati sarebbero esterni e copiati in modo automatico da Amazon su tre datacenter diversi. Ovviamente questo non significa che non ci dobbiamo preoccuparci della politica di backup, questa funzione deve rimanere sempre qualcosa di obbligatorio e costante nel tempo.

Usare una CDN con WordPress

Per configurare la memorizzazione delle immagini di WordPress presso un servizio di Content Delivery bisognerebbe sviluppare dei filtri per cambiare il comportamento delle funzioni che eseguono queste operazioni. Però abbiamo la fortuna di poter utilizzare una strada molto più semplice ed usare un plugin chiamato WP Offload S3 che esiste sia in versione gratuita di base che come PRO per utilizzare le funzioni complete.

Prima di usare il plugin appena indicato ricordiamoci che dobbiamo creare un bucket su Amazon S3 che dedicheremo alla memorizzazione della nostra cartella upload, una volta eseguita questa operazione dovremmo andare nel servizio di CloudFront dove passiamo a creare una nuova distribuzione collegata al bucket S3 appena creato. Per vedere tutte le informazioni che riguardano la creazione di una distribuzione vi rimando all’articolo scritto a suo tempo su questo argomento: Amazon CloudFront.

Cloudfront

Anche se trovate tutto nell’articolo indicato vi ho allegato questa immagine per vedere la console principale del servizio di Amazon CloudFront su cui è possibile visionare le distribuzioni esistenti, crearne di nuove e cancellare quelle che non utilizziamo più.

WP Offload S3

Una volta creata la distribuzione di CloudFront possiamo procedere all’installazione del plugin che vi ho introdotto nel paragrafo precedente. L’utilizzo del plugin è molto semplice e non serve nessuna conoscenza particolare. Basta andare nella pagina di configurazione e specificare i parametri richiesti come il nome della distribuzione, il tipo di memorizzazione (locale, solo s3, entrambi) e il tipo di autorizzazione.

Plugin S3

Nel campo BUCKET bisognerà specificare il link URL al bucket S3 che abbiamo creato, questo serve a WordPress per scrivere i file della libreria media su Amazon invece che nella cartella locale /uploads a cui siamo abituati. Mentre chi accederà al nostro sito accederà alle immagini tramite il dominio specificato in CloudFront o Custom Domain.

NB: Saranno prese in considerazioni e memorizzate in CloudFront solo le immagini che caricheremo dal momento della installazione e attivazione del plugin. Per le immagini precedenti dovete avviare manualmente l’opzione che trovate nella pagina del plugin, la quale potrebbe durare anche parecchi minuti in base al numero di file da trasferire.

WordPress in Cloud Computing

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services. Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

2 Commenti

  1. Ho cominciato ad utilizzare WP Offload S3 per un nuovo progetto WordPress.. Semplicissimo e veloce ed anche molto figo da "rivendere".. Dire che sfrutti la potenza del Cloud di Amazon fa figo.. Unica cosa sono un po' in pensiero per i costi anche se ho limitato la CDN..

  2. I costi di cloudfront non sono alti, almeno che non fai veramente tanto traffico, in ogni caso quando si utilizza una CDN in realtà si potrebbe abbassare la potenza della EC2 dato che non deve più servire centinaia di risorse statiche, quindi i costi alla fine si compensano, anzi su grande scala si risparmia proprio. Trovi diverse risorse su questo in internet.

condividi