跳到主內容

【AWS】Day 8:運算服務 - AWS Lambda(Serverless 運算服務)

 

從前幾篇我們一路看了 EC2(自己管主機)、Elastic Beanstalk(半自動化部署)。

但如果你希望:

  • 完全不用開伺服器

  • 完全不用自己處理機器、網路、Scaling

  • 只要專心「寫功能」就好

那 AWS Lambda 正是為了這樣的世界而生的!

今天正式進入 AWS Serverless 世界 —— Lambda


什麼是 AWS Lambda?

AWS Lambda 是一個「事件驅動」的計算服務。

你只需要撰寫小段的程式碼 Function,告訴 AWS:

  • 什麼時候要執行(例如 API 呼叫、排程時間、檔案上傳)

  • 要執行什麼邏輯(你的程式碼)

  • 設定好記憶體、超時時間

剩下的:

  • 執行環境(OS、Patch、Security)

  • 擴展(Scaling up & down)

  • 負載均衡

  • 日誌收集

  • 資源回收

全部 AWS 幫你自動處理。

你只要負責寫功能,其他都不用煩惱!


Lambda 的基本特性

項目 說明
運算單位 Function(函數)
部署方式 上傳程式碼(ZIP)或直接在 Console 編輯
支援語言 Node.js, Python, Java, Go, .NET, Ruby…
記憶體設定 128MB ~ 10GB(每64MB為單位)
執行時間限制 最長 15 分鐘
價格模式 依執行次數 + 記憶體用量 + 執行時間計價
自動擴展 是(幾乎無上限,橫向自動擴展)

Lambda 的典型使用情境

  • API Gateway ➔ Lambda ➔ 回應 Web API

  • S3 上傳檔案 ➔ Lambda 處理轉檔(圖片縮圖、影片轉檔)

  • DynamoDB 資料異動 ➔ Lambda 處理後續邏輯

  • 排程任務(類似 crontab) ➔ 用 EventBridge 觸發 Lambda

  • 輕量型後端服務(例如 Form submit、小型 Game Server)


Lambda 的基本運作流程

以「API Server」為例:

  1. 使用 API Gateway 建立 API Endpoint

  2. 當使用者呼叫 API 時,API Gateway 觸發 Lambda

  3. Lambda 執行你的程式邏輯(例如查資料庫、處理資料)

  4. Lambda 執行完畢,把結果回傳給 API Gateway,再傳給使用者

整個過程中:

  • 沒有 EC2

  • 沒有 Load Balancer

  • 沒有固定伺服器

  • 自動擴展,不需要自己設定台數


Lambda 的計費方式

Lambda 的收費方式非常彈性,也很適合小量或突發性使用的場景。

計費公式:

總費用 = 呼叫次數 +(記憶體用量 × 執行時間)

詳細來說:

  • 每個月前 1M 次請求免費

  • 每個月 400,000 GB-seconds 免費

  • 超出後,依照實際用量超便宜的單位收費

簡單說就是:

  • 程式小、執行快,超便宜

  • 不執行,不收費(真正的 pay-as-you-go)


Lambda 的限制與注意事項

雖然 Lambda 很香,但也有一些天然限制要注意:

限制項目 說明
最大執行時間 15 分鐘
單次部署包大小上限 250MB(含 layer)
同步觸發最大負載 預設 1000 concurrency(可申請提升)
須設計無狀態 每次執行是全新環境,不保留記憶體資料

小結

今天介紹了 AWS Lambda 的核心概念:

  • 完全免維護伺服器

  • 按次計費、真正用多少付多少

  • 適合 API、小型運算任務、背景作業

  • 超級擴展性,適合不確定流量的應用

Lambda 完全顛覆了傳統開發部署方式,讓開發者能更專注在功能本身,而不是維護伺服器!


下一篇,我們將繼續探討
Day 9:AWS 容器服務 - EKS(Elastic Kubernetes Service)
看看當需要更複雜的大型應用,想用 Kubernetes 架構時,AWS 是怎麼支援的!

Day 9 再見 👋


如果你想,我還可以加一篇
📄 「AWS Lambda 實作教學(Hello World + API Gateway 快速串接)」
讓大家馬上寫出第一個 Lambda,並從瀏覽器直接呼叫。要不要也一起?🚀✨
要的話告訴我,我可以馬上補上!