自動プロビジョニンググループは、複数のインスタンスタイプ、ゾーン、および課金モデルにわたって Elastic Compute Service (ECS) インスタンスのクラスターを作成・管理します。機械学習や Web サービスなどのワークロードに対して、コスト、可用性、およびキャパシティのバランスを最適化したインスタンスクラスターを構築するために、自動プロビジョニンググループをご利用ください。
構成戦略の選択
自動プロビジョニンググループを構成する前に、ワークロードに最も適した戦略を選択してください。
| シナリオ | 構成 | 詳細 |
|---|---|---|
| コスト効率性とインスタンス作成成功率の最大化を重視しますか? | キャパシティ最適化ポリシー(デフォルト) | スポットインスタンスの価格および再割り当て率に基づき、最もコスト効率の高いインスタンスタイプを使用します。 |
| 複数のリソースプールにわたる総コストを最小化しますか? | コスト最適化ポリシー(スポットインスタンス使用時) | 自動プロビジョニンググループが、最も低価格のインスタンスタイプを選択してインスタンスを作成します。 |
| ディザスタリカバリのため、インスタンスを複数のゾーンに分散配置しますか? | バランス配分ポリシー | 自動プロビジョニンググループが、ゾーン間で均等にインスタンスを作成し、単一ゾーン内のリソース不足によるインスタンス作成失敗を防止します。 |
| 特定のインスタンスタイプ(例:リザーブドインスタンスの活用)を優先しますか? | 優先順位指定割り当て(PayAsYouGoAllocationStrategy = prioritized) | LaunchTemplateConfig.N.Priority で指定された優先順位に基づき、従量課金インスタンスを作成します。 |
| スポットインスタンスの中断リスクを低減するため、複数の低コストプールを活用しますか? | 最低価格割り当て(SpotInstancePoolsToUseCount | スポットインスタンスを、最も安価な N 個のリソースプールに分散配置し、単一プールへの集中を回避します。 |
基本概念
| 概念 | 説明 |
|---|---|
| リソースプール | 1 つのインスタンスタイプと 1 つのゾーンの組み合わせです。各プールは独立したキャパシティの供給元です。 |
| ターゲットキャパシティ | グループ全体の合計キャパシティ目標で、インスタンス数または vCPU 数で測定されます。 |
| 加重キャパシティ | ターゲットキャパシティに対する相対的な重み付け値です。ターゲットキャパシティが vCPU 数で測定される場合、4 vCPU のインスタンスタイプの重みは 4 となります。 |
| プロビジョニングポリシー | リソースプール間でのインスタンス割り当て方法を決定する戦略です。 |
| グループタイプ | グループがインスタンスを 1 回だけ配信するか(1 回限りの配信)、または継続的にキャパシティを維持するか(継続的配信およびキャパシティ維持)を制御します。 |
スポットインスタンスの中断処理
スポットインスタンスが回収されると、自動プロビジョニンググループは、選択した [スポットインスタンスの中断設定] に基づいて対処します。
| 設定 | 動作 | 復旧時間 | 中断後の課金 |
|---|---|---|---|
| リリース | インスタンスがリリースされ、そのリソースが解放されます。 | 長め:新しいインスタンスの作成が必要です。 | 課金は発生しません。 |
| 停止 | インスタンスが節約モード(停止状態)に入り、キャパシティが確保された際に再起動できます。 | 短め:新規インスタンスの作成よりも再起動の方が高速です。 | コンピューティング課金は発生しませんが、ストレージ課金は継続します。 |
ECS コンソールでの構成
例 1:機械学習クラスター(コスト最適化)
シナリオ:住宅ローンのリスク要因を分析する 1 週間の機械学習タスクを完了します。クラスターには GPU インスタンスが必要であり、コストを最小限に抑え、タスク完了時にすべてのインスタンスをリリースする必要があります。
要件:
リージョン:中国 (杭州)
GPU:NVIDIA V100、インスタンスあたり最大 32 GB の GPU メモリ
ターゲットキャパシティ:20 インスタンス
コスト最小化のため、スポットインスタンスのみを作成します。インスタンスクラスター内のインスタンス数は、ターゲットキャパシティ未満でも構いません。
タスク完了後にインスタンスをリリースする必要があります
構成:
| セクション | パラメーター | 設定 |
|---|---|---|
| キャパシティ構成 | ターゲットキャパシティ | ドロップダウンリストから インスタンス を選択し、値を 20 に設定します。 |
| インスタンス構成 | インスタンス構成 | 1. ecs.gn6v-c8g1.2xlarge および ecs.gn6e-c12g1.3xlarge のインスタンスタイプを選択します。これらは NVIDIA V100 GPU を搭載し、最大 32 GB の GPU メモリを備えています。2. リージョンごとの ECS インスタンスタイプ一覧 ページで、杭州ゾーン H および杭州ゾーン I におけるインスタンスタイプの可用性を確認します。3. 杭州ゾーン H の vSwitch を使用する構成と、杭州ゾーン I の vSwitch を使用する構成の 2 つを追加します。それぞれの構成に、上記 2 つのインスタンスタイプを含めます。 |
| プロビジョニングポリシー | コスト最適化ポリシー を選択します。このグループは、最も安価な利用可能なリソースプールからインスタンスを作成します。 | |
| スポットインスタンス中断設定 | リリース を選択します。コスト最小化のため、インスタンスクラスター内のインスタンス数はターゲットキャパシティ未満でも構いません。 | |
| 高度な設定 | グループタイプ | 1 回限りの配信 を選択します。コスト最小化のため、インスタンスクラスター内のインスタンス数はターゲットキャパシティ未満でも構いません。 |
| 開始時刻 および 終了時刻 | 開始時刻および終了時刻を、1 週間のタスク期間をカバーするように設定します。 | |
| スポットインスタンスのグローバル最大価格 | 最大価格の設定 を選択し、ご負担可能な上限価格を指定します。 | |
| インスタンスシャットダウン設定 | グループの有効期限切れ時にインスタンスをシャットダウン を選択し、タスク完了時にすべてのインスタンスをリリースします。ターゲットキャパシティ超過時に過剰なインスタンスをシャットダウン を選択し、コストを最小化します。 |
この構成により、以下の 4 つのリソースプールが形成されます:
| リソースプール | インスタンスタイプ | ゾーン |
|---|---|---|
| 1 | ecs.gn6v-c8g1.2xlarge | 杭州ゾーン H |
| 2 | ecs.gn6e-c12g1.3xlarge | 杭州ゾーン H |
| 3 | ecs.gn6v-c8g1.2xlarge | 杭州ゾーン I |
| 4 | ecs.gn6e-c12g1.3xlarge | 杭州ゾーン I |
このグループは、上記 4 つのプールすべてを評価し、最も安価な利用可能なプールからインスタンスを作成します。
これらのインスタンスタイプの詳細については、「インスタンスファミリーの概要」をご参照ください。
例 2:チケット販売サイト(高可用性)
シナリオ:ピーク時のトラフィックを含む 24 時間体制で安定したサービスを提供するチケット販売サイトを構築します。クラスターは、従量課金インスタンスによって最低限のキャパシティを保証するとともに、ディザスタリカバリのため複数のゾーンにまたがる必要があります。
要件:
リージョン:中国 (杭州)
インスタンスタイプ:インスタンスあたり最大 8 vCPU(フロントエンド Web サーバーに適した c6 ファミリー)
ターゲットキャパシティ:80 vCPU
最低キャパシティ:60 vCPU(従量課金インスタンスによって保証)
複数ゾーンにわたるディザスタリカバリ
構成:
| セクション | パラメーター | 設定 |
|---|---|---|
| キャパシティ構成 | ターゲットキャパシティ | ドロップダウンリストから vCPU を選択し、値を 80 に設定します。従量課金インスタンスによるコンピューティングパワーの提供 を選択します。 |
| 従量課金インスタンスのキャパシティ | 最低キャパシティを保証するため、60 に設定します。 | |
| インスタンス構成 | インスタンス構成 | 1. ecs.c6.large、ecs.c6.xlarge、および ecs.c6.2xlarge のインスタンスタイプを選択します。2. 杭州ゾーン H、杭州ゾーン I、および杭州ゾーン J における可用性を確認します。3. 各ゾーンごとに 1 つずつ、合計 3 つのインスタンス構成を追加し、それぞれに上記 3 つのインスタンスタイプを含めます。 |
| プロビジョニングポリシー | バランス配分ポリシー を選択します。このグループは、ゾーン間で均等にインスタンスを作成し、単一ゾーン内のリソース不足によるインスタンス作成失敗を防止することで、ディザスタリカバリを向上させます。 | |
| スポットインスタンス中断設定 | 停止 を選択し、ウェブサイトへの低レイテンシーなアクセスを確保します。節約モードからのインスタンス復旧にかかる時間は、新規インスタンス作成にかかる時間より短くなります。 | |
| 高度な設定 | グループタイプ | 継続的配信およびキャパシティ維持 を選択し、チケット販売サービスを継続的に提供します。 |
| 開始時刻 および 終了時刻 | 自動プロビジョニンググループは即時に開始され、無期限に保持可能であり、チケット販売サービスを継続的に提供できます。 | |
| スポットインスタンスのグローバル最大価格 | 自動入札 を選択し、クラスター内のインスタンス数を安定的に維持します。 | |
| インスタンスシャットダウン設定 | ターゲットキャパシティ超過時に過剰なインスタンスをシャットダウン を選択し、コストを最小化します。 |
この構成により、9 つのリソースプール(3 インスタンスタイプ × 3 ゾーン)が形成されます:
| リソースプール | インスタンスタイプ | ゾーン |
|---|---|---|
| 1 | ecs.c6.large | 杭州ゾーン H |
| 2 | ecs.c6.xlarge | 杭州ゾーン H |
| 3 | ecs.c6.2xlarge | 杭州ゾーン H |
| 4 | ecs.c6.large | 杭州ゾーン I |
| 5 | ecs.c6.xlarge | 杭州ゾーン I |
| 6 | ecs.c6.2xlarge | 杭州ゾーン I |
| 7 | ecs.c6.large | 杭州ゾーン J |
| 8 | ecs.c6.xlarge | 杭州ゾーン J |
| 9 | ecs.c6.2xlarge | 杭州ゾーン J |
バランス配分ポリシーの動作
ターゲットキャパシティが vCPU 数で測定される場合、各インスタンスタイプの重みはその vCPU 数と等しくなります。
| インスタンスタイプ | vCPU 数 | 従量課金価格(USD) | 重み | 加重価格(USD) |
|---|---|---|---|---|
| ecs.c6.large | 2 | 0.06 時間あたり | 2 | 1 時間あたり 0.03 USD |
| ecs.c6.xlarge | 4 | 0.121 時間あたり | 4 | 0.03025 時間あたり |
| ecs.c6.2xlarge | 8 | 0.241 時間あたり | 8 | 0.030125 時間あたり |
価格は参考用です。実際の価格は購入ページに準拠します。
このグループは、以下の割り当て手順に従います:
ゾーン間での分散:杭州ゾーン H、ゾーン I、およびゾーン J に均等にインスタンスを作成します。
加重価格による選択:各ゾーン内で、加重価格が低いインスタンスタイプを優先します。
同点時のランダム選択:加重価格が同一の場合、インスタンスタイプをランダムに選択します。
API 操作の呼び出しによる構成
CreateAutoProvisioningGroup API 操作を使用して、プログラムによる自動プロビジョニンググループの作成を行います。
例 1:最低価格プールへの分散
コストを最小化し、単一リソースプールの使用に起因するスポットインスタンスの再割り当て影響を軽減する場合は、自動プロビジョニンググループを、最も低価格の複数のリソースプールを使用してインスタンスを作成するように構成できます。
目的:
起動テンプレートから 5 つのリソースプールを使用して 30 台のスポットインスタンスを作成する
最も安価な 3 つのプールを使用し、各プールから 10 台ずつ作成する
API パラメーター:
| パラメーター | 値 | 説明 |
|---|---|---|
TotalTargetCapacity | 30 | 合計ターゲット:30 インスタンス |
SpotTargetCapacity | 30 | 30 インスタンスすべてがスポットインスタンス |
PayAsYouGoTargetCapacity | 0 | 従量課金インスタンスなし |
SpotAllocationStrategy | lowest-price | 価格に基づきプールを選択(価格が最も低いものから順に) |
SpotInstancePoolsToUseCount | 3 | 利用可能な 5 つのプールのうち、最も安価な 3 つを使用 |
PayAsYouGoAllocationStrategy | lowest-price | 従量課金のコスト最適化(本例では使用されません。値が 0 のため) |
LaunchTemplateId | lt-bp1ivgo4p5now3px**** | ベースとなるインスタンス設定を定義する起動テンプレート |
リソースプール構成(LaunchTemplateConfig):
| プール | パラメーター接頭辞 | vSwitch ID | インスタンスタイプ | 加重キャパシティ |
|---|---|---|---|---|
| 1 | LaunchTemplateConfig.1 | vsw-bp1ygryo03m39xhsy**** | ecs.c6e.large | 1 |
| 2 | LaunchTemplateConfig.2 | vsw-bp16hgf8f3kvtcbyu**** | ecs.c6e.xlarge | 1 |
| 3 | LaunchTemplateConfig.3 | vsw-bp1oeawdo9tj2gvjp**** | ecs.c6e.2xlarge | 1 |
| 4 | LaunchTemplateConfig.4 | vsw-bp1oeawdo9tj2gvjp**** | ecs.g6e.xlarge | 1 |
| 5 | LaunchTemplateConfig.5 | vsw-bp1oeawdo9tj2gvjp**** | ecs.g6e.2xlarge | 1 |
結果:このグループは、現在のスポット価格に基づき 5 つのプールをすべてランキングし、最も安価な 3 つのプールからインスタンスを作成し、各プールに 10 台ずつ割り当てます。
例 2:特定のリソースプールの優先指定
自動プロビジョニンググループを、特定のリソースプールを優先的に使用してインスタンスを作成するように構成できます。たとえば、ecs.c6e.large インスタンスに適用可能なリザーブドインスタンスを使用している場合、自動プロビジョニンググループを ecs.c6e.large インスタンスタイプを優先的に選択するように構成することで、リザーブドインスタンスによる課金割引の恩恵を受けることができます。
目的:
20 台のインスタンスを作成:スポットインスタンス 10 台、従量課金インスタンス 10 台
従量課金インスタンスは、まず ecs.c6e.large プールから作成(優先度 0 = 最高)
API パラメーター:
| パラメーター | 値 | 説明 |
|---|---|---|
TotalTargetCapacity | 20 | 合計ターゲット:20 インスタンス |
SpotTargetCapacity | 10 | スポットインスタンス 10 台 |
PayAsYouGoTargetCapacity | 10 | 従量課金インスタンス 10 台 |
SpotAllocationStrategy | lowest-price | スポットプールを価格に基づき選択 |
PayAsYouGoAllocationStrategy | prioritized | プールの優先順位に基づき従量課金インスタンスを作成 |
LaunchTemplateId | lt-bp1ivgo4p5now3px**** | 起動テンプレート |
リソースプール構成(LaunchTemplateConfig):
| プール | パラメーター接頭辞 | vSwitch ID | インスタンスタイプ | 加重キャパシティ | 優先順位 |
|---|---|---|---|---|---|
| 1 | LaunchTemplateConfig.1 | vsw-bp1ygryo03m39xhsy**** | ecs.c6e.large | 1 | 0(最高) |
| 2 | LaunchTemplateConfig.2 | vsw-bp16hgf8f3kvtcbyu**** | ecs.c6e.xlarge | 1 | — |
| 3 | LaunchTemplateConfig.3 | vsw-bp1oeawdo9tj2gvjp**** | ecs.c6e.2xlarge | 1 | — |
| 4 | LaunchTemplateConfig.4 | vsw-bp1oeawdo9tj2gvjp**** | ecs.g6e.xlarge | 1 | — |
| 5 | LaunchTemplateConfig.5 | vsw-bp1oeawdo9tj2gvjp**** | ecs.g6e.2xlarge | 1 | — |
結果:このグループは、ecs.c6e.large プール(優先度 0)から 10 台の従量課金インスタンスを作成します。このプールのキャパシティが不足している場合、プール 2~5 へフォールバックします。スポットインスタンスは、最も安価な利用可能なプールから作成されます。
優先度値0は最高優先度を示します。prioritized割り当て戦略を使用するプールにのみ、優先度を設定してください。