


In diesem Artikel werden die Vorteile der Bereitstellung einer Laravel -Anwendung auf AWS Serverless untersucht und diese mit herkömmlichem EC2 -Hosting kontrastiert. Der Autor teilt seine Erfahrung mit, die von einer ressourcenintensiven EC2-Setup zu einer kostengünstigen und skalierbaren serverlosen Architektur migriert.
Spoiler : Es geht nicht nur darum, Geld zu sparen - obwohl sich meine Brieftasche nicht beschwert.
Stellen Sie sich vor, Sie haben eine brillante Laravel -Anwendung gebaut - Ihr Meisterwerk, ein digitales Schweizer Armeemesser mit Funktionen, die so nützlich sind, dass sie Butter ... oder Benutzer -Feedback schneiden können. Aber es gibt einen Haken. Jeden Monat zahlen Sie für eine nicht genutzte EC2 -Instanz. Skalierung fühlt sich wie ein Kreuzfahrtschiff in einem Hurrikan an.
sich vertraut klingen? Es hat mir angetan.
Vor drei Jahren habe ich das getan, was die meisten Entwickler als verrückt bezeichnen würden: Ich habe PHP zu AWS Lambda eingesetzt. „PHP? Auf serverlos? Das ist wie Ananas auf Pizza! “, Sagten sie.
Aber hier bin ich drei Jahre später stolz meine Ananas -Pizza. Lassen Sie mich Ihnen sagen, warum Laravel auf Serverless das Cloud -Upgrade ist, von dem Sie nicht wussten, dass Sie Sie benötigen.
-
Das traditionelle Laravel -Hosting -Problem
(oder: Warum meine EC2 -Instanzen eine existenzielle Krise hatten)
Vor serverlos wohnte meine Laravel -Anwendung auf EC2. Für die Uneingeweihten ist EC2 die Version eines virtuellen privaten Servers von Amazon, auf dem Sie eine Scheibe eines Computers mieten, um Ihren Code auszuführen. Klingt großartig, oder? Bis die Realität schwieriger ist als ein Schurken composer update
.
a) Erstens: Die Kosten der Existenz
Ausführen einer EC2 -Instanz ist wie der Besitz eines Tesla, den Sie rund um die Uhr laufen lassen, nur für den Fall, dass Sie fahren möchten. Meine Bewerbung war nicht immer beschäftigt, aber das hat das Messgerät nicht aufgehalten. Zwischen EC2 -Instanzen, Ladungsbalancern und dem gemeinsamen Speicher verbrachte ich rund 110 US -Dollar pro Monat für einen Serverstapel, der die meiste Zeit im Leerlauf verbrachte. Meine Brieftasche? Gesunken wie der Titanic.
Ich weiß, es ist nicht viel im großen Schema der Dinge, aber als Solo -Entwickler/Unternehmer zählt jeder Dollar.
b) Dann: Skalierung von Albträumen
EC2 -Instanzen sind wie der Freund, der alles überreagiert.
- Verkehrspike? "Ich stürze jetzt ab, danke!"
- kein Verkehr? "Ich werde immer noch dein Geld verbrennen!"
Das Management von Autoscaling fühlte sich an, als würde man einen Fisch zum Jonglieren beibringen - possibler, aber zu welchem Preis? Manuell Anpassung von Skalierungsgruppen, Konfigurieren von Lastbalancern und Beten, dass Sie nicht zu einer Überproduktion anfühlten, fühlte sich wie ein zweiter Job an, den ich nie beworben habe.
c) und schließlich: DevOps, der unbezahlte Praktikant
Niemand hat mir gesagt, dass Laravel Development mit einer Seite der Sysadmin -Verantwortlichkeiten kam:
- Sicherheits Patches anwenden.
- Debugging nginx/Apache -Konfigurationen bei 3 Uhr morgens
- süße Nothings zu
sudo
Befehle flüstern, in der Hoffnung, dass sie diesmal arbeiten würden.
Ich habe mich nicht für dieses Leben angemeldet.
, als ich anfing, Alternativen zu erkunden, und serverless war die perfekte Lösung für diese Kopfschmerzen.
-
aws serverless: Das Wiederaufleben von PHP in der Cloud
Lassen Sie uns einen Mythos klären: Serverlos bedeutet nicht "keine Server". Es bedeutet nur, dass die Server das Problem eines anderen sind. In diesem Fall kümmert sich AWS mit dem schweren Heben, während ich mich auf das konzentriere, was ich tatsächlich genieße: codieren.
a) lambda: der ereignisgesteuerte Zauberer
AWS Lambda ist wie ein Superheld, der nur auftaucht, wenn Sie sie brauchen. Es führt Ihren Code als Antwort auf Ereignisse aus - HTTP -Anforderungen, SQS -Nachrichten, geplante Aufgaben, Sie nennen es. Und wenn der Job erledigt ist, verschwindet es schneller als kostenlose Pizza bei einem Entwicklertreffen.
- Keine Leerlaufkosten : Sie zahlen nur für die Ausführungszeit (gemessen in Millisekunden).
- Automatische Skalierungsmagie : Haben Sie einen Anstieg von 100.000 Anfragen? Lambda behandelt es, ohne einen Schwitzen zu bringen (oder Ihr Bankkonto zu leeren).
- Staatellos nach Design : Es ist wie ein Neuanfang, ein Design, das Sie modular zum Nachdenken zwingt.
b) Managed Services: Die unbesungenen Helden
serverless ist nicht nur Lambda - es ist ein Ökosystem. AWS ersetzt Ihre DIY -Infrastruktur durch verwaltete Dienste, die "nur funktionieren":
- Datenbank : Optionen wie Aurora Serverless (MySQL/Postgres) für SQL -Liebhaber.
- s3 : Speichern Sie Ihre Dateien, ohne sich Sorgen zu machen, dass der Speicherplatz ausgeht.
- sqs : Entkassungsläufige Jobs und verarbeiten Sie sie asynchron.
c) Das PHP -Paradox
Ich gebe es zu: PHP war nicht für serverless
geboren . Es ist, als würde man einen Fisch bitten, auf einen Baum zu klettern - es wird sich beschweren, aber es wird es irgendwann tun. Laravel, traditionell auf PHP-FPM angewiesen, brauchte einige Anpassungen, um in Lambdas kurzfristiger Welt zu gedeihen:- Sitzungen : Verschieben Sie sie in eine externe Datenbank wie MySQL oder Redis.
- Dateispeicher : Alle Speichervorgänge mit Laravels
Storage
Fassade auf S3 umleiten. - Warteschlangenverwaltung : SQS als Standardtreiber für eine asynchrone Aufgabenausführung konfigurieren.
- Caching : Nutzen Sie externe Dienste wie Redis oder DynamoDB anstelle von lokalem Speicher.
- Boot -Zeitoptimierung : Die Kälte startet mit dem Trimmen des Fetts (nicht verwendete Abhängigkeiten).
- Umgebungsvariablen : Ersetzen Sie
.env
Dateien mit AWS Secrets Manager oder Parameterspeicher für eine zentrale und sichere Konfigurationsverwaltung.
Denken Sie daran, serverless geht es nicht nur darum, Server durch Lambda -Funktionen zu ersetzen. Es geht darum, Ihre Architektur zu überdenken - wenn Sie AWS mit den operativen Schmerzpunkten beziehen, während Sie sich auf das Aufbau konzentrieren.
-
Wie serverloser Laravels volles Potenzial
freischaltet
liefert Laravel on serverless tatsächlich seine Versprechen?
serverless ist nicht nur ein Schlagwort, sondern eine transformative Verschiebung. Die Schönheit von Laravel auf serverloser Ligeler liegt in seiner Fähigkeit, die Schwächen des traditionellen Hostings zu beheben und gleichzeitig schnellere, skalierbare und kostengünstigere Lösungen zu ermöglichen. Aber die wirkliche Magie geschieht, wenn Sie sich mit der Kombination dieser Vorteile befassen. Lassen Sie es uns aufschlüsseln.
a) Kälte beginnt: Mythos von Realität trennen
Erkältung beginnt, wenn Lambda eine neue Instanz initialisiert. Betrachten Sie es als PHP, das aus einem Nickerchen aufwacht. Kritiker behandeln sie wie die Apokalypse, aber sie sind überschaubar:
- Reality : Typische Kälte beginnt mit Php Laravel sind ca. ~ 3-5 Sekunden.
-
Lösungen
- :
- Laravel Octane : Halten Sie die Anwendung zwischen Anfragen am Leben und reduzieren die Startzeiten. Nachfolgende Anforderungen werden in ~ 200 ms oder weniger verarbeitet.
- Vorbereitete Parallelität : AWS-Vorwarde-Instanzen für kritische Endpunkte (kostet extra, aber für wichtige Endpunkte lohnt sich) .
Für die meisten Anwendungen sind Verzögerungen bei Sub-3-Sekunden bei geringem Verkehr akzeptabel. Die meisten Benutzer bemerken keinen kalten Start, besonders bei Verkehrsspitzen, wenn Lambda "warm bleibt".
b) schmerzloser Skalierung
Skalierung im traditionellen Hosting fühlt sich oft wie ein unendlicher Kampf an. Mit serverloser wird die Skalierung mühelos: Keine Optimierungen mehr Autoscaling -Regeln oder Überqueren der Finger während eines plötzlichen Verkehrsaufzeigs. AWS Lambda entfernt die Vermutung und skaliert standardmäßig horizontal.
Hier ist ein Beispiel:
- Szenario : Ihre Anwendung wird viral? yay!
- Altes EC2 -Setup : Sie erleben eine Latenz, eilen, um sich in AWS anzumelden, die Anzahl der Instanzen manuell anzupassen und für das Beste zu beten? Oh, und vergessen Sie nicht, diese Instanzen über Verfügbarkeitszonen hinweg ordnungsgemäß auszugleichen.
- Neues Lambda -Setup : AWS erstellt automatisch so viele Instanzen wie nötig und bearbeitet Tausende von gleichzeitigen Anfragen, ohne dass Sie einen Finger anheben. Sie schnappen sich Popcorn und sehen sich CloudWatch -Metriken wie eine Netflix -Serie an?
Das ist nicht nur Bequemlichkeit, sondern auch die Beruhigung. Während Sie sich darauf konzentrieren, den Erfolg Ihrer Anwendung zu feiern, macht Lambda das schwere Heben. Und das Beste daran? Sie zahlen nur für die Rechenzeit, die Sie verwenden, nicht für die Leerlaufkapazität, die Sie möglicherweise benötigen. "
c) Kosteneffizienz: MVPserverless spart nicht nur Geld, sondern auch ein All-you-can-eat-Buffet, in dem Sie nur für das bezahlen, was Sie konsumieren.
- mein altes EC2 -Setup:
- ~ $ 110 /Monat.
- 4x T3.Small EC2 -Instanzen:
- $ 60.00 1x Lastausgleich:
- $ 16.40 1x EBS (gemeinsamer Speicher zwischen EC2 -Instanzen):
- $ 7.80 1x RDS MySQL Instance (db.t4g.medium):
- ~ $ 26.00
lambda: - ~ $ 34 /monat (ein 60% -Ersparnis!) .
- lambda, API -Gateway ~ 2,5 m Anforderungen (~ 500 ms / 512MB Speicher) / Monat:
- $ 4,80 verwaltete Dienste (S3, SQS, CloudWatch):
- ~ $ 2,90 rds mySQL Instance (db.t4g.medium):
- ~ $ 26.00
Kurz gesagt, serverlos spart nicht nur Geld, sondern die mentale Bandbreite frei. Je weniger Ressourcen ich damit verschwende, mir Sorgen um die Überproduktion zu machen, desto mehr kann ich mich darauf konzentrieren, etwas Erstaunliches zu bauen.
Zu diesem Zeitpunkt habe ich immer noch eine MySQL -Instanz als meine Datenbank -Engine verwendet. Zukünftige Beiträge werden die Migration zu DynamoDB untersuchen, um die Kosten weiter zu senken.
d) Wartungsfreiheit: Verabschieden Sie sich von operativen Albträumen
serverlos befreit mich von den Fesseln der Serverwartung. So wie:
- Keine manuellen Updates mehr : AWS verarbeitet Sicherheitspatches, Betriebssystem-Updates und Laufzeitverbesserungen, was bedeutet, dass Sie immer auf sicheren und aktuellen Infrastrukturen ausführen.
- vereinfachte Konfigurationen : Mit Diensten wie API Gateway und S3 gehört die Komplexität der Verwaltung von Nginx -Konfigurationen und benutzerdefinierten Bereitstellungen der Vergangenheit an.
- elastische Kapazität : Vergessen Sie die Überzahlung für nicht verwendete Serverressourcen oder das Streben, mehr während der Verkehrsspikes vorzubereiten. Lambda skaliert automatisch, um die Nachfrage zu befriedigen, und stoppt die Abrechnung im Leerlauf.
- Fokus auf Funktionen, nicht auf Feuerwehr : Die Zeit, die ich zuvor für die Anwendung von Patches oder Debugging -Produktionsproblemen verbracht habe, wird jetzt in das Erstellen von Funktionen und die Verbesserung der Benutzererfahrung investiert.
serverless reduziert nicht nur die Wartung, sondern beseitigt die operativen Ablenkungen, die Sie vom Codieren abhalten.
-
Aber ist Laravel serverlos für alle?
So revolutionär wie Laravel auf Serverless ist, es ist keine universelle Lösung. Für einige Anwendungen scheint die staatenlose und ereignisorientierte Natur von Serverless ein wahr gewordener Traum zu sein. Für andere könnte es sich anfühlen, als würde man versuchen, einen quadratischen Stift in ein rundes Loch zu stecken. Bevor Sie auf den serverlosen Zug springen, treten wir zurück und beurteilen Sie, ob es für Ihr Projekt richtig ist.
a) Die zustandslose Natur: Ein zweischneidiges Schwert
Laravel liebt Vorgänge, die Informationen zwischen Interaktionen beibehalten, z. B. das Speichern von Dateien lokal und speichern Sitzungen im Dateisystem. Um serverlos zu gehen, müssen Sie sich ändern:
- Sitzungen : Verwenden Sie Datenbanken (MySQL/Postgres) oder Redis; Keine Abhängigkeit des Dateisystems mehr.
- Dateien : Datei-Uploads auf S3 umleiten oder Laravel insgesamt vermeiden und S3 vorgewiesene URLs verwenden.
- Protokolle : Konfigurieren Sie Laravel, um sie auf CloudWatch zu streamen.
-
Konfiguration
.env
: Verschieben Variablen in AWS Secrets Manager oder Parameterspeicher für die zentralisierte Verwaltung. - Warteschlangen : Migrieren Sie Jobs in AWS SQS für skalierbare Warteschlangen und Nachrichtenhandhabung.
b) Überlegungen zur Verkäufersperrung
AWS -Dienste sind magisch, aber sie sind auch proprietär:
- Möchten Sie von SQS zu Roten Warteschlangen migrieren? Bereiten Sie sich darauf vor, Code neu zu schreiben.
- Möchten Sie von Lambda nach Docker wechseln? Nimm einen Kaffee: Es wird eine lange Nacht.
c) Wenn nicht serverloser
auswähltserverless ist keine Silberkugel für alle Workloads. Vermeiden Sie es, wenn:
- Sie benötigen WebSockets : Während Dienste wie API Gateway WebSocket-APIs oder Tools von Drittanbietern wie geschickt erreichbar sind, fügt es Komplexität hinzu.
- Ihre Anwendung hat schwere Berechnung ladet : Aufgaben wie AI/ML-Inferenz oder Videocodierung können auf Lambdas 15-minütiger Zeitlimit auftreten.
- Sie sind auf Stateful Services : Anwendungen an, die annehmen
- Was kommt als nächstes?
Eine Frage für Sie : Was ist Ihre größte Angst vor Serverless? Teile es unten und ich werde die Top 3 in Teil 2 ansprechen!
Das obige ist der detaillierte Inhalt vonWarum ich meine Laravel -Anwendung auf AWS Serverless migrierte (und warum ich Ihnen Zeit und Geld sparen könnte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PhpidentifiesAsersSSessionUsingSSessionCookiesAndSessionIDs.1) WHANE Session_Start () iscalled, phpGeneratesAuniqueSessionIDStoredInacookienMamePhpSsidontonTheusers.2) thisidallowStoretrieVessionDataFromtheServer.

Die Sicherheit von PHP -Sitzungen kann durch folgende Maßnahmen erreicht werden: 1. Verwenden Sie Session_regenerate_id (), um die Sitzungs -ID zu regenerieren, wenn sich der Benutzer anmeldet oder eine wichtige Operation ist. 2. Verschlüsseln Sie die Übertragungssitz -ID durch das HTTPS -Protokoll. A. Verwenden Sie Session_save_path (), um das sichere Verzeichnis anzugeben, um Sitzungsdaten zu speichern und Berechtigungen korrekt festzulegen.

PhpSessionFilesArestoredinTHedRectorySpecifiedBySession.save_path, typischerweise/tmponunix-likesystemsorc: \ windows \ temponwindows

ToretriedatafromaphpSession, startThesessionwithSession_start () und AccessvariableSthe $ _SessionArray.Fexample: 1) StartTheSession: session_start (). 2) Abgerufen: $ username = $ _ Session ['username'];

Zu den Schritten zum Erstellen eines effizienten Einkaufswagensystems mithilfe von Sitzungen gehören: 1) Verstehen Sie die Definition und Funktion der Sitzung. Die Sitzung ist ein serverseitiger Speichermechanismus, der verwendet wird, um den Benutzerstatus über Anforderungen hinweg aufrechtzuerhalten. 2) Implementieren Sie das grundlegende Sitzungsmanagement, z. B. das Hinzufügen von Produkten in den Einkaufswagen; 3) auf die fortschrittliche Nutzung ausdehnen und das Produktmengenmanagement und die Löschung der Produktmenge unterstützen; 4) Optimieren Sie Leistung und Sicherheit, indem Sie Sitzungsdaten fortsetzen und sichere Sitzungskennungen verwenden.

Der Artikel erläutert, wie Schnittstellen in PHP erstellt, implementiert und verwendet werden und sich auf ihre Vorteile für die Organisation von Code und die Wartbarkeit konzentriert.

In dem Artikel werden die Unterschiede zwischen CryPT () und Passage_hash () in PHP für Passwort -Hashing erörtert und sich auf ihre Implementierung, Sicherheit und Eignung für moderne Webanwendungen konzentriert.

In Artikel werden in PHP durch Eingabevalidierung, Ausgabecodierung und Verwendung von Tools wie OWASP ESAPI und HTML-Reinigungsmittel die Verhinderung des Cross-Site-Skripts (XSS) erläutert.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.
