中断されたら途中からやり直すので、こまめに保存したくなります。5分ごとの保存は26.9時間かかりました。
30分ごとなら26.0時間、15分ごとなら25.8時間です。細かくしすぎると遅くなります。
保存の間隔には底があります。細かくしすぎると、書き込みの回数が捨てる計算を上回ります。
スポットインスタンスで仕事を回すと何が起きるのかを、実際に走らせて測りました。用意したのは本来24時間で終わる仕事です。
平均6時間ごとに中断され、再開に4分かかる想定です。保存の書き込みは1回30秒としました。中断の起きる時刻は先に決めてあり、保存の間隔を変えても同じです。
本来 24時間の仕事。平均 6時間ごとに中断され、再開に 4分かかる チェックポイントの書き込みは1回30秒として計算した 保存の間隔 実時間 中断 捨てた計算 実時間の増え 5分 26.9h 5.3回 0.2h 12.3% 15分 25.8h 5.1回 0.6h 7.3% 30分 26.0h 5.1回 1.2h 8.3% 60分 26.9h 5.2回 2.4h 12.2% 120分 29.7h 5.7回 5.2h 23.8% 240分 34.6h 6.3回 10.2h 44.3%
捨てた計算は、5分ごとの0.2時間から240分ごとの10.2時間までずっと増え続けます。ここまでは想像どおりです。
ところが実時間は違います。5分ごとの26.9時間が、15分ごとには25.8時間まで下がります。
5分ごとに保存すると、24時間でおよそ290回書き込みます。1回30秒なので、合わせて2.4時間になります。
捨てた計算は0.2時間しかありません。節約した量より、書き込みに使った時間のほうが10倍以上多い状態です。
15分ごとなら書き込みは約96回で0.8時間、捨てた計算は0.6時間です。合計が最も小さくなる点が、この2つの交わるあたりにあります。
保存の間隔には底がある。細かすぎても粗すぎても損。
出典もこの買い方を実行する時間に融通が利き、処理が中断されうる場合には、費用対効果の高い選択肢であると説明しています。中断を前提に組めるかが分かれ目です。
Spot Instances are a cost-effective choice if you can be flexible about when your applications run and if your applications can be interrupted.原文AWS「Spot Instances」(Amazon EC2 ユーザーガイド) この内容の有効期限2027-02-18
中断が増えれば実時間は延びます。それでも常時確保との差は大きく、逆転しません。
スポットインスタンスを選ぶ理由は値段です。出典は余っているEC2の容量を使い、オンデマンド価格より安く利用できるインスタンスと定義しています。
問題は、中断で延びた実時間ぶんも払う点です。どこまで中断が増えると割に合わなくなるのかを測りました。
本来 24時間の仕事。保存は 30分ごと、再開に 4分 中断の起きやすさを変えて、実時間と相対費用を出す 中断の間隔 実時間 中断 捨てた計算 中断ありの費用 常時確保との比 24時間 25.0h 1.6回 0.5h 7.5 31% 12時間 25.3h 2.6回 0.7h 7.6 32% 6時間 26.1h 5.3回 1.4h 7.8 33% 3時間 27.2h 9.6回 2.2h 8.2 34% 1.5時間 30.1h 19.1回 4.4h 9.0 38% ※ 費用は常時確保を1.0、中断ありを0.3とした相対値。実時間ぶんだけ課金される前提。
中断は1.6回から19.1回まで、およそ12倍に増えています。それでも費用の比は31%から38%までしか動きません。
単価の差が3倍以上あるので、実時間が2割5分延びても追いつきません。逆転するには実時間が3倍を超える必要があります。
この計測の範囲では、そこまで延びていません。中断が1.5時間ごとでも実時間は30.1時間で、本来の1.25倍です。
この計測では保存1回を30秒、再開を4分としています。ここが数倍になると、表の形は変わります。
中断が12倍に増えても、費用の比はほとんど動かない。
A Spot Instance is an instance that uses spare EC2 capacity that is available for less than the On-Demand price.原文AWS「Spot Instances」(Amazon EC2 ユーザーガイド) この内容の有効期限2027-02-18
止まってよい仕事なら効きます。応答を待たせる処理に当てると、安さより不安定さが目立ちます。
スポットインスタンスで最も多い失敗は、止まってはいけない処理に当てることです。出典も向く用途を具体的に挙げています。
その挙げ方はたとえばデータ分析、バッチ処理、バックグラウンド処理、任意のタスクによく適しているというものです。どれも途中で止まってよい仕事です。
4番目は、保存を入れれば解けます。入れる前に選ぶと、この計測の240分ごとの列と同じ状態になります。捨てた計算が10.2時間です。
実務では、常時確保と中断ありを混ぜます。止まってはいけない部分だけを常時確保に置きます。
学習や一括処理を中断ありに寄せれば、費用の大部分がこの計測の3割前後の水準に乗ります。バッチ処理の記事では、その一括処理そのものの組み方を扱っています。
止まってよいかどうかで、当てる先が決まる。
中断の起きる間隔は式で作った分布です。実際の中断は容量の需給で決まり、時間帯や地域で偏ります。保存1回30秒・再開4分という置き方も、状態の大きさで変わります。ここで見せているのは、保存の間隔に底があるという関係です。
For example, Spot Instances are well-suited for data analysis, batch jobs, background processing, and optional tasks.原文AWS「Spot Instances」(Amazon EC2 ユーザーガイド) この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る