首頁 >後端開發 >php教程 >為什麼我將Laravel應用程序遷移到AWS無服務器(以及為什麼它可以節省您的時間和金錢)

為什麼我將Laravel應用程序遷移到AWS無服務器(以及為什麼它可以節省您的時間和金錢)

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-28 12:04:15382瀏覽

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


> 擾流板警報:不僅僅是節省成本(儘管我的銀行帳戶對此表示讚賞!)。


想像一下:您製作了令人驚嘆的Laravel應用程序 - 您的傑作,這是一種充滿功能的多功能工具。 但是有一個障礙。 您每月為未充分利用的EC2實例付款,而縮放感覺就像是摔跤。

聽起來很熟悉嗎?它對我做了。

>

三年前,我採取了信仰的飛躍:我在AWS Lambda上部署了PHP。 反應? “無服務器上的php?異端!”

然而,三年後,我在這裡,一個convert依。讓我解釋一下為什麼無服務器的Laravel體系結構是您不知道您需要的雲升級。

>
  1. 傳統拉拉維爾託管

    的挑戰

(或:為什麼我的EC2實例遇到存在危機) 在無服務器之前,我的Laravel應用程序駐留在EC2上。對於初學者來說,EC2是亞馬遜的虛擬專用服務器產品。 直到現實命中之前,這似乎是理想的:

a)恆定成本

運行EC2實例就像擁有永久運行的汽車一樣。我的應用程序並不總是很忙,但是費用一直在積累。 在EC2實例,負載平衡器和存儲空間之間,我在一個閒置的系統上花費了約110美元。我的預算? 沒有逗樂。

我知道,這不是一筆財富,而是個人開發人員,每一美元都很重要。

b)縮放噩夢

EC2實例是不可預測的。 交通高潮?碰撞。 流量低?仍在燃燒錢。 管理自動化是一場不斷的鬥爭。
c)意外的DevOps責任

laravel開發意外地包括sysadmin任務:修補,在奇數時調試服務器配置 - 不是我理想的工作流程。

這是我探索無服務器的時候,該解決方案完美解決了這些問題。


aws無服務器:PHP的雲轉換


>讓我們澄清一下:無服務器並不意味著沒有服務器。 這意味著AWS處理服務器管理。我專注於編碼。
  1. a)lambda:點按需執行引擎

    aws lambda是事件驅動的計算服務。它對事件(HTTP請求等)執行代碼,並在完成後消失。

沒有空閒費用:

僅在執行時間付費。

輕鬆縮放: lambda自動縮放以處理流量尖峰。

  • 無狀態體系結構:每次執行的干淨板塊,促進模塊化設計。
  • b)託管服務:支持演員 >無服務器的託管服務套件:
  • >
      SQL數據庫的
    • >數據庫:
    • 存儲:
    • S3用於可擴展文件存儲。 消息隊列:
    • sqs用於異步任務處理。
    • c)解決PHP挑戰
    • PHP最初不是為無服務器設計的。 適應Laravel需要更改:

    >會議:遷移到外部數據庫(mysql,redis)。

      文件存儲:
    • >通過Laravel的存儲立面使用S3。
    • >隊列處理:
    • 將SQs用作隊列驅動程序。 >緩存:
    • >使用redis或dynamodb。
    • 啟動時間優化:
    • 最大程度地減少冷開始,從刪除不必要的依賴項開始。
    • > 配置管理:
    • 使用AWS Secrets Manager或參數商店進行安全配置。
    • >無服務器不僅要替換服務器;這是關於建築重新思考的。

    使用Serverless

    釋放Laravel的潛力

    >無服務器Laravel會交付嗎?絕對地。它解決了傳統的託管問題,同時提供更快,更可擴展和具有成本效益的解決方案。
    a)寒冷開始:管理期望
    冷啟動(lambda初始化新實例)是可以管理的:>
  1. >現實:
  2. 典型的冷啟動是〜3-5秒。

>

>解決方案:

對於大多數應用程序,簡短延遲是可以接受的,尤其是在高峰流量期間。

b)輕鬆縮放

    縮放是自動的。 病毒應用程序? Lambda無需干預即可處理激增。
  • c)節省成本:底線 我的EC2費用約為110美元/月。 我的lambda費用? 〜$ 34/月(減少70%!)。
  • 無服務器節省金錢並釋放了精神能量。

    >注意:我最初使用了mySQL實例。 未來的帖子將探索DynamoDB以進行進一步的成本優化。

    d)維護自由:解放

    無服務器消除服務器維護:

    >自動更新。
    • 簡化的配置。
    • 彈性容量。
    • 專注於功能,而不是消防。

      無服務器的Laravel適合您嗎?
    1. >

    2. 無服務器不適合每個應用程序。 其無狀態的性質需要建築調整。 考慮以下因素:

    a)無狀態:需要改編

    > Laravel的狀態操作需要適應:會話,文件,日誌,配置和隊列。

    b)供應商鎖定

    AWS服務是專有的。 遷移到其他平台需要努力。

    c)何時避免使用服務器

    避免使用服務器:Websocket,重型計算工作負載和應用程序很大程度上依賴持久服務器狀態。


    下一步是什麼?
    1. 無服務器Laravel提供了很大的優勢。 請繼續關注第2部分,詳細介紹實施步驟。
    您的想法

    您的想法:
    您最大的無服務器問題是什麼?在下面分享它們! 我將在第2部分中解決前三名

以上是為什麼我將Laravel應用程序遷移到AWS無服務器(以及為什麼它可以節省您的時間和金錢)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn