Elastic Load Balancer(ELB)會不時發現我的一臺服務器不可用。哪個好 - 幾乎沒有任何中斷。如何讓ECB實例在ELB表示不可用時自動重啓?
通常,只需通過AWS控制檯重新啓動實例即可解決問題。
我想讓我的EC2實例在不可用時自動重啓。
這樣做的最好方法是什麼? (它恰好是一個Windows實例,但最好不要緊)
Elastic Load Balancer(ELB)會不時發現我的一臺服務器不可用。哪個好 - 幾乎沒有任何中斷。如何讓ECB實例在ELB表示不可用時自動重啓?
通常,只需通過AWS控制檯重新啓動實例即可解決問題。
我想讓我的EC2實例在不可用時自動重啓。
這樣做的最好方法是什麼? (它恰好是一個Windows實例,但最好不要緊)
我得到了一個便宜的EC2微型實例,並編寫了一個簡單的腳本,列出了我所有的EC2服務器,並在每個服務器上都做了GET,以確保它正常運行。如果服務器運行不正常,我的腳本會重新啓動它。我有腳本每10分鐘運行一次。
如果有一個服務爲我做這件事,會稍微容易些,但系統很容易設置和微型實例便宜。
一般來說,您應該使用自動縮放組設置您的負載平衡器。自動擴展組將包含有關您的服務器如何配置的信息。例如,它將有一個ami和可能的用戶數據文件,這將允許在沒有任何用戶交互的情況下對其進行配置。當這兩個服務一起工作時,負載平衡器將終止您的失敗實例並立即啓動新實例。
當您使用Windows實例時,您可以編寫一個powershell腳本來配置您的服務器,並在服務器啓動時使用CloudInit.NET執行腳本。腳本的最後部分應該啓用對負載平衡器的檢查。
這是一個好信息,但由於種種原因,我還是寧願一個簡單的重新啓動發生,VS一個termination->新實例。 – pk1557 2012-03-08 08:06:42
您可以嘗試使用新的ec2-describe-instance-status命令並編寫一個腳本,以便在實例關閉時重新引導該實例。該腳本還需要將實例添加回負載平衡器。很簡單的腳本來寫。一旦腳本完成後,把它放在一個crontab中,只要運行的機器運行,它就會工作。 http://aws.typepad.com/aws/2012/01/ec2-instance-status-checks.html – bwight 2012-03-08 14:52:59
使用自動縮放組並將其設置爲保留1個實例。如果你的實例崩潰,它將從預定義的實例圖像中產生一個新的實例。這很容易和方便。
雖然這是真的,但重新引導實例經常會修復問題,重啓比啓動新實例快得多* – 2016-01-19 21:18:35
寫一個lambda函數!
它比運行微型實例更便宜,您可以將它設置爲以任意間隔運行。您還可以使用CloudWatch進行監控,因此您無需擔心分別檢查微型實例的運行狀況。
我正在使用ElasticBeanstalk,它提供describeInstancesHealth
端點。或者,您可以使用ec2的describeInstanceStatus
端點。
然後,如果您檢測到一個不好的實例,ec2的rebootInstances
讓我們重新啓動一個或多個實例。
同意@agmin的lambda函數是一個很好的方法來做到這一點。您可以配置CloudWatch警報以通過SNS主題觸發lambda功能。
我把這個實現放在一起,它似乎運作良好。它可以設置並且可以完全通過命令行配置:
如果你的微型實例崩潰怎麼辦?已發生的 – 2012-03-25 06:20:36
。現在我得到一個Pingdom警報。然而,理想情況下,我應該讓生產服務器檢查微觀,並且微觀檢查生產。嘆。 – pk1557 2012-12-13 23:04:39
小心分享這個腳本? – Mike 2013-07-23 20:49:12