スポットインスタンスの在庫が不足している場合や入札に失敗した場合、スケールアウトが遅延したり、完全にブロックされる可能性があります。コスト最適化ポリシーと複数のインスタンスタイプを組み合わせることで、優先順位付きフォールバックチェーンが構築されます。Auto Scaling は、まず利用可能な最も安価なオプションをプロビジョニングし、推奨オプションが利用できない場合は、インスタンスタイプおよび課金方法を横断してフォールバックします。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
VPC(Virtual Private Cloud)。詳細については、「VPC の作成と管理」をご参照ください。
VPC 内に、それぞれ異なるゾーンに属する複数の vSwitch。詳細については、「vSwitch の作成と管理」をご参照ください。
仕組み
コスト最適化ポリシー
スケーリンググループが複数のゾーンにまたがる場合、Auto Scaling では、優先度ポリシー、バランス配分ポリシー、コスト最適化ポリシー、またはカスタム組み合わせポリシーの 4 種類のマルチゾーンスケーリングポリシーのいずれかを適用できます。詳細については、「スケーリンググループの管理」をご参照ください。
コスト最適化ポリシーでは、すべての利用可能なインスタンスタイプを vCPU 単位価格でランキングし、最も安価なオプションから順にプロビジョニングします。スポットインスタンスが設定されている場合、Auto Scaling はまずスポットインスタンスを試行します。特定のインスタンスタイプについてスポット容量が利用できない場合は、Auto Scaling はそのタイプの従量課金インスタンスへフォールバックします。
マルチゾーンスケーリングポリシーは、VPC 内のスケーリンググループにのみ適用されます。
複数のインスタンスタイプ
スケーリング設定では、最大 10 個のインスタンスタイプを優先度順に指定できます。Auto Scaling が最高優先度のインスタンスタイプによるインスタンスのプロビジョニングに失敗した場合(在庫不足など)、自動的にリスト内の次のインスタンスタイプを試行します。複数のインスタンスタイプを組み合わせることで、在庫不足によるスケールアウト失敗の確率を大幅に低減できます。
vCPU 数、メモリ、プロセッサ周波数、内部帯域幅、パケット転送速度が類似したインスタンスタイプを選択してください。I/O 最適化インスタンスと非 I/O 最適化インスタンスを同一のスケーリング設定内で混在させると、スケールアウト成功率の向上が保証されません。
コスト最適化ポリシーと複数のインスタンスタイプの連携動作
これらの 2 つの機構は、異なる障害モードに対処します。
| 機構 | 問題が解決しました | 動作の仕組み |
|---|---|---|
| コスト最適化ポリシー | 高いコンピューティングコスト | すべてのインスタンスタイプおよび課金方法の組み合わせを vCPU 単位価格でランキングし、最も安価なオプションから順にプロビジョニング |
| 複数のインスタンスタイプ | 在庫不足 | 推奨インスタンスタイプに利用可能な容量がない場合、次のインスタンスタイプへフォールバック |
これらを併用することで、コスト削減を最大化しつつ、スケールアウトの信頼性を確保する優先順位付きフォールバックチェーンが構築されます。
複数のインスタンスタイプを活用したコスト最適化スケーリングの設定
ステップ 1:ECS スケーリンググループの作成
Elastic Compute Service (ECS) 型のスケーリンググループを作成します。詳細については、「スケーリンググループの管理」をご参照ください。
以下のパラメーターを設定します。
| パラメーター | 値 |
|---|---|
| ネットワークタイプ | VPC |
| VPC | 既存の VPC を選択(例:vpc-bp1idd**** |
| vSwitch | 異なるゾーンに属する複数の vSwitch を選択(例:vsw1 および vsw2 |
| スケーリングポリシー | コスト最適化ポリシー |
vSwitch は各々単一のゾーンに属します。異なるゾーンの vSwitch を選択することで、インスタンスを複数のゾーンに分散配置でき、Auto Scaling は指定されたすべてのゾーンの合計リソース容量にアクセス可能になります。
ステップ 2:スケーリング設定の作成と有効化
ECS 型のスケーリング設定を作成します。詳細については、「ECS 型スケーリング設定の作成」をご参照ください。
以下のパラメーターを設定します。
| パラメーター | 値 |
|---|---|
| 課金方法 | スポットインスタンス |
| インスタンス構成モード | インスタンスタイプの指定 |
| インスタンスタイプ | 複数のインスタンスタイプを選択(最大 10 個) |
インスタンスタイプを選択する際は、以下の点にご注意ください。
vCPU、メモリ、プロセッサ周波数、内部帯域幅、パケット転送速度が類似したタイプを選択してください。類似した構成により、ワークロードの一貫性が各インスタンスタイプ間で確保されます。
各インスタンスタイプに対して最大入札額を設定し、スポットインスタンスの支払上限価格を制御してください。自動入札が有効な場合、Auto Scaling は市場価格に基づいてスポットインスタンスをプロビジョニングします。
I/O 最適化インスタンスと非 I/O 最適化インスタンスを混在させないでください。これらの構成には大きな差異があり、混在させてもスケールアウト成功率の向上は保証されません。
スケーリング設定の作成後、これを有効化します。
ステップ 3:スケーリンググループの有効化
ステップ 1 で作成したスケーリンググループを有効化します。
ステップ 4:スケーリングルールの作成
スケーリンググループ向けにスケーリングルールを作成します。詳細については、「スケーリングルールの設定」をご参照ください。
以下のパラメーターを設定します。
| パラメーター | 値 |
|---|---|
| ルールタイプ | シンプルスケーリングルール |
| 操作 | インスタンスを 1 台追加 |
ステップ 5:スケーリングルールの実行
スケールアウトをトリガーするために、スケーリングルールを実行します。
結果の検証
サンプル設定
ゾーン:中国 (杭州) ゾーン J および中国 (杭州) ゾーン K(ゾーンごとに 1 つの vSwitch)
インスタンスタイプ:
ecs.g8y.xlargeおよびecs.g8i.xlarge課金方法:スポットインスタンス
料金リファレンス
以下の料金は参考用です。実際の料金は、インスタンス購入ページに表示されるものが優先されます。

以下の表において、① はスポットインスタンスの市場価格、② は従量課金の市場価格です。ソリューションは vCPU 単位価格の昇順(最も安いものから最も高いものへ)で並べられています。
| ソリューション | インスタンスタイプ | 課金方法 | vCPU | 市場価格 | vCPU 単位価格 |
|---|---|---|---|---|---|
| ソリューション 1 | ecs.g8y.xlarge | Spot Instance | 4 | 0.22 USD/時間 | 0.055 USD/時間 |
| ソリューション 2 | ecs.g8i.xlarge | Spot Instance | 4 | 0.336 USD/時間 | 0.084 USD/時間 |
| ソリューション 3 | ecs.g8y.xlarge | Pay-as-you-go | 4 | 0.8 USD/時間 | 0.2 USD/時間 |
| ソリューション 4 | ecs.g8i.xlarge | Pay-as-you-go | 4 | 1.099 USD/時間 | 0.275 USD/時間 |
期待される動作
スケールアウトがトリガーされると、Auto Scaling は vCPU 単位価格が最も低いソリューション 1 からインスタンスのプロビジョニングを試行します。中国 (杭州) ゾーン K および中国 (杭州) ゾーン J の両方でインスタンス作成に失敗した場合、Auto Scaling は順次ソリューション 2、3、4 を試行します。
インスタンスの検証
結果を確認するには、スケールアウトルールを実行して ECS インスタンスを 1 台追加します。その後、以下の手順を実行します。
Auto Scaling コンソールの [インスタンス] タブで、追加されたインスタンスの ID をクリックします。
ECS コンソールで、[インスタンス詳細] タブに移動します。
以下の項目を確認します。
課金方法:従量課金-スポットインスタンス
インスタンスタイプ:ecs.g8y.xlarge

この結果より、Auto Scaling が最も安価な利用可能なオプション(ソリューション 1)を用いてインスタンスをプロビジョニングしたことが確認できます。
次のステップ
すべてのマルチゾーンスケーリングポリシーについては、「スケーリンググループの管理」をご参照ください。
さまざまなインスタンスタイプオプションを含むスケーリング設定を作成するには、「ECS 型スケーリング設定の作成」をご参照ください。