Amazon-Web-Services

如何在 Elastic Container Service (ECS) 或 Elastic Container Registry (ECR)、Elastic Beanstalk 和 Lambda 之間進行選擇?

  • March 13, 2020

背景: 我使用過 EC2 和 RDS。最近我收到一位客戶的詢問,他想使用 Amazon Web Services 開發移動和 Web 應用程序,並且需要關於他應該使用哪種服務的建議?

  • 彈力豆莖
  • 拉姆達
  • 彈性容器服務 (ECS) 或彈性容器系統資料庫 (ECR)

此外,我已經通過 YouTube 和 Google 上的幾個教程來了解這些服務,但我仍然無法弄清楚他應該使用哪種服務。

問題: 我沒有使用上述服務的任何適當知識和經驗。因此,我希望有與他們合作過的人的建議。

請說明使用特定服務的優缺點,以便我提供建議。

Elastic Beanstalk是您的傳統託管 - 您可以上傳 PHP 或 Java 或任何應用程序,例如 Wordpress、配置數據庫等,然後就可以使用了。在擴展、恢復等方面有一些智能,但它仍然是一個非常傳統的託管平台。

ECS Containers仍然可以執行您的傳統應用程序,但還有更多細節 - 最值得注意的是容器沒有持久儲存並且是短暫的,它們可以隨時來來去去並重新啟動。這意味著它們必須在沒有手動配置/干預的情況下建構並準備好執行。有一些方法可以為容器提供持久儲存,但如果你能避免它,那就更好了。例如,以將所有數據儲存在數據庫中並將所有文件儲存在 S3 中的方式設計您的應用程序。BTW ECR(彈性容器系統資料庫)只是您的容器的儲存。它與ECS一起使用。

Lambda是一個雲原生無伺服器概念,其中應用程序被拆分為服務各種 API 請求的小函式。網站前端通常是在 React 或 Vue 或類似中建構的,並由 S3 / CloudFront 提供服務。然後它通過 API 網關對 Lambda 進行 API 呼叫。

如果做得好*,無伺服器應用程序和容器*通常可以比傳統應用程序更好地擴展。另一方面,建構你的第一個無伺服器應用程序將是一個相當長的學習曲線,因為一些概念與你可能習慣做的不同。

這是一個非常簡短的概述。這個話題可以討論幾個小時:)

如果您想這樣做,請嘗試在 Google 上搜尋“無伺服器應用程序設計最佳實踐”或“容器化應用程序設計最佳實踐”之類的內容。

希望有幫助:)

引用自:https://serverfault.com/questions/1006696