我正在爲執行一些cpu密集型工作的移動應用程序編寫後端。我們預計該應用在大多數情況下不會有大量使用,但會偶爾出現高需求高峯。我在想,我們應該做的是預留幾臺24/7服務器來處理低需求流量的穩定狀態,然後根據需要添加和刪除EC2實例來處理峯值。移動應用程序將首先擊中一個簡單的負載均衡服務器,在所有可用的處理服務器中執行簡單的循環用戶分配。負載平衡器將處理新的EC2實例,並根據需要將其恢復。用於處理需求峯值的EC2
一些問題:
我沒寫過這樣的事情之前,這聽起來是個不錯的策略?
處理新的EC2實例的最佳方法是什麼?我想我可以提前創建X實例,根據需要設置它們(安裝軟件等),然後停止每個實例。然後,負載均衡器將根據需要啓動和停止實例(例如通過boto)。我認爲這應該比創建新實例並通過腳本或其他東西安裝所有內容更快更容易。好主意?
我在這裏關心的一件事是關閉EC2實例並重新開啓的成本。我查看了AWS使用情況報告,並且很難解釋它。我可以看到啓動停止的實例是一項潛在的昂貴操作。但是,似乎是因爲我剛開始一個停止的實例,而不是從頭開始一個新的實例,它應該不會太糟糕。這聽起來是對的嗎?
我想補充有關原帖一些更多的信息。當您使用Auto Scaling時,您不會停止並啓動將要啓動和終止的服務器。不同的是,您的服務器上的數據都不會被保存,並且EBS存儲沒有成本,因爲它不存在。如果您擁有根設備以外的EBS卷,則取決於配置,實例終止後可能會留下這些卷。 – bwight 2012-08-16 22:14:58