Django

您如何為您的 django 應用選擇 EC2 實例?

  • July 20, 2012

可能重複:

您能幫我規劃容量嗎?

我的團隊創建了一個不錯的 django 應用程序,現在它將部署在 EC2 實例上。現在有幾個問題我正在尋找答案:

  • 如何確定哪個實例適合我的應用程序(微型、小型、中型、大型等)。換句話說,我怎麼知道這個應用程序需要多少記憶體/處理能力。
  • 如何量化伺服器上的最大並髮使用者數。這對於這個應用程序很重要,我需要知道微型/小型/中型或大型實例將支持多少使用者。
  • 我應該選擇安裝在單個實例上的所有東西,還是應該為數據庫、備份和應用程序設置單獨的實例。
  • 我如何估計添加每個使用者所需的額外資源(我認為這不是線性的)

我知道對這些問題的回答是非常主觀的,而且大部分事情都取決於應用程序設計和架構。因此,我更有興趣了解做出此類決定所涉及的過程。

在問題的最後,您已經為自己指出,除了“這取決於”之外,不可能對您的問題給出直接、客觀的答案,所以我將嘗試根據我的(不是廣泛的)提供幫助使用 AWS 的經驗。

如何確定哪個實例適合我的應用程序(微型、小型、中型、大型等)。換句話說,我怎麼知道這個應用程序需要多少記憶體/處理能力。

通過測試、基準測試、試驗。有幾篇文章指出 EC2 與其他供應商的“等效”硬體規格相比表現不佳(是一個很好的)。我的建議是根據您的最佳猜測設置一個環境,​​並監控、負載測試、對您的實例進行基準測試、使用新實例並確定哪個最適合您的應用程序需求。如果沒有您的體系結構的更多詳細資訊,這可能是您可能擁有的最佳答案。

如何量化伺服器上的最大並髮使用者數。這對於這個應用程序很重要,我需要知道微型/小型/中型或大型實例將支持多少使用者。

同樣,這在很大程度上取決於您的系統架構和交易概況。它們是 I/O 密集型、cpu 密集型、記憶體密集型嗎?最好的提示是你應該嘗試一下。

我應該選擇安裝在單個實例上的所有東西,還是應該為數據庫、備份和應用程序設置單獨的實例。

我建議為您的應用程序的每一層設置單獨的實例。AWS 上的典型設置包括用於您的應用程序的 EC2 實例(是否在 Elastic Load Balancer 之後)(或 Elastic Beanstalk)、用於數據庫的另一組 EC2 實例或 RDS、用於持久文件和備份的 S3 等等. 如果你不期望一個巨大的(甚至不是中等的)負載,一個單一的,medium實例可能完全符合您的需求。進行分離的主要理由是您可以在將來獨立擴展它們。恕我直言,這就是 AWS 的最大優勢:靈活性。您可以通過點擊滑鼠(幾乎是字面意思)來擴展您的 RDS 系統。您還可以毫不費力地在您的 Web 層前面添加一個 Elastic Load Balancer,然後向您的生態系統添加 2 或 3 個額外的 Web 伺服器。所以,我會把事情分開,以便最大限度地利用這種靈活性。

我如何估計添加每個使用者所需的額外資源(我認為這不是線性的)

實驗、基準測試等。抱歉重複了,但是當您開始部署資源時,您會意識到事情確實不是線性的,並且在使用 AWS 時您的期望可能並不總是正確的。通過遵循一些簡單的提示(例如我為上一個項目符號給出的答案),並不能保證您的系統會根據您的負載輕鬆擴展,但是當您需要擴展時,事情可能會不那麼痛苦。

希望能幫助到你。

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