私はジョブのキューを持ち、ジョブを処理するAWS EC2インスタンスを実行しています。各c4。*インスタンスタイプの自動スケーリンググループが、現場版とオンデマンド版で用意されています。AWS(EC2およびスポットインスタンス)で価格を下げる
各インスタンスの電力は、インスタンスCPUの数に等しい数です。 (例えば、c4.largeには2つのCPUがあるので、power = 2となります)。
正確な電力は、キュー内のジョブの数から単純に計算されます。
キュー内のジョブ数を定期的にチェックし、AWS SDKで特定の自動スケーリンググループの希望する値を変更してできるだけ多くの金額を節約し、ジョブを処理し続ける。特に
:彼らは安価であるため、
- 私はオンデマンドにスポットインスタンスを好むが
- EC2インスタンスは時間ごとに課金され、我々はそのの非常に最後の最後でインスタンスをオフにしたいと思います1時間の稼働時間。
- 可能であれば、オンデマンドインスタンスをスポットインスタンスで置き換えたいと考えています。したがって、スポットグループが55分増加すると、58で新しいスポットインスタンスが実行されていることを確認し、そうであればオンデマンドグループを減らします。
- 入札単価が高すぎる場合は、オンデマンドでスポットインスタンスを交換したいと考えています。オンデマンドの電源を切って、スポット1をオンにするだけです。
問題は本当に扱いにくいようです。誰も経験や似たようなソリューションを実装していますか?
私はアラームを試みました。その結果、アラームが遅いです。新しいインスタンスを開始するまでに最大5分の時間がかかります。また、スポットインスタンスをどのように扱いますか?実行するEC2インスタンスの数は、 QueueSize/C、Cは定数です。あなたはアラームでそれを行うことはできません。 – smrt28