ec2實例的aws垂直擴展可以支援每天10萬用戶嗎?

ec2實例的aws垂直擴展可以支援每天10萬用戶嗎?

我有一個連結分享網站(想想 reddit)。它現在託管在 godaddy 豪華共享主機上。我打算將其遷移到 aws。

我看過一個關於擴展至 1000 萬用戶的 aws 網路研討會。但基本上它只是說超出了您無法以垂直方式縮放的範圍,因此選擇從一開始就以水平方式縮放。

我不需要支援 1000 萬用戶。假設我每天需要支援 100,000 個用戶。該網站最多有 1000 個並髮用戶。

使用案例

  • 用戶將發布該網站的連結。只有千分之一的用戶會發布連結。
  • 大多數用戶只是在網站上搜尋連結、閱讀說明等。
  • 該網站每天約有 5000 條評論。
  • 它主要是一個基於文字的網站。
  • 除了用戶頭像和橫幅之外,網站上的圖片很少,兩者都限制在 2MB。圖像儲存在資料庫中。
  • 存在論壇的常見功能,如註冊、登入、帳戶等。

規劃建築

  • 1 個 EC2 執行個體
  • 1個RDS實例
  • 1 53 號公路區域
  • 1個彈性ip
  • 1 s3(僅用於備份)

我計劃使用這種簡單的方法進行擴展 - 從 t2.micro 開始,隨著用戶群的增長,只需升級 ec2 實例即可。 RDS 實例也是如此。

我知道 1 個 EC2 或 RDS 會使其成為單點故障。如果其中任何一個中斷,我計劃終止該實例並從映像/備份啟動相同的實例。如果網站每 30 天離線 1 小時,我也沒關係。

請記住,我沒有人幫助我,這是一項單獨的努力。如果使用者遇到問題,我可以找人在 AWS 方面提供協助。

  1. 我可以透過這種方式支援 100,000 個用戶嗎?
  2. 我應該在什麼斷點升級到下一個 Ec2 實例,直到 100,000 個使用者/1000 個並髮使用者? (例如,直到 5 個同時使用者 - t2.micro/db.t2.micro,直到 40 個並髮使用者 - EC2 執行個體類型 2/Rds 執行個體類型 2 等)
  3. 在實施這個計劃之前,還有什麼是我沒有考慮/必須考慮的嗎?

答案1

很難說 Web 應用程式是否能夠處理特定係統上的 X 個客戶端。它在很大程度上取決於許多因素,包括應用程式的編寫方式、使用的框架等。

最好的選擇是找到可用於基準測試/模擬應用程式使用情況的東西。由於您似乎已經運行了 Web 應用程序,因此您可以在短時間內輕鬆設定任何大小的 ec2 實例,運行一些測試,然後將其關閉。

能夠橫向擴展將為未來的成長提供更好的途徑。如果網站在較大的實例上遇到困難,或者您需要擴展到超過 100,000 個實例,會發生什麼情況?您可能還會發現,僅僅遷移到更大的實例可能不會帶來效能的線性成長。

有一件事確實引人注目——

圖像儲存在資料庫中。

將圖像以及您不需要應用程式伺服器在其他地方處理的任何其他內容儲存起來。由於您已經在使用 AWS 堆疊,因此 S3 顯然是映像和其他靜態資料的存放位置。不要將應用程式伺服器時間浪費在靜態資源上。

相關內容