Implémentation d'Amazon S3 pour les blogs WordPress

Amazon s3 wordpress

Note : Depuis l'écriture de ceci, nous avons depuis migré vers Volant avec un Content Delivery Network alimenté par StackPath CDN, un CDN beaucoup plus rapide qu'Amazon.378

À moins que vous ne soyez sur une plate-forme d'hébergement d'entreprise haut de gamme, il est difficile d'obtenir des performances d'entreprise avec un CMS comme WordPress. Le partage de charge, les sauvegardes, la redondance, la réplication et la livraison de contenu ne sont pas bon marché.

De nombreux responsables informatiques consultent des plates-formes comme WordPress et les utilisent car gratuit. La gratuité est relative, cependant. Mettez WordPress sur une infrastructure d'hébergement typique et quelques centaines d'utilisateurs simultanés peuvent arrêter votre site. Pour aider à la performance de mon blog, cette semaine j'ai modifié mon installation de WordPress push tous les graphiques d'Amazon S3 (Amazon Simple Storage Service). Cela laisse mon serveur simplement pousser HTML via PHP / MySQL.

Amazon S3 fournit une interface de services Web simple qui peut être utilisée pour stocker et récupérer n'importe quelle quantité de données, à tout moment, de n'importe où sur le Web. Il permet à tout développeur d'accéder à la même infrastructure de stockage de données hautement évolutive, fiable, rapide et peu coûteuse qu'Amazon utilise pour gérer son propre réseau mondial de sites Web. Le service vise à maximiser les avantages d'échelle et à transmettre ces avantages aux développeurs.

La conversion du site pour Amazon S3 a demandé un peu de travail, mais voici les bases:

  1. Inscrivez-vous Amazon Web Services.
  2. Chargez le module complémentaire Firefox pour S3. Cela vous fournit une excellente interface pour gérer le contenu dans S3.
  3. Ajouter un seau, dans ce cas j'ai ajouté www.martech.zone.
  4. Ajoutez un CNAME à votre registraire de domaine pour pointer un sous-domaine de votre site vers Amazon S3 pour un hébergement virtuel.
  5. Téléchargez et installez le plugin WordPress pour Amazon S3.
  6. Définissez votre ID de clé d'accès AWS et votre clé secrète, puis cliquez sur Mettre à jour.
  7. Sélectionnez le sous-domaine / compartiment que vous avez créé ci-dessus pour le Utilisez ce seau réglage.

wp-amazon-s3-settings.png

Les prochaines étapes étaient la partie amusante! Je ne voulais pas simplement diffuser le contenu futur de S3, je voulais diffuser tout le contenu, y compris les publicités, les thèmes et les anciens fichiers multimédias.

  1. J'ai créé des dossiers pour annonces, thèmesainsi que ajouts dans mon seau sur S3.
  2. J'ai sauvegardé tout mon contenu actuel (images et fichiers multimédias) dans les dossiers applicables.
  3. J'ai modifié mon fichier CSS dans mon thème pour extraire toutes les images de www.martech.zone/themes.
  4. J'ai fait un Recherche et remplacement MySQL et mis à jour chaque référence au contenu multimédia à afficher à partir du sous-domaine S3.
  5. J'ai mis à jour toutes les références d'image pour les annonces à afficher à partir du dossier annonces sur le sous-domaine S3.

À partir de maintenant, je dois simplement télécharger des médias sur S3 plutôt que d'utiliser la boîte de dialogue de téléchargement d'image par défaut pour WordPress. Le plugin fait un travail fantastique en plaçant une icône S3 au même emplacement que les icônes Télécharger / Insérer dans l'admin WordPress.

Le déplacement de toutes les données et l'exécution sur S3 pendant quelques jours maintenant a entraîné des frais S0.12 de 3 USD, donc je ne suis pas préoccupé par les frais impliqués - peut-être quelques dollars par mois sont-ils ce que cela coûtera. Du côté positif, si je reçois une tonne de visiteurs, je devrais être capable de gérer beaucoup plus que ce que la plate-forme actuelle gère. Mon site charge la page d'accueil dans environ 40% du temps avant, donc je suis assez content du déménagement!

Le plus beau à propos de ce déménagement est qu'il n'a en fait nécessité aucun développement!

28 Commentaires

  1. 1

    Salut,

    J'ai un compte Amazon S3, mais après avoir essayé de comprendre les choses, je l'ai laissé parce que c'est trop difficile. L'addin Firefox pour S3 facilite-t-il les choses?

    • 2

      Salut Ramin,

      Le module complémentaire Firefox était vraiment une pièce clé du puzzle. Vous devez absolument avoir un seau en place avant que le plugin fonctionne - ce qui en fait un jeu d'enfant.

      Doug

  2. 3

    Je dois ajouter, vous devrez pointer votre CNAME vers le nouveau your_unique_cloudfront_distribution_name.cloudfront.net au lieu de to votre_unique_sous-domaine.s3.amazonaws.com. Mais après cela, vous le traitez comme un compartiment S3 normal.

    Cela coûte plus cher lors de l'utilisation de l'option CloudFront à vitesse plus élevée / faible latence. Si vous décidez que vous préférez revenir à la version standard de S3, changez simplement votre CNAME pour qu'il pointe vers s3.amazonaws.com à la place.

    Il y a environ un an, j'ai écrithttp://www.carltonbale.com/tag/amazon-s3/"a quelques articles de blog sur Amaon S3 pour toute personne intéressée.

  3. 4

    Si vous recherchez encore plus d'augmentation de la vitesse, transformez votre compartiment Amazon S3 en un compartiment Amazon CloudFront, ce qui crée un véritable réseau de distribution de contenu multiserveur mondial à faible latence. Voici un lien avec tous les détails: http://aws.amazon.com/cloudfront/faqs/

    En outre, le plugin wp-supercache peut augmenter considérablement la vitesse sur les sites à fort trafic car il réduit considérablement la charge du processeur et les appels à la base de données.

    • 5

      Très cool, Carlton! Il s'agit donc essentiellement d'un réseau distribué tel que Akamai. Je ne savais pas qu'ils avaient cela disponible! J'en profiterai peut-être après avoir vu certains des coûts.

      J'ai déjà activé la mise en cache avec wp, mais j'ai du contenu dynamique, donc j'ai vraiment eu du mal avec cela car il mettait parfois en cache le contenu que je voulais réellement charger en temps réel.

      • 6

        Douglas,

        D'après leur description, on dirait qu'Amazon fait quelque chose de complètement différent, disent-ils:

        «Amazon CloudFront utilise 14 emplacements périphériques sur les principaux marchés du monde entier. Huit sont aux États-Unis (Ashburn, VA; Dallas / Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO). Quatre sont en Europe (Amsterdam, Dublin, Francfort, Londres). Deux sont en Asie (Hong Kong, Tokyo). »

        Ils tirent essentiellement parti des échanges Internet pour tirer parti de leur proximité avec l'utilisateur final, alors que les CDN comme Akamai ont des serveurs beaucoup plus proches de l'utilisateur final, généralement au sein du réseau du FAI.

        La manière Amazones de le faire est beaucoup moins chère et plus efficace Akamai.

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

  4. 7

    Je ne dirais pas qu'il est difficile «d'obtenir des performances d'entreprise avec un CMS comme WordPress».

    Tout dépend de la façon dont vous configurez votre infrastructure ou de la façon dont vous hébergez votre CMS.
    La façon dont le CMS lui-même a été codé peut également jouer un grand rôle dans ses performances comme l'a souligné Carlton en utilisant le plugin wp-supercache.

    Il aurait été préférable que la fonctionnalité du plugin wp-supercache ait été intégrée à wordpress dès le début - mais cela nécessiterait de réécrire le front-end. Lequel est quoi lightpress.org fait.

    Le déchargement du contenu statique vers quelque chose comme S3 est un bon moyen de décharger le traitement et la livraison du serveur principal. C'est un moyen facile et pratique d'exploiter l'infrastructure d'Amazones pour faire le gros du travail, mais une fois que vous atteignez un seuil de crétin, Amazon commencera à devenir cher et il sera moins cher de le faire en interne et d'utiliser un CDN.

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

    Ps
    J'ai réfléchi à cette situation pendant un moment, si seulement 100 personnes se réunissaient et contribuaient chaque mois au prix d'un serveur décent qu'elles paieraient normalement, elles pourraient construire / mettre en place une infrastructure d'hébergement capable de gérer presque tout.

  5. 8

    0.12 USD pour les deux premiers jours de services S3. Souhaitez-vous revoir le sujet dans quelques mois et montrer quelques statistiques sur le trafic par rapport aux coûts? Il serait intéressant de voir comment le coût se répartit entre les visiteurs uniques et les coûts publicitaires ou autres intrants.

  6. 13
  7. 14

    Amazon S3 est un service incroyablement apprécié. Je suis juste en train de l'intégrer dans un CMS. Le seul problème que j'ai rencontré du point de vue du développement, pas du point de vue du service Amazon, est que si vous voulez que votre utilisateur télécharge de manière transparente le fichier directement sur S3 via POST et que vous disposez d'un formulaire en plusieurs parties qui incorpore du texte destiné à votre local. base de données, vous êtes coincé. Vous devez soit le séparer en deux formes, soit essayer d'utiliser ajax pour télécharger le fichier d'abord, puis en cas de succès, soumettre les données localement.

    Si quelqu'un a une meilleure solution, n'hésitez pas à me le faire savoir: o)

    Néanmoins, les économies de coûts liées à l'hébergement de gros fichiers à fort trafic justifient le développement d'un tel système.

    Subvention

    Systèmes de gestion des listes de suppression

  8. 15

    Salut,

    Grande rédaction. J'ai parcouru ce que vous décrivez, mais dans mon panneau d'administration où je télécharge des images, je ne vois pas de bouton S3. J'ai remarqué que mes images, lorsqu'elles sont téléchargées normalement, finissent sur Amazon, cela signifie-t-il que je peux maintenant copier toutes mes images existantes et supprimer celles sur le serveur?

    Et dois-je modifier la provenance de mes images ou est-ce que le plugin le fait?

  9. 16

    Salut Scott,

    Vous devriez voir une petite icône en forme de base de données à droite de votre icône typique. C'est l'icône pour faire apparaître la fenêtre Amazon. J'ai déplacé tout wp-content / upload sur Amazon et je me suis assuré que j'avais le même chemin… la seule différence étant le sous-domaine. Ils étaient à http://www... et maintenant ils sont à images.marketingtechblog.com. Après avoir copié toutes les images sur Amazon, j'ai utilisé PHPMyAdmin et effectué une recherche et un remplacement pour src = ”http://martech.zone et l'ai remplacé par src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    J'espère que ça t'as aidé! Ce n'est pas transparent, mais cela fonctionne.

    Doug

  10. 17

    Hey Douglas, merci pour cela, j'ai mis à jour la base de données afin que toutes les images pointent vers des images., Mais je vois que certains des pouces (lorsqu'ils sont regardés via la page info) montrent l'iamge toujours sur www.

    Voici le site (www.gamefreaks.co.nz) - a, ayant également un problème de mémoire majeur pour la page d'accueil, n'a commencé qu'une fois que nous avons transféré l'hébergement, donc je cherche maintenant à décharger une partie de la pression d'hébergement vers S3. 😎

  11. 18

    savez-vous s'il est possible de simplement télécharger sur S3 sans stocker également une copie sur le serveur local?

    Tnx

  12. 19

    Salut Scott, le plugin S3 fournit son propre chemin directement vers Amazon, donc le fichier n'est PAS stocké localement.

  13. 20
    • 21

      Il est compatible avec la dernière version, mais honnêtement, je n'aime pas la façon dont cela fonctionne - vous devez déplacer et charger toutes les images sur S3 avec un processus différent. Nous pouvons en fait construire une intégration CDN (Content Delivery Network) plus robuste avec WP qui synchronise plutôt que d'exiger un processus différent.

  14. 22
  15. 23

    Savez-vous si cela fonctionne également avec les «godets externes»? Je souhaite configurer cela pour le blog d'un de mes amis et le laisser utiliser un bucket dans mon compte AWS (j'ai déjà créé un compte utilisateur pour lui et lui ai donné accès à l'un de mes buckets à l'aide des outils Amazon IAM).

  16. 24
  17. 25
    • 26

      Celia, allez à la maison AWS http://aws.amazon.com/ et dans le menu déroulant «Mon compte / console», sélectionnez «Identifiants de sécurité». Connectez-vous si vous en avez besoin. À partir de là, faites défiler jusqu'à Informations d'identification d'accès et vous verrez vos ID de clé d'accès répertoriés. Copiez l'un de ceux pour l'ID de clé de ce plugin, puis cliquez sur le lien «Afficher» pour voir la clé d'accès secrète plus longue. Copiez-le et collez-le également dans les paramètres du plugin. Vous devriez être prêt après ça!

  18. 27
  19. 28

Que pensez-vous?

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..