簡體   English   中英

如何將AWS SQS與現貨實例EC2工作者和長期運行的工作的自動擴展一起使用?

[英]How to use AWS SQS with auto-scaling of spot instances EC2 workers and long running jobs?

讓我解釋...

我有2個SQS隊列 ,它們接收執行輕型重型報告生成作業的請求。 (為避免受到繁重的工作影響,已將隊列分為兩個隊列。)

SQS將作業發送到包含3個worker自動擴展組中

工人是按需 EC2實例。 我想更改啟動配置並使用競價型實例

問題是,某些生成報告的重型任務可能要運行4個小時。 因此,如果這種工作在可能終止的現場實例工作者上運行,則將導致其他延遲和/或復雜性。

我想將競價型實例用作工作人員,但也要確保如果有工作正在運行,則不會終止工作人員。

我想出的方法如下:

1.以實例的按需價格競價現貨實例[它仍然無法防止終止,但將可能性降到最低]

2.使用具有特定期限(例如6個小時)的競價型實例,但是我仍被限制在6個小時內,實例終止。 另外,我不知道是否可以從啟動配置中設置這種設置

我想將競價型實例用作工作人員,但也要確保如果有工作正在運行,則不會終止工作人員。

您似乎了解這不是競價型實例的工作方式

他們是你的,直到價格超出競價

我認為在某些情況下6小時的時間(“定義的持續時間”)可能會有所幫助

想到兩個主意

  • 在開始之前,嘗試在“長”隊列中估計作業的長度。 然后選擇最便宜的選項來運行它

  • 為您的工作實施交易系統。 例如,當從SQS提取作業時,將時間/實例ID /作業ID添加到另一個持久系統,即數據庫表。 然后每隔幾分鍾輪詢一下表,並檢查instanceid是否仍然存在。 當作業最終成功完成時,請獲得作業執行程序以將其從數據庫表中刪除。 如果輪詢發現實例已消失,則將作業重新提交給SQS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM