2013-06-04 61 views
0

我有用C++編寫的分佈式系統。爲了測試其可擴展性,我在尋找基於AWS EC2的解決方案,因爲它很容易在短時間內啓動數百甚至數千個實例。而對於大多數實驗,我只需要在不到1小時的時間內運行基準測試。我應該如何使用EC2來做性能測試

但是,準備這些數千個實例的適當/經濟的方法是什麼?這些項目需要大量的依賴關係,其中一些在Ubuntu中找不到.deb軟件包(我們使用基於ubuntu的AMI)。在每個實例上編譯這個項目是不合理的,我想......但是,我該怎麼做才能將其二進制文件和所有必需的軟件包傳播到所有實例?

如果可能,我們希望使用Ubuntu和基於python的解決方案。

回答

1

最簡單的方法是使用要運行的服務器的映像創建Amazon Machine Image(AMI)。一旦你有了這個,你可以簡單地提名你想要啓動的實例的數量。

的過程是:

  • 從控制檯做Launch Instance的AMI的(比方說)與裸的Ubuntu 12.04分佈。然後您將擁有一臺基本服務器來開始安裝軟件包和軟件。
  • 一旦服務器處於想要複製數千個實例的狀態,請在控制檯中單擊正在運行的實例並選擇操作Create Image (EBS AMI)。這將在控制檯的AMI部分創建自定義AMI。
  • 現在你已經有了一個圖像,你可以像做基本圖像那樣做一個AMI的Launch Instance。啓動它時,只需指定要啓動的實例數即可。
+0

每次我有我的項目的新二進制文件時,是否需要重新創建映像? – eddyxu

+0

是的,「圖像」是您保存服務器時的快照。如果更改,則丟棄舊的AMI,用新的二進制文件從服務器創建一個新的AMI,如上所述關閉所有舊的AMI,並從新的AMI啓動一個機隊。鑑於看起來您將創建大量實例,您可能希望查看[boto](https://github.com/boto/boto)以獲取基於Python的解決方案,以實現上述自動化。 – ianjs

相關問題