2014-02-14 202 views
2

我已經在彈性beanstalk中設置了一個服務器。當需要時,它應該將實例的數量從1增加到4.我有一個偷偷摸摸的懷疑,但是,當它啓動一個新實例時,該實例將無法正確配置,因爲我無法安裝用於Python的mySQL模塊,不需要手動調入實例並按照this question進行設置。測試AWS Elastic Beanstalk縮放

因此,我的第一個問題是測試Elastic Beanstalk正確縮放的最佳方式是什麼?如果新實例啓動了,我怎麼能確定我看到的是一個新的實例,而不是原始的,手動配置的?

我的第二個問題是,如果這是一個像我懷疑的問題,我該如何解決它?我可以「克隆」我的工作實例並在需要時開始成功複製它們嗎?我會怎麼做?

非常感謝,亞歷克斯

更新:從小丑非常有用的建議後,我已將此添加到myapp.config文件:

container_commands: 
    install_MySQL-python: 
     command: /opt/python/run/venv/bin/easy_install MySQL-Python==1.2.3 

正如你所看到的,這個問題我是有是MySQL-Python無法正確安裝pip,我不得不使用easy_install。這意味着它不能通過requirements.txt文件安裝,該文件用於所有其他python依賴項。通過將上面添加的命令放入我的.ebextensions文件夾中的配置文件中,這是在實例啓動時完成的,並且我不必ssh進入每個單獨的實例。

作爲一個附註,你不需要必須在上面的命令中包含「sudo」,即使你通過ssh實現相同的功能。事實上,我一開始就在那裏,並沒有奏效。

非常感謝小丑。

回答

4

亞歷克斯,

我覺得你的懷疑是正確的。您對正在運行的EC2實例所做的任何配置更改都不會自動顯示在新實例上。

到您的第一個問題:

來測試你的系統在多服務器環境中是如何工作的最簡單的方法,可能是改變參數Minimum instance count在彈性魔豆AWS的配置部分的自動縮放部分安慰。例如,將此參數設置爲2.

(查看新服務器啓動方式的另一種方法是簡單地殺死當前的EC2實例,只需在運行的實例上選擇操作Stop負載平衡器應檢測到此操作一旦健康狀況從綠色轉變爲紅色,並自動爲你部署一個新的實例)

而第二個問題:

你最好的解決問題的辦法是customize your AWS EB environment。創建一個.config文件以設置所需的庫並對新實例執行配置更改。

祝你好運!

+0

完美! .config文件是要走的路。非常感謝。 –