在 AWS EC2 Spot 實例中保持使用者的文件系統持久
我注意到,在自動啟動一個新的 Amazon
AWS EC2
Spot 實例後(我打開了該選項),文件系統的狀態不是目前的(表示上一個 Spot 實例**自動關閉之前的最後一個狀態,因為目前價格超過了我的設置限制)。我猜新啟動的 Spot 實例的文件系統的初始狀態是基於AMI
我用來自動啟動 Spot 實例的文件系統。我有以下問題:是否有可能,如果是,可以做些什麼,在自動關閉之前自動保存文件系統的狀態並在新的 Spot 實例的自動啟動期間恢復它?如果不可能,至少,是否可以自動下載和執行將系統帶入所需狀態的 shell 腳本(通過 自動更新系統
apt-get
,通過 獲取最新原始碼git
等)?謝謝!
您可以使用持久的 EBS 根卷啟動您的 Spot 實例(或在啟動後附加單獨的 EBS 卷)。在您的 Spot 實例終止後,EBS 卷將保留。
請參閱http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-spot-instances-applications-ebs.html
Spot 實例(實際上是所有 EC2)針對不需要維護狀態的案例進行了優化。當您配置 Spot 實例請求時,您提供了每個實例用於啟動的 AMI ID。如您所見,更改不會送出回該 AMI。
如果您確實需要共享文件系統,請在 EC2 中配置一個長時間執行的(非現場實例)伺服器並將 NFS 文件系統從那裡導出到您的現場實例。
但是,如果您真正需要做的只是在啟動時執行一些命令來更新內容並部署您的程式碼,那麼這可以通過您可以在現場實例請求中配置的使用者數據文本來完成。只需編寫一個 shell 腳本來執行您想要的操作,然後在您的現場請求(或任何其他 EC2 實例啟動配置)中將其作為您的使用者數據提供。當實例啟動時,該腳本將以 root 身份執行。