web-dev-qa-db-fra.com

Déploiement de wordpress en tant que fonctions AWS lambda?

Je me demande s’il est possible de déployer wordpress en tant que série de fonctions lambda sur la passerelle AWS API. Toute indication sur la faisabilité/les pièges serait grandement appréciée!

Merci d'avance,

PKK

21
PKK

Vous aurez beaucoup de choses à considérer avec persistance et même avant cela, Lambda ne supporte pas PHP. Je rechercherais probablement Microsoft Azure Functions qui prend en charge PHP et dispose d'un stockage persistant.

Bien que d'autres langages (tels que Go, Rust, Swift, etc.) puissent être "encapsulés" pour s'exécuter dans AWS Lambda avec une relative facilité, compiler PHP en ciblant la même plate-forme et l'exécuter est un peu différent (et certainement plus fastidieux). ). Pensez à tous les différents modules PHP dont vous auriez besoin pour commencer. De plus, je ne peux pas imaginer que les performances seront aussi bonnes que quelque chose comme un binaire Go.

Si vous pouvez faire quelque chose d'intelligent avec le framework Phalcon et mettre au point un processus simple de construction et de déploiement, alors maayyyybee.

Cependant, vous aurez probablement besoin de vraiment refondre quelque chose comme WordPress qui n'a pas été conçu pour cela du tout. Il utilise encore des conventions assez anciennes en raison de l’âge du projet et bien que ce soit très bien pour votre serveur PHP typique, il s’agit d’un jeu de balle différent dans le sens de ce "portable" PHP installation.

N'oubliez pas que les sessions PHP sont également utilisées, vous devrez donc les déplacer ailleurs, en raison du manque de persistance avec AWS Lambda. Vous pouvez probablement trouver une sorte de plugin pour WordPress qui fonctionne avec Redis ?? Je dois imaginer que quelque chose comme cela a été construit à ce jour ... Mais il y aura beaucoup de complications.

J'envisagerais sérieusement d'utiliser Azure Functions pour commencer par OR en utilisant Docker et de renoncer au modèle de tarification proposé par les fonctions de cloud. Vous pouvez toujours trouver un hébergement assez bon marché et évolutif.

Ce que je faisais auparavant était d'utiliser AWS ECS (Docker) avec EFS (stockage réseau) pour la persistance et RDS pour la base de données. Bien que cela ne comporte pas le même modèle de tarification que Lambda, il reste rentable. Vous pouvez configurer votre service ECS pour une mise à l'échelle automatique. Ainsi, vous utilisez le minimum nécessaire jusqu'à ce que vous ayez besoin de plus.

J'ai écrit un article plus détaillé à ce sujet ici: https://serifandsemaphore.io/how-to-Host-wordpress-like-a-boss-b5993fcfhoe#.n6fbnf8ii ... mais c'est fondamentalement juste l'idée d'exécuter WordPress dans Docker et d'utiliser EFS pour décharger les problèmes de stockage persistants. Vous pouvez échanger de nombreuses pièces du puzzle si vous le souhaitez. Utilisez une base de données hébergée dans un autre service Docker ou Compose ou ailleurs. Cette partie ne doit pas nécessairement être RDS par exemple. Même votre stockage pourrait être traité de manière différente, même si EFS fonctionnait plutôt bien! La seule chose importante à noter à propos d'EFS est la vitesse d'écriture. La plupart des sites WordPress sont lus lourds. Votre kilométrage variera en fonction de vos besoins.

8
Tom

C'est possible? Oui, tout est possible avec suffisamment de temps et d’efforts. Est-ce que ça vaut le coup? C’est une question qu'il vaut mieux vous poser.

PHP peut être utilisé sur Lambda selon la documentation située ici: https://aws.Amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-Ruby-and-go/

Le problème initial le plus important, comme indiqué dans d'autres commentaires, est un système de fichiers persistant. S3 pour le stockage multimédia est réalisable via le plugin Wordpress (encore une fois à partir des commentaires), mais tout autre stockage persistant pour l'exécution de la requête/du script constitue le principal obstacle initial. Abordez un problème à la fois jusqu'à la fin!

0
David J Eddy