自動スケーリング ルール
このユニットでは、自動スケーリング ルールの概念について説明します。 次の演習では、ルールをトリガーします。
ルール
自動スケールは、一連のスケール条件、ルール、および制限に基づいています。 スケーリング条件は、時刻と一連のスケール ルールを組み合わせたものです。 現在の時刻がスケーリング条件で定義されている期間内にある場合、条件のスケール ルールが評価されます。 この評価の結果で、インスタンスを追加するのか、削除するのかが決まります。 スケーリング条件では、インスタンスの最大数と最小数に対するスケーリングの制限も定義します。
Azure Spring Apps 自動スケーリングを使用すると、メトリックに基づいて、実行中のインスタンスの数をスケールアウトまたはスケールインできます。 自動スケール ルールはこれらのメトリックを処理します。 状況に応じて、複雑に重複する規則を作成することができます。
自動スケーリング条件
ルールには次の 2 種類があります。
- メトリックベースのルール。
- スケジュールベースのルール
メトリックベースの種類では、設定した制限の最大値を超えない、負荷を処理するために必要な量まで、アプリとリソースの数が水平方向にスケールアウトされます。 同様に、アプリとリソースの数は設定した最小値を下回らない、負荷をサポートするために必要な量まで、水平方向にスケールインされます。
スケジュールベースのルールでは、アプリは、定義済みのスケジュールと制限に基づいてスケールインおよびスケールアウトされます。 このルールの種類は、予測可能なパターンに従うことが多いケースや、よりメトリックベースのスケーリングのベースラインを確定するのに役立ちます。
複数の自動スケーリング条件を作成して、異なるスケジュールとメトリックを処理できます。 それらの条件のいずれかが当てはまると、サービスは自動スケーリングされます。 また、他の条件が適用されない場合に使用される既定の条件を定義することもできます。 この状態は常にアクティブであり、スケジュールはありません。
自動スケーリング アクション
自動スケーリング ルールにより、メトリックがしきい値を超えたことが検出されると、自動スケーリング アクションが実行されます。 実行できる自動スケーリング アクションは、"スケールアウト" または "スケールイン" です。 スケールアウト アクションはインスタンスの数を増やし、スケールイン アクションはインスタンスの数を減らします。 自動スケーリング アクションでは、しきい値への対応方法を決定するために、演算子 ("より小さい"、"より大きい"、"等しい" など) が使用されます。 スケールアウト アクションでは、通常、大なり演算子を使用して、メトリック値をしきい値と比較します。 スケールイン アクションでは、小なり演算子を使ってメトリック値をしきい値と比較する傾向があります。 自動スケーリング アクションでは、使用可能な数を増やしたり減らしたりするのではなく、インスタンスの数を特定のレベルに設定することもできます。
自動スケーリング アクションには、指定された "クールダウン" 期間 (分単位) があります。 この期間中、スケール ルールを再度トリガーすることはできません。 このクールダウン期間は、自動スケール イベント間でシステムを安定させるためのものです。 インスタンスの起動またはシャットダウンには時間がかかるため、数分間は収集されるメトリックに大きな変化が見られない場合があることに注意してください。
スケールイン時の推定は、スケールインとスケールアウトのアクションが連続して交互に行われる "フラッピング" という状況を回避することを目的としています。 スケールアウトとスケールインに同じしきい値を使用する場合は、この動作に注意してください。