Implementazione di Amazon S3 per blog WordPress

amazon s3 wordpress

Nota: Da quando ho scritto questo articolo, siamo passati a Volano con una Content Delivery Network alimentato da StackPath CDN, una CDN molto più veloce di Amazon.378

A meno che tu non sia su una piattaforma di hosting aziendale premium, è difficile ottenere prestazioni aziendali con un CMS come WordPress. Condivisione del carico, backup, ridondanza, replica e consegna dei contenuti non sono economici.

Molti rappresentanti IT visualizzano piattaforme come WordPress e le usano perché lo sono "gratis". Tuttavia, la gratuità è relativa. Metti WordPress su una tipica infrastruttura di hosting e un paio di centinaia di utenti simultanei possono fermare il tuo sito. Per aiutare le prestazioni del mio blog, questa settimana ho modificato la mia installazione di WordPress push tutta la grafica da Amazon S3 (Amazon Simple Storage Service). Questo lascia il mio server a spingere semplicemente HTML tramite PHP / MySQL.

Amazon S3 fornisce una semplice interfaccia di servizi Web che può essere utilizzata per archiviare e recuperare qualsiasi quantità di dati, in qualsiasi momento e da qualsiasi punto del Web. Offre a qualsiasi sviluppatore l'accesso alla stessa infrastruttura di archiviazione dati altamente scalabile, affidabile, veloce ed economica che Amazon utilizza per eseguire la propria rete globale di siti web. Il servizio mira a massimizzare i vantaggi di scala e a trasmetterli agli sviluppatori.

La conversione del sito per Amazon S3 ha richiesto un po 'di lavoro, ma ecco le basi:

  1. ISCRIVITI PER RICEVERE Amazon Web Services.
  2. Carica il componente aggiuntivo di Firefox per S3. Ciò fornisce un'ottima interfaccia per la gestione dei contenuti in S3.
  3. Aggiungere un benna, in questo caso ho aggiunto www.martech.zone.
  4. Aggiungi un CNAME al tuo registrar di domini per indirizzare un sottodominio dal tuo sito ad Amazon S3 per l'hosting virtuale.
  5. Scarica e installa il plugin WordPress per Amazon S3.
  6. Imposta l'ID chiave di accesso AWS e la chiave segreta e fai clic su Aggiorna.
  7. Seleziona il sottodominio / bucket che hai creato sopra per Usa questo secchio impostazione.

wp-amazon-s3-settings.png

I passi successivi sono stati la parte divertente! Non volevo servire solo contenuti futuri da S3, volevo servire tutti i contenuti, inclusi annunci, temi e file multimediali passati.

  1. Ho creato cartelle per Annunci, temie Upload nel mio secchio su S3.
  2. Ho eseguito il backup di tutto il mio contenuto corrente (immagine e file multimediali) nelle cartelle applicabili.
  3. Ho modificato il mio file CSS nel mio tema per estrarre tutte le immagini da www.martech.zone/themes.
  4. Ho fatto un Ricerca e sostituzione di MySQL e aggiornato ogni riferimento al contenuto multimediale da visualizzare dal sottodominio S3.
  5. Ho aggiornato tutti i riferimenti alle immagini per gli annunci da visualizzare dalla cartella ads nel sottodominio S3.

Da qui in poi, devo semplicemente caricare i media su S3 piuttosto che utilizzare il dialogo di caricamento delle immagini predefinito per WordPress. Il plugin fa un lavoro fantastico mettendo un'icona S3 nella stessa posizione delle icone di caricamento / inserimento nell'amministratore di WordPress.

Lo spostamento di tutti i dati e l'esecuzione su S3 per un paio di giorni ora ha comportato $ 0.12 in addebiti S3, quindi non sono preoccupato per le commissioni coinvolte - forse pochi dollari al mese è quello che costerà. Tra i lati positivi, se ricevo un sacco di visitatori, dovrei essere in grado di gestire molti di più rispetto alle attuali maniglie della piattaforma. Il mio sito sta caricando la home page in circa Il 40% delle volte che prima, quindi sono abbastanza contento del trasferimento!

La cosa più bella di questa mossa è che in realtà non ha richiesto alcuno sviluppo!

Commenti

  1. 1

    Ciao,

    Ho un account Amazon S3, ma dopo aver cercato di capire le cose, l'ho lasciato perché è troppo difficile. L'addin firefox per S3 lo rende molto più semplice?

    • 2

      Ciao Ramin,

      Il componente aggiuntivo per Firefox è stato davvero un pezzo chiave del puzzle. Devi assolutamente avere un secchio in posizione prima che il plug-in funzioni, quindi è un gioco da ragazzi.

      Doug

  2. 3

    Dovrei aggiungere, dovrai puntare il tuo CNAME al nuovo your_unique_cloudfront_distribution_name.cloudfront.net invece di tuo_unico_sottodominio.s3.amazonaws.com. Ma dopo, lo tratti come un normale secchio S3.

    Costa di più quando si utilizza l'opzione CloudFront a velocità maggiore / bassa latenza. Se decidi di tornare alla versione S3 standard, cambia semplicemente il tuo CNAME in modo che punti nuovamente a s3.amazonaws.com.

    Circa un anno fa ho scrittohttp://www.carltonbale.com/tag/amazon-s3/"a alcuni post del blog su Amaon S3 per chiunque sia interessato.

  3. 4

    Se stai cercando un aumento ancora maggiore della velocità, trasforma il tuo bucket Amazon S3 in un bucket Amazon CloudFront, che crea una vera rete globale di distribuzione dei contenuti multi-server a bassa latenza. Qui un link con tutti i dettagli: http://aws.amazon.com/cloudfront/faqs/

    Inoltre, il plug-in wp-supercache può aumentare notevolmente la velocità su siti ad alto traffico poiché riduce notevolmente il carico della CPU e le chiamate al database.

    • 5

      Molto bello, Carlton! Quindi è molto una rete distribuita come Akamai. Non mi ero reso conto che lo avessero a disposizione! Potrei approfittarne dopo aver visto alcuni dei costi.

      Ho già avuto la memorizzazione nella cache con wp abilitato in precedenza, ma ho alcuni contenuti dinamici quindi ho davvero faticato con esso poiché a volte memorizzava nella cache i contenuti che volevo caricare in tempo reale.

      • 6

        Douglas,

        Dalla loro descrizione sembra che Amazon stia facendo qualcosa di completamente diverso, dicono:

        "Amazon CloudFront utilizza 14 edge location nei principali mercati del mondo. Otto sono negli Stati Uniti (Ashburn, VA; Dallas / Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO). Quattro sono in Europa (Amsterdam; Dublino; Francoforte; Londra). Due sono in Asia (Hong Kong, Tokyo) ".

        Fondamentalmente sfruttano gli scambi Internet per sfruttare la loro vicinanza all'utente finale dove, come CDN come Akamai, hanno server molto più vicini all'utente finale solitamente all'interno della rete dell'ISP.

        Il modo in cui Amazons lo fa è Akamai molto più economico ed efficace.

        Rogerio - http://www.itjuju.com/

  4. 7

    Non direi che è difficile "ottenere prestazioni aziendali con un CMS come WordPress".

    Dipende tutto da come configuri la tua infrastruttura o dal modo in cui ospiti il ​​tuo CMS.
    Il modo in cui il CMS stesso è stato codificato può anche giocare un ruolo importante nelle sue prestazioni, come ha sottolineato Carlton con l'utilizzo del plugin wp-supercache.

    Sarebbe stato meglio se la funzionalità del plugin wp-supercache fosse stata integrata in wordpress dall'inizio, ma ciò richiederebbe una nuova scrittura del front-end. Che è cosa lightpress.org fatto.

    Il caricamento di contenuto statico su qualcosa come S3 è un buon modo per scaricare l'elaborazione e la consegna dal server principale. È un modo semplice e conveniente per attingere all'infrastruttura di Amazons per fare il lavoro pesante, ma una volta raggiunta una soglia cretina, Amazon inizierà a diventare costoso e sarà più economico farlo in casa e andare con un CDN.

    Rogerio - http://www.itjuju.com/

    Ps
    Ho pensato a quella situazione per un po ', se solo 100 persone si unissero e contribuissero ogni mese al prezzo di un server decente che normalmente pagherebbero per poter costruire / mettere insieme un'infrastruttura di hosting in grado di gestire quasi tutto.

  5. 8

    $ 0.12 per i primi due giorni di servizi S3. Rivisiteresti l'argomento tra qualche mese e mostreresti alcune statistiche sul traffico rispetto ai costi? Sarebbe interessante vedere come il costo si suddivide per visitatori unici e contro i costi degli annunci o altri input.

  6. 13
  7. 14

    Amazon S3 è un servizio incredibilmente ben valutato. Sono solo nel processo di integrazione in un CMS. L'unico problema che ho riscontrato dal punto di vista dello sviluppo, non dal punto di vista del servizio Amazon, è che se desideri che il tuo utente carichi in modo trasparente il file direttamente su S3 tramite POST e hai un modulo multiparte che incorpora il testo destinato al tuo locale database, sei bloccato. È necessario separarlo in due moduli o provare a utilizzare ajax per caricare prima il file, quindi inviare i dati localmente in caso di successo.

    Se qualcuno ha una soluzione migliore, non esitare a farmelo sapere: o)

    Tuttavia, il risparmio sui costi per l'hosting di file di grandi dimensioni ad alto traffico garantisce lo sviluppo di un tale sistema.

    Grant

    Sistemi di gestione degli elenchi di soppressione

  8. 15

    Ciao,

    Ottima scrittura. Sono andato avanti come descrivi, ma nel mio pannello di amministrazione in cui carico le immagini, non vedo il pulsante S3. Ho notato che le mie immagini, una volta caricate, normalmente finiscono su Amazon, significa che ora posso copiare tutte le mie immagini esistenti ed eliminare quelle sul server?

    E devo modificare la provenienza delle mie immagini o il plugin lo fa?

  9. 16

    Ciao Scott,

    Dovresti vedere una piccola icona che guarda al database a destra della tua icona tipica. Questa è l'icona per far apparire la finestra di Amazon. Ho spostato tutti i contenuti / caricamenti di wp su Amazon e mi sono assicurato di avere lo stesso percorso ... l'unica differenza è il sottodominio. Erano a http://www... e ora sono su images.marketingtechblog.com. Dopo aver copiato tutte le immagini su Amazon, ho utilizzato PHPMyAdmin e ho cercato e sostituito src = ”http://martech.zone e l'ho sostituito con src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Spero che aiuti! Non è semplice, ma funziona.

    Doug

  10. 17

    Ehi Douglas, grazie per questo, ho aggiornato il DB in modo che tutte le immagini puntino a immagini., Ma vedo che alcuni pollici (se guardati tramite le informazioni sulla pagina) mostrano l'iamge ancora su www.

    Ecco il sito (www.gamefreaks.co.nz) - a, pur avendo qualche grosso problema di memoria per la prima pagina, è iniziato solo dopo aver spostato l'hosting, quindi ora sto cercando di scaricare parte della pressione dell'hosting su S3. 😎

  11. 18
  12. 19
  13. 20
    • 21

      È compatibile con l'ultima versione, ma onestamente non mi piace il modo in cui funziona: devi spostare e caricare tutte le immagini su S3 con un processo diverso. Potremmo effettivamente costruire un'integrazione CDN (Content Delivery Network) più robusta con WP che si sincronizza piuttosto che richiedere un processo diverso.

  14. 22
  15. 23

    Sai se funziona anche con i "secchi esterni"? Voglio impostarlo per un blog di un mio amico e lasciargli usare un bucket nel mio account AWS (ho già creato un account utente per lui e gli ho dato accesso a uno dei miei bucket utilizzando gli strumenti Amazon IAM).

  16. 24
  17. 25
    • 26

      Celia, vai alla casa AWS http://aws.amazon.com/ e nel menu a discesa "Account / Console", seleziona "Credenziali di sicurezza". Accedi se necessario. Da lì, scorri verso il basso fino a Credenziali di accesso e vedrai i tuoi ID chiave di accesso elencati. Copia uno di quelli per l'ID chiave per questo plug-in, quindi fai clic sul link "Mostra" per vedere la chiave di accesso segreta più lunga. Copia quello e incollalo anche nelle impostazioni del plugin. Dovresti essere tutto pronto dopo!

  18. 27
  19. 28

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.