Rumah >pembangunan bahagian belakang >tutorial php >Mengapa saya memindahkan aplikasi Laravel saya ke AWS tanpa pelayan (dan mengapa ia dapat menjimatkan masa dan wang anda)

Mengapa saya memindahkan aplikasi Laravel saya ke AWS tanpa pelayan (dan mengapa ia dapat menjimatkan masa dan wang anda)

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-28 12:04:15414semak imbas

Why I Migrated My Laravel App to AWS Serverless (And Why It Could Save You Time and Money)


Makluman Spoiler: Bukan hanya mengenai penjimatan kos (walaupun akaun bank saya menghargainya!).


Bayangkan ini: Anda telah membuat aplikasi Laravel yang menakjubkan - karya anda, alat serba boleh yang penuh dengan ciri -ciri. Tetapi ada snag. Anda membayar bulanan untuk contoh EC2 yang kurang dimanfaatkan, dan skala terasa seperti gusti gurita.

bunyi biasa? Ia berlaku kepada saya.

Tiga tahun yang lalu, saya mengambil lompatan iman: Saya menggunakan PHP pada AWS Lambda. Reaksi? "PHP di Serverless? Heresy!"

Namun, di sini saya, tiga tahun kemudian, seorang penukar. Biar saya jelaskan mengapa seni bina Laravel tanpa pelayan adalah peningkatan awan yang anda tidak pernah tahu yang anda perlukan.


  1. Cabaran hosting Laravel tradisional

(atau: Kenapa contoh EC2 saya mengalami krisis eksistensi)

Sebelum tanpa pelayan, aplikasi Laravel saya tinggal di EC2. Untuk yang tidak dikenali, EC2 adalah tawaran pelayan peribadi maya Amazon. Ia kelihatan sesuai sehingga realiti melanda:

a) Kos berterusan

menjalankan contoh EC2 adalah seperti memiliki kereta yang terus berjalan. Aplikasi saya tidak selalu sibuk, tetapi kosnya terus terkumpul. Antara contoh EC2, pengimbang beban, dan penyimpanan, saya membelanjakan kira -kira $ 110/bulan pada sistem yang sebahagian besarnya terbiar. Belanjawan saya? Tidak geli.

Saya tahu, itu bukan kekayaan, tetapi untuk pemaju solo, setiap dolar.

b) Skala mimpi buruk

contoh EC2 tidak dapat diramalkan. Lonjakan lalu lintas? Kemalangan. Lalu lintas yang rendah? Masih membakar wang. Menguruskan autoscaling adalah perjuangan yang berterusan.

c) Tanggungjawab DevOps yang tidak dijangka

Pembangunan Laravel secara tidak disangka -sangka termasuk tugas sysadmin: menambal, debugging konfigurasi pelayan pada waktu ganjil -bukan aliran kerja ideal saya.

Itulah ketika saya meneroka tanpa pelayan, penyelesaian yang menangani isu -isu ini dengan sempurna.

AWS Serverless: Transformasi Awan PHP
  1. mari penjelasan: tanpa pelayan tidak bermaksud tidak ada pelayan. Ini bermakna AWS mengendalikan pengurusan pelayan. Saya fokus pada pengekodan.

  2. a) lambda: Enjin pelaksanaan atas permintaan

AWS Lambda adalah perkhidmatan pengiraan yang didorong oleh peristiwa. Ia melaksanakan kod sebagai tindak balas kepada peristiwa (permintaan HTTP, dll) dan hilang apabila selesai.

tiada kos terbiar:

bayar hanya untuk masa pelaksanaan.
  • skala yang mudah: lambda secara automatik skala untuk mengendalikan pancang lalu lintas.
  • Arkitek Stateless: Slate bersih untuk setiap pelaksanaan, mempromosikan reka bentuk modular.
  • b) Perkhidmatan Terurus: Pelakon Sokongan Leverless Leverage Suite perkhidmatan yang diuruskan:
    • pangkalan data: Aurora Serverless (MySQL/Postgres) untuk pangkalan data SQL.
    • Penyimpanan: S3 untuk penyimpanan fail berskala.
    • giliran mesej: sqs untuk pemprosesan tugas asynchronous.

    c) Menangani cabaran PHP

    PHP tidak dirancang pada mulanya tanpa pelayan. Mengadaptasi Laravel Perubahan yang Diperlukan:

    • sesi: berhijrah ke pangkalan data luaran (mysql, redis).
    • Penyimpanan Fail: Gunakan S3 melalui Fasad Penyimpanan Laravel.
    • Pengendalian barisan: Gunakan SQS sebagai pemandu barisan.
    • caching: menggunakan redis atau dynamoDB.
    • Pengoptimuman Masa Boot: Kini permulaan sejuk dengan mengeluarkan kebergantungan yang tidak perlu.
    • Pengurusan Konfigurasi: Gunakan Pengurus Rahsia AWS atau kedai parameter untuk konfigurasi selamat.

    Serverless bukan sekadar menggantikan pelayan; Ini mengenai pemikiran semula seni bina.


  1. melepaskan potensi Laravel dengan pelayan

Adakah pelayan Laravel tanpa pelayan menyampaikan? Sudah tentu. Ia menyelesaikan masalah hosting tradisional sambil menawarkan penyelesaian yang lebih cepat, lebih berskala, dan kos efektif.

a) Permulaan sejuk: Menguruskan jangkaan

permulaan sejuk (lambda memulakan contoh baru) boleh diurus:

  • realiti: permulaan sejuk biasa adalah ~ 3-5 saat.
  • Penyelesaian: Laravel Octane (menyimpan aplikasi hidup), disediakan konkurensi (contoh pra-hangat).

Untuk kebanyakan aplikasi, kelewatan ringkas boleh diterima, terutamanya semasa trafik puncak.

b) Penggredan mudah

Skala adalah automatik. Aplikasi virus? Lambda mengendalikan lonjakan tanpa campur tangan.

c) penjimatan kos: garis bawah

kos EC2 saya ialah ~ $ 110/bulan. Kos lambda saya? ~ $ 34/bulan (pengurangan 70%!).

**Resource** **EC2 Cost** **Lambda Cost**
Compute .00 .50
Networking (LB, API Gateway) .40 .30
Storage .80 .90
Database .00 .00
**TOTAL** **0.20** **~.70**

Serverless menjimatkan wang dan membebaskan tenaga mental.

NOTA: Saya pada mulanya menggunakan contoh MySQL. Catatan masa depan akan meneroka DynamoDB untuk pengoptimuman kos selanjutnya.

d) Kebebasan Penyelenggaraan: Pembebasan

Serverless menghapuskan penyelenggaraan pelayan:

  • kemas kini automatik.
  • konfigurasi mudah. ​​
  • Kapasiti elastik.
  • Fokus pada ciri, bukan pemadam kebakaran.

  1. Adakah Laravel tanpa pelayan untuk anda?

Serverless bukan untuk setiap aplikasi. Sifat tanpa kerakyatannya memerlukan pelarasan seni bina. Pertimbangkan faktor -faktor ini:

a) Ketidaktentuan: Adaptasi Diperlukan

Operasi Stateful Laravel memerlukan penyesuaian: Sesi, Fail, Log, Konfigurasi, dan Baris.

b) Lock-in vendor

Perkhidmatan AWS adalah proprietari. Migrasi ke platform lain memerlukan usaha.

c) Bila hendak mengelakkan pelayan

Elakkan tanpa pelayan untuk: websockets, beban kerja pengiraan berat, dan aplikasi bergantung pada keadaan pelayan yang berterusan.


  1. Apa yang seterusnya?

Serverless Laravel menawarkan kelebihan yang ketara. Tinggal untuk Bahagian 2, memperincikan langkah -langkah pelaksanaan.


Fikiran anda: Apakah kebimbangan tanpa pelayan terbesar anda? Kongsi mereka di bawah! Saya akan menangani tiga teratas dalam bahagian 2.

Atas ialah kandungan terperinci Mengapa saya memindahkan aplikasi Laravel saya ke AWS tanpa pelayan (dan mengapa ia dapat menjimatkan masa dan wang anda). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn