このトピックでは、自動プロビジョニンググループを構成する方法について説明し、例を示します。次の例では、自動プロビジョニンググループを使用して複数の Elastic Compute Service (ECS) インスタンスを作成し、機械学習を実装したり、チケット販売 Web サイトを構築したりします。自動プロビジョニンググループは、複数のリソースプールを最低コストで使用したり、特定のリソースプールを使用して複数の ECS インスタンスを作成したりするためにも使用できます。
ECS コンソールで自動プロビジョニンググループを構成する
例 1:機械学習を実装する
来週中に機械学習タスクを完了する予定です。このタスクには、住宅ローンのリスク要因の分析が含まれます。インスタンス クラスタには次の要件があります。
リージョン:中国 (杭州)。
インスタンスには NVIDIA V100 GPU が搭載されています。単一インスタンスの GPU メモリは最大 32 GB です。
目標容量:20 インスタンス。
コストを最小限に抑えるために、スポットインスタンスのみを作成することをお勧めします。インスタンス クラスタ内のインスタンス数は、目標容量よりも少なくなる場合があります。
タスク完了後、インスタンスは解放する必要があります。
次の表は、上記の要件を満たす自動プロビジョニンググループの設定について説明しています。
セクション | パラメーター | 説明 |
容量構成 | 目標容量 | 目標容量とインスタンス カテゴリの要件に基づいて、次の設定を構成します。
|
インスタンス構成 | インスタンス構成 | NVIDIA V100 GPU を使用し、インスタンスあたりの GPU メモリが 32 GB 以下のインスタンスの要件を満たすには、次の操作を実行します。
ゾーンとインスタンスタイプに基づいてインスタンス構成を追加できます。
上記の構成を追加すると、次のリソースプールが形成されます。
|
プロビジョニング ポリシー | [コスト最適化ポリシー] を選択します。自動プロビジョニンググループが開始されると、最低価格で利用可能なリソースプールを使用してインスタンス クラスタが作成されます。 | |
スポットインスタンスの中断設定 | コストを最小限に抑えるために、インスタンス クラスタ内のインスタンス数は、目標容量パラメーターで指定された値よりも少なくなる場合があります。この場合、[解放] を選択します。 | |
詳細設定 | グループタイプ | コストを最小限に抑えるために、インスタンス クラスタ内のインスタンス数は、目標容量パラメーターで指定された値よりも少なくなる場合があります。この場合、[ワンタイムデリバリー] を選択します。 |
開始時刻 と 終了時刻 | 来週の時間要件に基づいて、開始時刻と有効期限を指定します。 | |
スポットインスタンスのグローバル最大価格 | コストを最小限に抑えるには、[最大価格を設定] を選択して、支払える最大価格を指定します。 | |
インスタンスのシャットダウン設定 |
|
例 2:チケット販売 Web サイトを構築する
たとえば、特にピーク時に、常時信頼性の高いチケット販売サービスを提供するためのチケット販売 Web サイトを構築したいとします。インスタンス クラスタには次の要件があります。
リージョン:中国 (杭州)。
インスタンス:単一インスタンスの vCPU の数は 8 を超えません。
目標容量:80 vCPU。
最小容量:60 vCPU。
コストを最小限に抑えるために、クラスタの最小容量に基づいて Web サイトアクセス エクスペリエンスを最適化します。
クラスタにはディザスタリカバリ機能が必要です。
次の表は、上記の要件を満たす自動プロビジョニンググループの設定について説明しています。
セクション | パラメーター | 説明 |
容量構成 | 目標容量 | 目標容量と最小容量の要件に基づいて、次の設定を構成します。
|
従量課金インスタンス容量 | 最小容量要件を満たすために、スピンボックスに 60 を指定します。 | |
インスタンス構成 | インスタンス構成 | c6 インスタンスファミリーは、フロントエンド Web サーバーの構築に適しているため、使用されます。インスタンスあたりの vCPU 数が 8 以下のインスタンスの要件を満たすには、次の操作を実行します。
ゾーンとインスタンスタイプに基づいてインスタンス構成を追加できます。
上記の構成を追加すると、次のリソースプールが形成されます。
|
プロビジョニング ポリシー | [バランス分散ポリシー] を選択します。自動プロビジョニンググループが開始されると、単一ゾーン内のリソース不足によるインスタンス作成エラーを防ぐために、ゾーン全体で均等にインスタンスを作成しようとします。これにより、アプリケーションのディザスタリカバリ機能を向上させることができます。 | |
インスタンス構成 | スポットインスタンスの中断設定 | Web サイトに低レイテンシでアクセスできるように、[停止] を選択します。エコノミーモードで停止したインスタンスを回復するのに必要な時間は、インスタンスを作成するのに必要な時間よりも短くなります。 |
詳細設定 | グループタイプ | チケット販売サービスを継続的に提供するには、[継続的デリバリーと容量維持] を選択します。 |
開始時刻 と 終了時刻 | 自動プロビジョニンググループはすぐに開始され、チケット販売サービスを継続的に提供するために無期限に保持できます。 | |
スポットインスタンスのグローバル最大価格 | Web サイトアクセス エクスペリエンスを最適化するには、[自動入札] を選択して、クラスタ内のインスタンス数を安定させます。 | |
インスタンスのシャットダウン設定 | コストを最小限に抑えるには、[目標容量を超えたときに過剰なインスタンスをシャットダウンする] を選択します。 |
目標容量は vCPU 数で指定されます。したがって、各インスタンスの重みは、各インスタンスタイプの vCPU 数に関連しています。次の表は、各インスタンスタイプの加重価格を示しています。
次の表の価格は参考値です。購入ページに表示される実際の価格が優先されます。
インスタンスタイプ | vCPU | 従量課金価格(USD) | 重み | 加重価格(USD) |
ecs.c6.large | 2 | 0.06/時 | 2 | 0.03/時 |
ecs.c6.xlarge | 4 | 0.121/時 | 4 | 0.03025/時 |
ecs.c6.2xlarge | 8 | 0.241/時 | 8 | 0.030125/時 |
自動プロビジョニンググループがインスタンス クラスタの作成を試みると、まずバランス分散ポリシーの実装を試み、ゾーン全体で均等にインスタンスを作成します。次に、加重価格が低いインスタンスタイプを選択してインスタンスを作成しようとします。すべてのインスタンスタイプの加重価格が同じ場合は、ランダムにインスタンスタイプを選択してインスタンスを作成します。
API 操作を呼び出して自動プロビジョニンググループを構成する
例 1:最低価格の複数のリソースプールを使用する
コストを最小限に抑え、単一のリソースプールを使用することによって発生するスポットインスタンスの回収の影響を軽減したい場合は、最低価格の複数のリソースプールを使用してインスタンスを作成するように自動プロビジョニンググループを構成できます。
SpotAllocationStrategy パラメーターを lowest-price に設定し、SpotInstancePoolsToUseCount パラメーターを設定して、CreateAutoProvisioningGroup 操作のみを呼び出すことができます。たとえば、次の表に示す構成を作成して、次の結果を持つ自動プロビジョニンググループを作成できます。
lt-bp1ivgo4p5now3px**** 起動テンプレートに基づいて 5 つのリソースプールを取得します。
目標容量を 30 インスタンスに設定し、スポットインスタンスのみを作成します。
価格が最も低い 3 つのリソースプールを使用し、各リソースプールから 10 個のスポットインスタンスを作成します。
パラメーター | 例 | 説明 |
TotalTargetCapacity | 30 | ターゲットキャパシティを 30 インスタンスに設定します。 |
SpotTargetCapacity | 30 | 30 個のスポットインスタンスを作成します。 |
PayAsYouGoTargetCapacity | 0 | 従量課金インスタンスを作成しません。 |
SpotAllocationStrategy | lowest-price | スポットインスタンスのコスト最適化ポリシーを使用します。 |
PayAsYouGoAllocationStrategy | lowest-price | 従量課金インスタンスのコスト最適化ポリシーを使用します。 |
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 インスタンスを作成する
特定のリソースプールを優先的に使用してインスタンスを作成するように、自動プロビジョニンググループを設定できます。たとえば、ecs.c6e.large インスタンスに適用できるリザーブドインスタンスを使用している場合は、リザーブドインスタンスによって提供される請求割引を利用するために、ecs.c6e.large インスタンスタイプを優先的に選択するように自動プロビジョニンググループを設定できます。
CreateAutoProvisioningGroup 操作は、PayAsYouGoAllocationStrategy パラメーターを prioritized に設定し、リソースプールの優先度を最高値(0)に設定した場合にのみ呼び出すことができます。たとえば、次の表に示す構成を使用して、以下の結果で自動プロビジョニンググループを作成できます。
起動テンプレート lt-bp1ivgo4p5now3px**** に基づいて 5 つのリソースプールを取得します。
ターゲットキャパシティを 20 インスタンスに設定します。これには、10 スポットインスタンスと 10 従量課金インスタンスが含まれます。
LaunchTemplateConfig.1 パラメーターを指定することにより、ecs.c6e.large インスタンスタイプに対応するリソースプールを使用して従量課金インスタンスを作成します。
パラメーター | 例 | 説明 |
TotalTargetCapacity | 20 | ターゲットキャパシティを 20 インスタンスに設定します。 |
SpotTargetCapacity | 10 | 10 スポットインスタンスを作成します。 |
PayAsYouGoTargetCapacity | 10 | 10 従量課金インスタンスを作成します。 |
SpotAllocationStrategy | lowest-price | スポットインスタンスのコスト最適化ポリシーを使用します。 |
PayAsYouGoAllocationStrategy | prioritized | 従量課金インスタンスのコスト最適化ポリシーを使用します。 |
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)のインスタンスタイプの重みです。 |