このトピックでは、自動プロビジョニンググループを設定する方法について説明し、例を示します。 次の例では、自動プロビジョニンググループを使用して複数のECS (Elastic Compute Service) インスタンスを作成し、機械学習を実装したり、発券Webサイトを構築したりします。 自動プロビジョニンググループを使用して、複数のリソースプールを最低コストで使用したり、特定のリソースプールを使用して複数のECSインスタンスを作成したりすることもできます。
ECSコンソールでの自動プロビジョニンググループの設定
例1: 機械学習の実装
次の週に機械学習タスクを完了する予定です。 このタスクには、住宅ローンのリスク要因の分析が含まれます。 インスタンスクラスターには次の要件があります。
リージョン: 中国 (杭州) 。
インスタンスにはNVIDIA V100 GPUが装備されています。 1つのインスタンスのGPUメモリのサイズは最大32 GBです。
ターゲット容量: 20インスタンス。
コストを最小限に抑えるため、プリエンプティブルインスタンスのみを作成することを推奨します。 インスタンスクラスター内のインスタンスの数は、ターゲット容量未満にすることができます。
タスクの完了後にインスタンスをリリースする必要があります。
次の表に、上記の要件を満たす自動プロビジョニンググループの設定を示します。
セクション | パラメーター | 説明 |
容量設定 | ターゲット容量 | ターゲットの容量とインスタンスカテゴリの要件に基づいて、次の設定を行います。
|
インスタンス設定 | インスタンス設定 | NVIDIA V100 GPUを使用し、GPUメモリが1インスタンスあたり32 GB以下のインスタンスの要件を満たすには、次の操作を実行します。
ゾーンとインスタンスタイプに基づいて、インスタンス設定を追加できます。
上記の設定を追加すると、次のリソースプールが形成されます。
|
プロビジョニングポリシー | [コスト最適化ポリシー] を選択します。 自動プロビジョニンググループが開始されると、最低価格で利用可能なリソースプールがインスタンスクラスターの作成に使用されます。 | |
プリエンプティブルインスタンスの中断設定 | コストを最小限に抑えるために、インスタンスクラスター内のインスタンス数は、Target Capacityパラメーターで指定された値未満にすることができます。 この場合、[リリース] を選択します。 | |
高度な | グループタイプ | コストを最小限に抑えるために、インスタンスクラスター内のインスタンス数は、Target Capacityパラメーターで指定された値未満にすることができます。 この場合、[ワンタイム配信] を選択します。 |
開始時刻と終了時刻 | 翌週の時間要件に基づいて、開始時間と有効期限を指定します。 | |
プリエンプティブルインスタンスのグローバル最大価格 | コストを最小限に抑えるには、[最大価格の設定] を選択して、余裕のある最大価格を指定します。 | |
インスタンスのシャットダウン設定 |
|
例2: 発券ウェブサイトの構築
たとえば、すべての時間、特にピーク時に信頼性の高い発券サービスを提供するための発券Webサイトを構築したいとします。 インスタンスクラスターには次の要件があります。
リージョン: 中国 (杭州) 。
インスタンス: 1つのインスタンスのvCPUの数は8を超えません。
ターゲット容量: 80 vCPU。
最小容量: 60 vCPU。
クラスターの最小容量に基づいてWebサイトのアクセスエクスペリエンスを最適化し、コストを最小限に抑えます。
クラスターにはディザスタリカバリ機能が必要です。
次の表に、上記の要件を満たす自動プロビジョニンググループの設定を示します。
セクション | パラメーター | 説明 |
容量設定 | ターゲット容量 | ターゲット容量と最小容量の要件に基づいて、次の設定を構成します。
|
従量課金インスタンス容量 | 最小容量要件を満たすために、スピンボックスに60を指定します。 | |
インスタンス設定 | インスタンス設定 | c6インスタンスファミリーは、フロントエンドwebサーバーの構築に適しているため使用されます。 インスタンスごとに8個以下のvCPUを備えているインスタンスの要件を満たすには、次の操作を実行します。
ゾーンとインスタンスタイプに基づいて、インスタンス設定を追加できます。
上記の設定を追加すると、次のリソースプールが形成されます。
|
プロビジョニングポリシー | [分散配布ポリシー] を選択します。 自動プロビジョニンググループが開始されると、単一のゾーン内のリソース不足によるインスタンス作成の失敗を防ぐために、ゾーン間でインスタンスを均等に作成しようとします。 これにより、アプリケーションのディザスタリカバリ機能を向上できます。 | |
インスタンス設定 | プリエンプティブルインスタンスの中断設定 | [停止] を選択して、Webサイトに低レイテンシでアクセスできるようにします。 エコノミーモードでのインスタンスの停止からの回復に必要な時間は、インスタンスの作成に必要な時間よりも短くなります。 |
高度な | グループタイプ | チケットサービスを継続的に提供するには、[継続的配送と容量の維持] を選択します。 |
開始時刻と終了時刻 | 自動プロビジョニンググループはすぐに開始され、チケットサービスを継続的に提供するために無期限に保持できます。 | |
プリエンプティブルインスタンスのグローバル最大価格 | Webサイトのアクセスエクスペリエンスを最適化するには、[自動入札] を選択して、クラスター内のインスタンス数を安定させます。 | |
インスタンスのシャットダウン設定 | コストを最小限に抑えるには、ターゲット容量を超えた場合に過剰なインスタンスをシャットダウンを選択します。 |
ターゲット容量はvCPUの数で指定されます。 したがって、各インスタンスの重みは、各インスタンスタイプのvCPUの数に関連しています。 次の表に、各インスタンスタイプの加重価格を示します。
次の表の価格は参照だけのためです。 購入ページに表示される実際の価格が優先されます。
インスタンスタイプ | vCPU | 従量課金 (USD) | 重量 | 加重価格 (USD) |
ecs.c6.large | 2 | 1時間あたりの0.06 | 2 | 1時間あたりの0.03 |
ecs.c6.xlarge | 4 | 1時間あたりの0.121 | 4 | 1時間あたりの0.03025 |
ecs.c6.2xlarge | 8 | 1時間あたりの0.241 | 8 | 1時間あたりの0.030125 |
自動プロビジョニンググループがインスタンスクラスターを作成しようとすると、自動プロビジョニンググループはまずバランス分散ポリシーの実装を試み、ゾーン間でインスタンスを均等に作成します。 次に、自動プロビジョニンググループは、インスタンスを作成するための加重価格が低いインスタンスタイプを選択しようとします。 すべてのインスタンスタイプの加重価格が同じ場合、自動プロビジョニンググループはランダムにインスタンスタイプを選択してインスタンスを作成します。
APIを呼び出して自動プロビジョニンググループを構成する
例1: 最低価格で複数のリソースプールを使用する
コストを最小限に抑え、単一のリソースプールを使用することによるプリエンプティブルインスタンスのリクラメーションの影響を軽減したい場合は、インスタンスを作成するために最低価格の複数のリソースプールを使用するように自動プロビジョニンググループを構成できます。
SpotAllocationStrategyパラメーターをlowest-priceに設定し、SpotInstancePoolsToUseCountパラメーターを設定して、CreateAutoProvisioningGroup操作を呼び出すことができます。 たとえば、次の表に示す設定を行い、次の結果を含む自動プロビジョニンググループを作成できます。
lt-bp1ivgo4p5now3px **** 起動テンプレートに基づいて5つのリソースプールを取得します。
ターゲット容量を30インスタンスに設定し、プリエンプティブルインスタンスのみを作成します。
最低価格の3つのリソースプールを使用し、各リソースプールから10個のプリエンプティブルインスタンスを作成します。
パラメーター | 例 | 説明 |
TotalTargetCapacity | 30 | ターゲット容量を30インスタンスに設定します。 |
SpotTargetCapacity | 30 | 30個のプリエンプティブルインスタンスを作成します。 |
PayAsYouGoTargetCapacity | 0 | 従量課金インスタンスを作成しません。 |
SpotAllocationStrategy | 最低価格 | プリエンプティブルインスタンスのコスト最適化ポリシーを使用します。 |
PayAsYouGoAllocationStrategy | 最低価格 | 従量課金インスタンスのコスト最適化ポリシーを使用します。 |
SpotInstancePoolsToUseCount | 3 | 最低価格の3つのリソースプールを使用します。 |
LaunchTemplateId | lt-bp1ivgo4p5now3px **** | インスタンスの作成に使用される起動テンプレートのID。 |
LaunchTemplateConfig.1.VSwitchId | vsw-bp1ygryo03m39xhsy **** | 拡張構成1 (リソースプール1) のvSwitchのID。 |
LaunchTemplateConfig.1.InstanceType | ecs.c6e.large | 拡張構成1 (リソースプール1) のインスタンスタイプ。 |
LaunchTemplateConfig.1.WeightedCapacity | 1 | 拡張構成1 (リソースプール1) のインスタンスタイプの重み。 |
LaunchTemplateConfig.2.VSwitchId | vsw-bp16hgf8f3kvtcbyu **** | 拡張構成2 (リソースプール2) のvSwitchのID。 |
LaunchTemplateConfig.2.InstanceType | ecs.c6e.xlarge | 拡張構成2 (リソースプール2) のインスタンスタイプ。 |
LaunchTemplateConfig.2.WeightedCapacity | 1 | 拡張構成2 (リソースプール2) のインスタンスタイプの重み。 |
LaunchTemplateConfig.3.VSwitchId | vsw-bp1oeawdo9tj2gvjp **** | 拡張構成3 (リソースプール3) のvSwitchのID。 |
LaunchTemplateConfig.3.InstanceType | ecs.c6e.2xlarge | 拡張構成3 (リソースプール3) のインスタンスタイプ。 |
LaunchTemplateConfig.3.WeightedCapacity | 1 | 拡張構成3 (リソースプール3) のインスタンスタイプの重み。 |
LaunchTemplateConfig.4.VSwitchId | vsw-bp1oeawdo9tj2gvjp **** | 拡張構成4 (リソースプール4) のvSwitchのID。 |
LaunchTemplateConfig.4.InstanceType | ecs.g6e.xlarge | 拡張構成4 (リソースプール4) のインスタンスタイプ。 |
LaunchTemplateConfig.4.WeightedCapacity | 1 | 拡張構成4 (リソースプール4) のインスタンスタイプの重み。 |
LaunchTemplateConfig.5.VSwitchId | vsw-bp1oeawdo9tj2gvjp **** | 拡張構成5 (リソースプール5) のvSwitchのID。 |
LaunchTemplateConfig.5.InstanceType | ecs.g6e.2xlarge | 拡張構成5 (リソースプール5) のインスタンスタイプ。 |
LaunchTemplateConfig.5.WeightedCapacity | 1 | 拡張構成5 (リソースプール5) のインスタンスタイプの重み。 |
例2: 特定のリソースプールを優先的に使用する
特定のリソースプールを優先的に使用してインスタンスを作成するように自動プロビジョニンググループを設定できます。 たとえば、ecs.c6e.largeインスタンスに適用できるゾーンリザーブドインスタンスを購入した場合、自動プロビジョニンググループを設定してecs.c6e.largeインスタンスタイプの従量課金インスタンスを優先的に作成し、リザーブドインスタンスによって提供される課金割引の恩恵を受けることができます。
CreateAutoProvisioningGroup操作は、PayAsYouGoAllocationStrategyパラメーターがpriorizedに設定され、リソースプールの優先度が最高 (0) に設定されている状態でのみ呼び出すことができます。 たとえば、次の表に示す設定を行い、次の結果を含む自動プロビジョニンググループを作成できます。
lt-bp1ivgo4p5now3px **** 起動テンプレートに基づいて5つのリソースプールを取得します。
10個のプリエンプティブルインスタンスと10個の従量課金インスタンスを含む20個のインスタンスにターゲット容量を設定します。
ecs.c6e.largeインスタンスタイプに対応するリソースプールを使用して、LaunchTemplateConfig.1パラメーターを指定して従量課金インスタンスを作成します。
パラメーター | 例 | 説明 |
TotalTargetCapacity | 20 | ターゲット容量を20インスタンスに設定します。 |
SpotTargetCapacity | 10 | 10個のプリエンプティブルインスタンスを作成します。 |
PayAsYouGoTargetCapacity | 10 | 10個の従量課金インスタンスを作成します。 |
SpotAllocationStrategy | 最低価格 | プリエンプティブルインスタンスのコスト最適化ポリシーを使用します。 |
PayAsYouGoAllocationStrategy | 優先順位 | 従量課金インスタンスのコスト最適化ポリシーを使用します。 |
LaunchTemplateId | lt-bp1ivgo4p5now3px **** | インスタンスの作成に使用される起動テンプレートのID。 |
LaunchTemplateConfig.1.VSwitchId | vsw-bp1ygryo03m39xhsy **** | 拡張構成1 (リソースプール1) のvSwitchのID。 |
LaunchTemplateConfig.1.InstanceType | ecs.c6e.large | 拡張構成1 (リソースプール1) のインスタンスタイプ。 |
LaunchTemplateConfig.1.WeightedCapacity | 1 | 拡張構成1 (リソースプール1) のインスタンスタイプの重み。 |
LaunchTemplateConfig.1.Priority | 0 | 拡張構成の優先度1. 値0は、最も高い優先度を示す。 |
LaunchTemplateConfig.2.VSwitchId | vsw-bp16hgf8f3kvtcbyu **** | 拡張構成2 (リソースプール2) のvSwitchのID。 |
LaunchTemplateConfig.2.InstanceType | ecs.c6e.xlarge | 拡張構成2 (リソースプール2) のインスタンスタイプ。 |
LaunchTemplateConfig.2.WeightedCapacity | 1 | 拡張構成2 (リソースプール2) のインスタンスタイプの重み。 |
LaunchTemplateConfig.3.VSwitchId | vsw-bp1oeawdo9tj2gvjp **** | 拡張構成3 (リソースプール3) のvSwitchのID。 |
LaunchTemplateConfig.3.InstanceType | ecs.c6e.2xlarge | 拡張構成3 (リソースプール3) のインスタンスタイプ。 |
LaunchTemplateConfig.3.WeightedCapacity | 1 | 拡張構成3 (リソースプール3) のインスタンスタイプの重み。 |
LaunchTemplateConfig.4.VSwitchId | vsw-bp1oeawdo9tj2gvjp **** | 拡張構成4 (リソースプール4) のvSwitchのID。 |
LaunchTemplateConfig.4.InstanceType | ecs.g6e.xlarge | 拡張構成4 (リソースプール4) のインスタンスタイプ。 |
LaunchTemplateConfig.4.WeightedCapacity | 1 | 拡張構成4 (リソースプール4) のインスタンスタイプの重み。 |
LaunchTemplateConfig.5.VSwitchId | vsw-bp1oeawdo9tj2gvjp **** | 拡張構成5 (リソースプール5) のvSwitchのID。 |
LaunchTemplateConfig.5.InstanceType | ecs.g6e.2xlarge | 拡張構成5 (リソースプール5) のインスタンスタイプ。 |
LaunchTemplateConfig.5.WeightedCapacity | 1 | 拡張構成5 (リソースプール5) のインスタンスタイプの重み。 |