Cet article explore les avantages du déploiement d'une application Laravel sur AWS Server sans serveur, en le contrastant avec l'hébergement EC2 traditionnel. L'auteur partage leur expérience en migration d'une configuration EC2 à forte intensité de ressources vers une architecture de serveur rentable et évolutive.
spoiler : Il ne s'agit pas seulement d'économiser de l'argent - bien que mon portefeuille ne se plaint pas.
Imaginez ceci: vous avez construit une brillante application Laravel - votre chef-d'œuvre, un couteau à armée suisse numérique avec des fonctionnalités si utiles qu'ils pourraient couper du beurre ... ou des commentaires des utilisateurs. Mais il y a une prise. Chaque mois, vous payez pour une instance EC2 sous-utilisée. La mise à l'échelle ressemble à un bateau de croisière dans un ouragan.
Cela semble familier? Ça m'a fait.
Il y a trois ans, j'ai fait ce que la plupart des développeurs appelleraient fou: j'ai déployé PHP à AWS Lambda. «PHP? Sur Serverless? C'est comme mettre l'ananas sur la pizza! », Ont-ils dit.
Mais je suis ici, trois ans plus tard, en mangeant fièrement ma pizza d'ananas. Permettez-moi de vous dire pourquoi Laravel sur Serverless est la mise à niveau du cloud dont vous ne saviez pas que vous aviez besoin.
(ou: pourquoi mes instances EC2 avaient une crise existentielle)
Avant le serveur sans serveur, mon application Laravel résidait sur EC2. Pour les non-initiés, EC2 est la version d'Amazon d'un serveur privé virtuel, où vous louez une tranche d'une machine pour exécuter votre code. Ça a l'air génial, non? Jusqu'à ce que la réalité frappe plus fort qu'un voyou composer update
.
Exécuter une instance EC2, c'est comme posséder une Tesla, vous laissez en marche 24/7, juste au cas où vous voudriez conduire. Ma demande n'était pas toujours occupée, mais cela n'a pas arrêté le compteur. Entre les instances EC2, les équilibreurs de chargement et le stockage partagé, je dépensais environ 110 $ / mois sur une pile de serveurs qui a passé la plupart de son temps inactif. Mon portefeuille? Coulé comme le Titanic.
Je sais, ce n'est pas beaucoup dans le grand schéma des choses, mais en tant que développeur / entrepreneur en solo, chaque dollar compte.
Les instances EC2 sont comme cet ami qui réagit de manière excessive à tout.
La gestion de l'automate avait envie d'enseigner un poisson à jongler - possible, mais à quel prix? Ajuster manuellement les groupes de mise à l'échelle, configurer des équilibreurs de charge et prier que vous ne surprovisiez pas ressemblant à un deuxième emploi que je n'ai jamais postulé.
Personne ne m'a dit que le développement de Laravel est venu avec un côté des responsabilités sysadmin:
sudo
, en espérant qu'ils fonctionneraient cette fois. Je ne me suis pas inscrit à cette vie.
C'est à ce moment-là que j'ai commencé à explorer des alternatives, et sans serveur s'est démarqué comme la solution parfaite à ces maux de tête.
Clarifions un mythe: Serverless ne signifie pas «pas de serveurs». Cela signifie simplement que les serveurs sont le problème de quelqu'un d'autre. Dans ce cas, AWS gère le levage de lourds pendant que je me concentre sur ce que j'apprécie vraiment: le codage.
AWS Lambda est comme un super-héros qui ne se présente que lorsque vous en avez besoin. Il exécute votre code en réponse aux événements - requêtes HTTP, messages SQS, tâches planifiées, vous l'appelez. Et lorsque le travail est terminé, il disparaît plus rapidement que la pizza gratuite lors d'une rencontre de développeur.
Serverless n'est pas seulement Lambda - c'est un écosystème. AWS remplace votre infrastructure de bricolage par des services gérés qui "travaillent juste":
Je l'admets: PHP n'était pas né pour le serveur sans serveur. C'est comme demander à un poisson de gravir un arbre - il se plaindra, mais il finira par le faire. Laravel, traditionnellement dépendant du PHP-FPM, avait besoin de quelques ajustements pour prospérer dans le monde éphémère de Lambda:
Storage
. .env
Fichiers par AWS Secrets Manager ou Paramètre Store pour la gestion de la configuration centralisée et sécurisée. N'oubliez pas que Serverless ne consiste pas seulement à remplacer les serveurs par des fonctions lambda. Il s'agit de repenser votre architecture - ce que AWS gère les points de douleur opérationnels pendant que vous vous concentrez sur la construction.
Ainsi, Laravel sur Serverless tient-il réellement ses promesses?
Serverless n'est pas seulement un mot à la mode, c'est un changement transformateur. La beauté de Laravel sur le sans serveur réside dans sa capacité à résoudre les faiblesses de l'hébergement traditionnel tout en permettant des solutions plus rapides, plus évolutives et rentables. Mais la vraie magie se produit lorsque vous vous plongez sur la façon dont ces avantages se combinent. Décomposons-le.
Le froid démarre se produit lorsque Lambda initialise une nouvelle instance. Considérez-le comme PHP se réveillant d'une sieste. Les critiques les traitent comme l'apocalypse, mais ils sont gérables:
Pour la plupart des applications, les retards inférieurs à la 3 seconde pendant le faible trafic sont acceptables. La plupart des utilisateurs ne remarqueront pas un démarrage à froid, en particulier pendant les pointes de la circulation lorsque Lambda reste "au chaud".
La mise à l'échelle de l'hébergement traditionnel ressemble souvent à une bataille sans fin. Avec sans serveur, la mise à l'échelle devient sans effort: plus de réglages d'autoscalités ou de traverser les doigts pendant une augmentation soudaine de la circulation. AWS Lambda supprime la conjecture, mise à l'échelle horizontalement par défaut.
Voici un exemple:
Ce n'est pas seulement la commodité, c'est la tranquillité d'esprit. Alors que vous vous concentrez sur la célébration du succès de votre application, Lambda fait le gros du travail. Et la meilleure partie? Vous ne payez que pour le temps de calcul que vous utilisez, pas pour la capacité inactive dont vous pourriez avoir besoin "au cas où."
Serverless n'économise pas seulement de l'argent, c'est comme avoir un buffet à volonté où vous ne payez que pour ce que vous consommez.
**Resource** | **EC2 Cost** | **Lambda Cost** |
---|---|---|
Compute | .00 | .50 |
Networking (LB, API Gateway) | .40 | .30 |
Storage | .80 | .90 |
Database | .00 | .00 |
**TOTAL** | **0.20** | **~.70** |
En bref, sans serveur économise non seulement de l'argent, mais libère la bande passante mentale. Moins je gaspille les ressources que je me soucie de la surdivision, plus je peux me concentrer sur la construction de quelque chose d'incroyable.
À ce stade, j'utilisais toujours une instance MySQL comme moteur de base de données. Les messages futurs exploreront la migration vers DynamoDB pour réduire davantage les coûts.
SERVER M'a libéré des chaînes de la maintenance du serveur. Voici comment:
Serverless ne réduit pas seulement la maintenance, il élimine les distractions opérationnelles qui vous empêchent de coder.
Aussi révolutionnaire que Laravel sur Serverless, ce n'est pas une solution universelle. Pour certaines applications, la nature apatride et axée sur les événements de Serverless peut sembler être un rêve devenu réalité. Pour d'autres, cela pourrait avoir l'impression d'essayer d'adapter une cheville carrée dans un trou rond. Avant de sauter dans le train sans serveur, prenons du recul et évaluons si cela convient à votre projet.
Laravel aime les opérations qui préservent les informations entre les interactions, comme le stockage des fichiers localement et l'enregistrement des sessions au système de fichiers. Pour devenir sans serveur, vous devez changer:
.env
Variables vers AWS Secrets Manager ou Paramètre Store pour la gestion centralisée. Les services AWS sont magiques, mais ils sont également propriétaires:
Serverless n'est pas une solution miracle pour toutes les charges de travail. Évitez-le si:
Laravel sur Serverless a le potentiel de transformer la façon dont vous créez et déployez des applications, mais la vraie magie est dans l'implémentation. Prêt à faire le saut et à donner à votre application Laravel le traitement sans serveur? Restez à l'écoute pour la partie 2, où je vais vous guider à travers les étapes exactes pour donner vie à cette architecture.
Une question pour vous : Quelle est votre plus grande crainte à propos du serveur sans serveur? Partagez-le ci-dessous, et j'adresserai au top 3 de la partie 2!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!