[英]reduce price by on AWS (EC2 and spot instances)
我有一個作業隊列,並且正在運行處理該作業的AWS EC2實例。 對於現貨和按需版本的每種c4。*實例類型,我們都有一個AutoScaling組。
每個實例具有的功率等於實例CPU的數量。 (例如,c4.large具有2個CPU,因此功率為2)。
我們所需的確切功率僅從隊列中的作業數即可計算得出。
我想實現一種算法,該算法將定期檢查隊列中的作業數量,並通過AWS開發工具包更改特定AutoScaling組的期望值,以節省盡可能多的錢,並保持實例的總能力來保持作業的處理。
特別:
看來問題確實很難解決。 有人有經驗或實施過類似的解決方案嗎?
您當然可以編寫自己的代碼來執行此操作,從而有效地告訴您的Auto Scaling組何時添加/刪除實例。
另外,請注意,使用競價型實例降低成本的一個好的策略是欣賞競價型實例的價格變化 :
因此,如果c4.xlarge
的現貨價格在一個c4.xlarge
中上漲,那么在另一個可用區中的成本可能仍然相同。 而且, c4.2xlarge
的價格可能會低於c4.xlarge
,價格是其兩倍。
因此,你的目標應該是多樣性的現貨情況在多個鋯剛玉和多個實例類型。 這意味着現貨價格的變化將只影響您車隊的一小部分,而不是一次全部。
您可以使用Spot Fleet或什至是第三方產品(例如SpotInst)來協助解決此問題 。
還值得一看的是AWS Batch (目前並非在每個地區都可用),它旨在智能地為批處理作業提供容量。
自動縮放組允許您使用在自動縮放組之外定義的警報和指標。
如果您使用的是SNS,則應該能夠在SNS隊列上設置一個警報,並使用該警報來擴大和縮小擴展組。
如果您使用的是自定義隊列系統,則可以將指標推送到cloudwatch以創建類似的警報。
您可以確定執行縮放操作的頻率,但是可能很難將運行時間精確到一小時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.