Amazon-Web-Services

當 EC2 實例宕機時,如何使用現有 EBS 卷啟動新機器?

  • September 24, 2013

我們有一個應用程序,客戶可以在其中將數據和文件上傳到多個 EC2 實例。我們將上傳的內容儲存在 EBS 卷上。

有時我們的應用程序會失敗。有時它在我們的應用伺服器中,有時它是糟糕的 EC2 硬體。

如何自動恢復特定實例?換句話說,當一個實例超過 X 分鐘不可用時,我想自動終止該實例,啟動一個新實例(可能在新硬體上),並將舊 EBS 卷附加到它,以便保留客戶的數據.

有沒有辦法設置 CloudWatch 或自動縮放來做到這一點?

如何自動恢復特定實例?換句話說,當一個實例超過 X 分鐘不可用時,我想自動終止該實例,啟動一個新實例(可能在新硬體上),並將舊 EBS 卷附加到它,以便保留客戶的數據.

這可以使用 amazon api 來完成。基本上,有一個 cron 每 12 小時左右拍攝 ebs 卷的快照……然後讓 nagios 檢查主機,並在 10 次左右失敗時,讓 nagios 執行腳本來呼叫 api 工具。nagios 執行的腳本可以:

1)找到主機的實例ID(通過ssh’ing到主機和http’ing aws元數據,或通過grep’ing ec2-describe-instance)

2)終止實例ID(ec2-terminate-instance)

3)創建卷從快照 (ec2-create-volume)

  1. 基於 ami (ec2-run-instance) 啟動新實例

  2. 將新卷附加到實例 (ec2-attach-volume)

aws cli api 工具:http ://aws.amazon.com/developertools/351

然而,還有其他問題,例如可能需要解決的 dns、彈性 ips、安全組、終止保護和應用層服務配置。執行 ec2-run-instance -h 以獲得更多幫助,或訪問 aws api 論壇…

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