AWS オートスケーリングは AZ 間でスポットインスタンスをどのように分散しますか?

AWS オートスケーリングは AZ 間でスポットインスタンスをどのように分散しますか?

スポットインスタンス入札が定義された、複数の AZ にインスタンスを分散する AWS Autoscaling グループを使用しています。

いずれかの AZ でスポット価格が急騰し、その AZ のインスタンスがスポット価格を下回って終了した場合、どうなるでしょうか?

オートスケーリング グループは、AZ 間でインスタンスを均等にバランスさせようとしますか? その AZ で価格が再び一致するまで待機しますか?

それに関する文書は見つかりません。

答え1

私の経験では、自動スケーリング グループは常に、使用しているすべてのアベイラビリティ ゾーンで同じ数のインスタンスを実行しようとします。起動構成で指定されたタイプのインスタンスがないアベイラビリティ ゾーンを誤って追加したため、ASG は他の場所で比例して多くのインスタンスを起動することなく、そのゾーンでインスタンスを起動しようとし続けました。

答え2

AutoScaling は常に高可用性を維持しようとします。これを実現する主な方法は、インスタンスを AZ (アベイラビリティ ゾーン) 全体に均等に分散させることです。ただし、特定のインスタンス タイプを AZ で起動できない場合は、別の AZ にフェイルオーバーします (スポット価格/可用性、停止、またはオンデマンド可用性の不足による)。必要な容量に達した後、使用率の低い AZ で定期的に新しいインスタンスを起動して、グループのバランスを再調整します。 https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage

複数のインスタンス タイプと購入オプションを備えた ASG を使用する場合、まず設定に基づいてスポット インスタンスを起動するかオンデマンド インスタンスを起動するかが判断されます。次に、割り当て戦略に基づいて選択したインスタンス タイプの 1 つを起動しようとします。優先インスタンス タイプが利用できない場合は、その AZ 内のすべてのインスタンス タイプを試します。その AZ で利用できるインスタンス タイプがない場合は、他の AZ を試し続けます。この方法では、インスタンスを取得できないためには、インスタンスを起動できないさまざまな容量プールがかなり多く存在する必要があります。

選択したインスタンス タイプのいずれかに対して、すべての AZ にスポット容量がない場合、スポットからオンデマンドにフェイルオーバーは行われません。

詳細はこちら

関連情報