我們有一個小的EC2實例不斷運行並收集數據。我們希望能夠創建另一個EC2實例(更大的一個......更多的CPU和RAM),但能夠使用來自較小服務器的數據。需要根據請求創建更大的實例,並且此任務需要自動完成。理想情況下,我們希望爲此任務提供一個「單個按鈕」。Amazon AWS任務自動化
我知道可以使用腳本編寫此任務(例如使用python CLI),但是有沒有可以幫助我們完成此任務的任何工具或任何AWS服務?
我們有一個小的EC2實例不斷運行並收集數據。我們希望能夠創建另一個EC2實例(更大的一個......更多的CPU和RAM),但能夠使用來自較小服務器的數據。需要根據請求創建更大的實例,並且此任務需要自動完成。理想情況下,我們希望爲此任務提供一個「單個按鈕」。Amazon AWS任務自動化
我知道可以使用腳本編寫此任務(例如使用python CLI),但是有沒有可以幫助我們完成此任務的任何工具或任何AWS服務?
的第一個問題是在哪裏存儲數據,以便它可以被兩個實例訪問。您應該總是嘗試將數據存儲在數據庫而不是文件系統中,這允許多個實例訪問相同的數據。
然後您可以選擇是啓動一個新的「大」實例,還是隻根據需要啓動/停止它。當EC2實例停止時,EC2不收取任何費用(但您仍將支付磁盤存儲費用)。
至於啓動另一個實例,可以使用AWS Command-Line Interface (CLI)從腳本啓動的。該腳本可以使用啓動實例時執行命令的User Data startup script啓動實例。這可能會加載並運行您的應用程序。
一旦您的實例完成處理,它可以關閉虛擬機。有一個關閉行爲選項可以停止或終止EC2實例。
您也可以考慮使用第二個實例Amazon EC2 Spot Instances - 它們可以節省大量成本,最糟糕的情況是它們會被終止,您可以稍後再試。
您可以使用AWS Lambda和EC2 Python SDK來執行此操作。要觸發Lambda函數,您可以使用不同的機制。例如。
或者簡單地[調用lambda](https://boto3.readthedocs.io/en/latest/reference/services/lambda.html#Lambda.Client.invoke) – hjpotter92
@ hjpotter92更新了答案並添加了您的建議。謝謝 :) – Ashan
任何事情都是可能的,都取決於您所需的工作流程。恕我直言,你的工作流程是不明確的,所以你可能會得到許多可能不適合你的答案。 – mootmoot