スポットインスタンスは、ECS コンピューティングコストを削減するように設計された従量課金制のインスタンスです。 スポットインスタンスの価格は Alibaba Cloud ECS によって設定され、市場におけるこれらのインスタンスの需給の変化の影響を受けます。 したがって、スポットインスタンスの価格変動を最大限に活用できます。 スポットインスタンスを適切なタイミングで購入することで、コンピューティングコスト全体を削減しながら、この期間のビジネスループットを向上させることができます。 詳細については、「スポットインスタンス」をご参照ください。
ECS インスタンスと同様に、Batch Compute でのスポットインスタンスの使用に追加料金は発生しません。 Batch Compute でサポートされているスポットインスタンスの種類については、「インスタンスタイプ」をご参照ください。
1. ジョブの送信
スポットインスタンスリソースを指定するために使用されるパラメーターについては、次の表を参照してください。
パラメーター | 説明 |
ResourceType | リソースの種類。 オプション値: |
InstanceType | スポットインスタンスの種類。 使用可能なスポットインスタンスタイプのリストは、 |
SpotStrategy | オプション値: SpotWithPriceLimit:スポットインスタンスの最大価格を設定します。 SpotAsPriceGo:システムが価格を自動的に提供し、最大値は従量課金制の価格です。 |
SpotPriceLimit | 1 時間あたりのインスタンスの最大価格。 値には最大 3 つの小数を含めることができます。 |
1.1. Java SDK を使用してジョブを送信する
TaskDescription taskDesc = new TaskDescription();
AutoCluster autoCluster = new AutoCluster();
autoCluster.setResourceType("Spot");
autoCluster.setInstanceType("ecs.sn1.large");
// オプションの構成
autoCluster.setSpotStrategy("SpotWithPriceLimit");
autoCluster.setSpotPriceLimit(0.1f);1.2. Python SDK を使用してジョブを送信する
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['ResourceType'] = 'Spot'
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['InstanceType'] = 'ecs.sn1.large'
# 以下の構成はオプションです。
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['SpotStrategy'] = 'SpotWithPriceLimit'
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['SpotPriceLimit'] = 0.1 # 0.1 米ドル1.3. コマンドラインツールを使用してジョブを送信する
例 0:スポットジョブを送信します。
bcs sub "python demo.py" --resource_type Spot -t ecs.sn1.large例 1:1 時間あたりの最大価格を 0.1 米ドルに指定します。
bcs sub "python demo.py" --resource_type Spot -t ecs.sn1.large --spot_price_limit 0.1例 2:spot_price_limit が 0 に設定されている場合、価格はシステムによって自動的に割り当てられ、従量課金制インスタンスの価格を超えません。
bcs sub "python demo.py" --resource_type Spot -t ecs.sn1.large --spot_price_limit 02. クラスタの作成と変更
2.1. Java SDK を使用する
GroupDescription group = new GroupDescription();
group.setDesiredVMCount(3);
group.setInstanceType("ecs");
group.setResourceType("OnDemand");
// オプションの構成
group.setSpotPriceLimit(0.1f);
group.setSpotStrategy("SpotWithPriceLimit");2.2. Python SDK を使用する
group_desc['ResourceType'] = 'Spot'
group_desc['InstanceType'] = 'ecs.sn1.large'
# 以下の構成はオプションです。
group_desc['SpotStrategy'] = 'SpotWithPriceLimit'
group_desc['SpotPriceLimit'] = 0.1 # 0.1 米ドル2.3. コマンドラインツールを使用する
クラスタを作成するときにスポット価格ポリシーを設定します。
bcs cc cluster_1 -t ecs.sn1.large --resource_type Spot --spot_price_limit 0.1クラスタスポット価格ポリシーを変更します。
bcs uc cls-xxxx --spot_price_limit 0.8