1.要解決的問題
在許多系統中,批處理進程是在特定的時間被執行,通常在持續運行的服務器中會使用調度程序(例如UNIX中的cron)。然而,執行批處理的時間其實很短,所以在其他時段就造成了服務器資源的浪費,而導致較低的成本效益。我們要解決的問題就是如何在這種場景下有效利用批處理服務器資源。
2.雲模式的說明
在過去,即使批處理服務器只在特定時段工作,卻需要分配一個全時段運行的服務器。其實您可以通過給這個服務器分配其他任務來提高效率。AWS雲可以使虛擬服務器被按需使用,只有當執行批處理進程時纔會運行虛擬服務器。
在指定時間執行的批處理進程需要系統能在設定的時間啓動虛機,您可以通過使用AWS雲服務中的調度系統來實現。
3.實施
AWS中的“Auto Scaling”系統可以自動增加或減少EC2實例的數量。Auto Scaling具有在指定時段增加或減少EC2實例的功能,您可以用它來實現在指定時段執行批處理進程。
當啓動時,爲執行批處理準備一個Amazon機器鏡像(AMI)(機器鏡像)。
在Auto Scaling中,設置需要在指定時段依據AMI啓動的EC2實例。
對EC2實例本身和Auto Scaling進行設置,以便在進程完成後終止EC2實例。
4.配置
5.好處
在特定時段進行批處理的EC2實例不必持續運行,只有在進程執行時纔會被啓動,大大降低了成本支出。
6.注意事項
當很難判定批處理完成的時間時,您可以使EC2實例在批處理進程結束後自動關閉。
EC2實例的租用是根據單位時間計費的,最少一小時起,所以如果一個EC2實例啓動了之後立即關閉也會收一個小時的費用。所以,您需要注意實例的啓動和關閉時間。