recherche
Maisondéveloppement back-endtutoriel phpPourquoi j'ai migré mon application Laravel vers AWS Serverless (et pourquoi je pourrais vous faire économiser du temps et de l'argent)

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.


Por qué Migré Mi Aplicación Laravel a AWS Serverless (Y Por Qué Podría Ahorrarte Tiempo y Dinero)


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.


  1. Le problème traditionnel d'hébergement de Laravel

(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.

a) Premièrement: le coût de l'existence

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.

b) Ensuite: mise à l'échelle des cauchemars

Les instances EC2 sont comme cet ami qui réagit de manière excessive à tout.

  • Spike de trafic? "Je m'écrase maintenant, merci!"
  • pas de trafic? "Je vais toujours brûler votre argent!"

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é.

c) Et enfin: DevOps, le stagiaire impayé

Personne ne m'a dit que le développement de Laravel est venu avec un côté des responsabilités sysadmin:

  • appliquer des correctifs de sécurité.
  • Débogage des configurations Nginx / Apache à 3 heures.
  • chuchotant des notants doux aux commandes 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.


  1. AWS Server sans: la résurgence de PHP dans le cloud

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.

a) Lambda: le sorcier motivé en événement

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.

  • pas de coûts de ralenti : Vous ne payez que pour le temps d'exécution (mesuré en millisecondes).
  • Magic de mise à l'échelle automatique : Vous avez un pic de 100 000 demandes? Lambda le gère sans transpirer (ou vider votre compte bancaire).
  • sans état par conception : C'est comme un nouveau départ à chaque fois, un design qui vous oblige à penser modulaire.

b) Services gérés: les héros méconnus

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":

  • Base de données : Options comme Aurora Serverless (MySQL / Postgres) pour les amateurs de SQL.
  • S3 : Stockez vos fichiers sans vous soucier de manquer d'espace disque.
  • sqs : Découplez les travaux de longue durée et traitez-les de manière asynchrone.

c) Le paradoxe PHP

Je l'admets: PHP n'était pas 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:

  • Sessions : Déplacez-les vers une base de données externe comme MySQL ou Redis.
  • Stockage de fichiers : Redirigez toutes les opérations de stockage vers S3, en utilisant la façade de Laravel Storage.
  • Gestion des files d'attente : Configurez SQS comme pilote par défaut pour l'exécution de la tâche asynchrone.
  • CACHING : Tirez parti des services externes comme Redis ou DynamoDB au lieu du stockage local.
  • Optimisation du temps de démarrage : minimiser le froid commence par couper la graisse (dépendances inutilisées).
  • Variables d'environnement : Remplacez .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.


  1. comment le serveur déverrouille le plein potentiel de Laravel

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.

a) Démarrage du froid: séparer le mythe de la réalité

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:

  • réalité : Le froid typique commence par PHP Laravel est d'environ ~ 3-5 secondes.
  • Solutions :
    • Laravel Octane : maintient l'application en vie entre les demandes, en réduisant les temps de démarrage. Les demandes ultérieures sont traitées dans ~ 200 ms ou moins.
    • Concurrence provisoire : AWS pré-téléchaume pour les points de terminaison critiques (coûte supplémentaire, mais valable pour les points de terminaison clés) .

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".

b) Échelle indolore

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:

  • Scénario : Votre application devient virale? yay!
  • Old EC2 Configuration : Vous commencez à ressentir la latence, vous précipitez pour vous connecter à AWS, ajustez manuellement le nombre d'instances et priez pour le meilleur ?. Oh, et n'oubliez pas d'équilibrer correctement ces instances sur les zones de disponibilité.
  • Nouvelle configuration de lambda : AWS crée automatiquement autant d'instances que nécessaire, en manipulant des milliers de demandes simultanées sans que vous leviez un doigt. Vous prenez du pop-corn et regardez des métriques CloudWatch comme une série Netflix ?.

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ù."

c) CONTACK-CONCICATION: le MVP

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.

  • mon ancienne configuration EC2: ~ 110 $ / mois.
    • 4x T3.Small EC2 Instances: 60,00 $
    • 1x équilibreur de charge: 16,40 $
    • 1x EBS (stockage partagé entre les instances EC2): 7,80 $
    • 1x instance MySQL RDS (db.t4g.medium): ~ 26,00 $
  • lambda: ~ 34 $ / mois (une économie de 60%!) .
    • lambda, passerelle API ~ demandes de 2,5 m (~ 500 ms / 512 Mo de mémoire) / mois: 4,80 $
    • Services gérés (S3, SQS, CloudWatch): ~ 2,90 $
    • RDS MySQL Instance (db.t4g.medium): ~ 26,00 $
**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.

d) Liberté de maintenance: Dites adieu aux cauchemars opérationnels

SERVER M'a libéré des chaînes de la maintenance du serveur. Voici comment:

  • Plus de mises à jour manuelles : AWS gère les correctifs de sécurité, les mises à jour du système d'exploitation et les améliorations d'exécution, ce qui signifie que vous utilisez toujours des infrastructures sécurisées et à jour.
  • Configurations simplifiées : Avec des services comme la passerelle API et S3, la complexité de la gestion des configurations Nginx et des déploiements personnalisés devient une chose du passé.
  • Capacité élastique : Oubliez le débit supplémentaire pour les ressources du serveur inutilisées ou la brouillage pour provisionner davantage pendant les pointes de trafic. Lambda évolue automatiquement pour répondre à la demande et arrête la facturation lorsque le ralenti.
  • Focus sur les fonctionnalités, pas la lutte contre les incendies : Le temps que j'ai passé auparavant à appliquer des correctifs ou à déboguer les problèmes de production est désormais investi dans la création de fonctionnalités et l'amélioration de l'expérience utilisateur.

Serverless ne réduit pas seulement la maintenance, il élimine les distractions opérationnelles qui vous empêchent de coder.


  1. mais Laravel est-il sans serveur pour tout le monde?

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.

a) La nature apatride: une épée à double tranchant

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:

  • Sessions : Utilisez des bases de données (MySQL / Postgres) ou Redis; Plus de dépendance du système de fichiers.
  • fichiers : rediriger les téléchargements de fichiers vers S3, ou éviter complètement Laravel et utiliser les URL pré-signées S3.
  • Journaux : Configurez Laravel pour les diffuser sur CloudWatch.
  • Configuration : Déplacer .env Variables vers AWS Secrets Manager ou Paramètre Store pour la gestion centralisée.
  • files d'attente : migrer les travaux vers AWS SQS pour la manipulation de file d'attente et de messages évolutifs.

b) Considérations de verrouillage des fournisseurs

Les services AWS sont magiques, mais ils sont également propriétaires:

  • Vous voulez migrer de SQS vers Redis files d'attente? Préparez-vous à réécrire le code.
  • Vous voulez passer de Lambda à Docker? Prenez un café: ce sera une longue nuit.

c) Quand ne pas choisir de serveur sans serveur

Serverless n'est pas une solution miracle pour toutes les charges de travail. Évitez-le si:

  • Vous avez besoin de WebSockets : Bien que réalisable avec des services comme API Gateway WebSocket API ou outils tiers comme habilement, il ajoute de la complexité.
  • Votre application a des charges de calcul lourdes : des tâches comme l'inférence AI / ML ou le codage vidéo peuvent toucher le délai de 15 minutes de Lambda.
  • Vous comptez sur Services avec état : Les applications qui supposent un disque ou un état de serveur persistant peuvent être coûteux à refactor.

  1. Quelle est la prochaine étape?

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
PHP vs Python: comprendre les différencesPHP vs Python: comprendre les différencesApr 11, 2025 am 12:15 AM

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

PHP: Est-il en train de mourir ou est-ce simplement de s'adapter?PHP: Est-il en train de mourir ou est-ce simplement de s'adapter?Apr 11, 2025 am 12:13 AM

Le PHP n'est pas en train de mourir, mais d'adapter et d'évoluer constamment. 1) PHP a subi plusieurs itérations de version depuis 1994 pour s'adapter aux nouvelles tendances technologiques. 2) Il est actuellement largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et d'autres domaines. 3) PHP8 introduit le compilateur JIT et d'autres fonctions pour améliorer les performances et la modernisation. 4) Utilisez OPCACHE et suivez les normes PSR-12 pour optimiser les performances et la qualité du code.

L'avenir de PHP: adaptations et innovationsL'avenir de PHP: adaptations et innovationsApr 11, 2025 am 12:01 AM

L'avenir de PHP sera réalisé en s'adaptant aux nouvelles tendances technologiques et en introduisant des fonctionnalités innovantes: 1) s'adapter aux architectures de cloud computing, de conteneurisation et de microservice, en prenant en charge Docker et Kubernetes; 2) introduire des compilateurs JIT et des types d'énumération pour améliorer l'efficacité des performances et du traitement des données; 3) Optimiser en continu les performances et promouvoir les meilleures pratiques.

Quand utiliseriez-vous un trait par rapport à une classe ou une interface abstraite dans PHP?Quand utiliseriez-vous un trait par rapport à une classe ou une interface abstraite dans PHP?Apr 10, 2025 am 09:39 AM

En PHP, le trait convient aux situations où la réutilisation de la méthode est requise mais ne convient pas à l'héritage. 1) Le trait permet aux méthodes de multiplexage des classes pour éviter une complexité de succession multiple. 2) Lorsque vous utilisez un trait, vous devez faire attention aux conflits de méthode, qui peuvent être résolus par l'alternative et comme mots clés. 3) La surutilisation du trait doit être évitée et sa responsabilité unique doit être maintenue pour optimiser les performances et améliorer la maintenabilité du code.

Qu'est-ce qu'un conteneur d'injection de dépendance (DIC) et pourquoi en utiliser un en PHP?Qu'est-ce qu'un conteneur d'injection de dépendance (DIC) et pourquoi en utiliser un en PHP?Apr 10, 2025 am 09:38 AM

Le conteneur d'injection de dépendance (DIC) est un outil qui gère et fournit des dépendances d'objets à utiliser dans les projets PHP. Les principaux avantages du DIC comprennent: 1. Le découplage, rendre les composants indépendants, et le code est facile à entretenir et à tester; 2. Flexibilité, facile à remplacer ou à modifier les dépendances; 3. Testabilité, pratique pour injecter des objets simulés pour les tests unitaires.

Expliquez le SPL SPLFixedArray et ses caractéristiques de performance par rapport aux tableaux PHP ordinaires.Expliquez le SPL SPLFixedArray et ses caractéristiques de performance par rapport aux tableaux PHP ordinaires.Apr 10, 2025 am 09:37 AM

SPLFixedArray est un tableau de taille fixe en PHP, adapté aux scénarios où des performances élevées et une faible utilisation de la mémoire sont nécessaires. 1) Il doit spécifier la taille lors de la création pour éviter les frais généraux causés par un ajustement dynamique. 2) Sur la base du tableau de langue C, fonctionne directement de la mémoire et de la vitesse d'accès rapide. 3) Convient pour le traitement des données à grande échelle et les environnements sensibles à la mémoire, mais il doit être utilisé avec prudence car sa taille est fixe.

Comment PHP gère-t-il les téléchargements de fichiers en toute sécurité?Comment PHP gère-t-il les téléchargements de fichiers en toute sécurité?Apr 10, 2025 am 09:37 AM

PHP gère les téléchargements de fichiers via la variable de fichiers $ \ _. Les méthodes pour garantir la sécurité incluent: 1. Vérifiez les erreurs de téléchargement, 2. Vérifiez le type et la taille du fichier, 3. Empêchez l'écrasement des fichiers, 4. Déplacez les fichiers vers un emplacement de stockage permanent.

Qu'est-ce que l'opérateur de coalescence nul (??) et l'opérateur de mission nuls de fusion (?? =)?Qu'est-ce que l'opérateur de coalescence nul (??) et l'opérateur de mission nuls de fusion (?? =)?Apr 10, 2025 am 09:33 AM

Dans JavaScript, vous pouvez utiliser nullcoalescingoperator (??) et nullcoalescingAssIgnmentOperator (?? =). 1.? 2.?? Ces opérateurs simplifient la logique du code, améliorent la lisibilité et les performances.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP