すべてのプロダクト
Search
ドキュメントセンター

Auto Scaling:予想インスタンス数

最終更新日:Sep 12, 2024

スケーリンググループの [期待インスタンス数] 機能を有効にした場合、Auto scalingはスケーリンググループ内のインスタンス数を調整して、指定した期待インスタンス数を維持します。 Auto Scalingは、並列スケーリングアクティビティも柔軟に実行します。 手動の介入は必要ありません。 このトピックでは、期待インスタンス数機能とその制限、インスタンス変更パターン、および使用例について説明します。

説明

期待されるインスタンス数機能は、指定された数のインスタンスがスケーリンググループに保持されるようにすることができます。 スケーリンググループのインスタンス予定数機能を有効にした場合、スケーリンググループ内の現在のインスタンス数が指定されたインスタンス予定数と一致しない場合、Auto scalingはスケーリンググループ内のスケーリングアクティビティを実行し、インスタンス数が指定されたインスタンス予定数と一致するようにします。 プロセス中に手動の介入は必要ありません。

メリット

期待インスタンス数機能は、スケーリンググループの使用率を向上させ、スケーリングアクティビティの実行を自動化します。これにより、次の問題が効果的に解決されます。

説明

予想インスタンス数機能の違いの詳細については、「予想インスタンス数のスケーリンググループと予想インスタンス数のないスケーリンググループの違い」をご参照ください。

  • スケーリンググループの使用率が低い。 スケーリンググループの [期待インスタンス数] 機能を有効にしない場合、スケーリンググループに進行中のスケーリングアクティビティがある場合、Auto scalingは新しいスケーリングアクティビティの実行を拒否します。

    たとえば、スケーリンググループに進行中のスケーリングアクティビティがあるときにヘルスチェック機能がスケーリンググループ内のスケーリングアクティビティをトリガーしようとすると、Auto scalingはヘルスチェック機能によってトリガーされたスケーリングアクティビティを拒否します。

  • スケーリング失敗時の手動再試行。 スケーリンググループの [期待インスタンス数] 機能を有効にしない場合は、スケーリングに失敗したときに手動でスケーリング操作を再試行する必要があります。

期待インスタンス数機能の有効化または無効化

次の方法で、期待インスタンス数機能を有効または無効にできます。

  • スケーリンググループを作成したり、既存のスケーリンググループを変更したりするときに、[期待インスタンス数] パラメーターを設定して、期待インスタンス数機能を有効にすることができます。 詳細については、「スケーリンググループの管理」をご参照ください。

    説明

    スケーリンググループのインスタンスの期待数機能を有効にすると、ビジネス要件に基づいてインスタンスの期待数を変更できます。

  • APIを呼び出して、期待インスタンス数機能を無効にできます。 詳細については、「ModifyScalingGroup」をご参照ください。

基本概念

期待インスタンス数機能を使用する前に、次の表で説明する概念を理解することをお勧めします。

コンセプト

説明

定常状態インスタンス

スケーリンググループの [サービス中][保護] 、または [スタンバイ] 状態のインスタンス。

並列スケーリングアクティビティ

スケーリンググループ内の他の進行中のスケーリングアクティビティと並行して実行できるスケーリングアクティビティ。 並列スケーリングアクティビティは、次のアクションによってトリガーできます。

  • 手動またはスケジュールタスクを使用してスケーリングルールを実行します。

  • インスタンスを手動で追加または削除します。

  • 予想されるインスタンス数、インスタンスの正常性、最小インスタンス数、および最大インスタンス数を確認します。

非並列スケーリングアクティビティ

スケーリンググループ内の他の進行中のスケーリングアクティビティと並行して実行できないスケーリングアクティビティ。 並列スケーリングアクティビティではないスケーリングアクティビティは、非並列スケーリングアクティビティです。 非並列スケーリングアクティビティは、次のアクションによってトリガーできます。

  • イベントトリガータスクを使用してスケーリングルールを実行します。

  • [インスタンス] タブで、リバランスタスクを手動で実行します。

  • プリエンプティブルインスタンスを自動的に補完します。

    説明

    スケーリンググループの作成時に [スケーリングポリシー] パラメーターを [コスト最適化ポリシー] に設定し、[補足プリエンプティブルインスタンスの有効化] スイッチをオンにすると、5分以内に再利用されるインスタンスを補完するプリエンプティブルインスタンスが作成されます。

制限事項

  • [期待インスタンス数] 機能が有効になっているスケーリンググループでは、並列スケーリングアクティビティと非並列スケーリングアクティビティを同時に実行することはできません。

  • [期待インスタンス数] パラメーターを、[最小インスタンス数] 値から [最大インスタンス数] 値の範囲の値に設定する必要があります。

予想されるインスタンス数の変更パターン

インスタンスの予定数を手動で指定できます。 スケーリングアクティビティを手動で実行して、インスタンスの予想数を変更することもできます。 予想されるインスタンス数の変更パターンは、スケーリングアクティビティのトリガー方法によって異なります。

スケーリングアクティビティタイプ

スケーリングアクティビティをトリガーするメソッド

スケーリングアクティビティ結果

変更パターン

並列スケーリングアクティビティ

スケーリングルールを手動で実行します。

予想されるインスタンス数のみが変更されます。 インスタンスを追加するか削除するかを決定するために、Auto Scalingが新しいインスタンスの予想数のチェックを実行するのを待つ必要があります。

定常状態インスタンスの数 ± スケーリング済みインスタンスの数

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

add3スケーリングルールは、4つのECSインスタンスを作成することを指定します。

Result:

インスタンスの予想数は6に変更されますが、Elastic Compute Service (ECS) インスタンスはすぐには作成されません。 インスタンスを作成するかどうかを決定するために、Auto Scalingがインスタンスの予想数を確認するのを待つ必要があります。

スケジュールタスクを使用してスケーリングルールを実行します。

予想されるインスタンス数のみが変更されます。 インスタンスを追加するか削除するかを決定するために、Auto Scalingが新しいインスタンスの予想数を確認するのを待つ必要があります。

定常状態インスタンスの数 ± スケーリング済みインスタンスの数

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

add3スケーリングルールは、4つのECSインスタンスを作成することを指定します。

Result:

インスタンスの予想数は6に変更されますが、ECSインスタンスはすぐには作成されません。 インスタンスを作成するかどうかを決定するために、Auto Scalingがインスタンスの予想数を確認するのを待つ必要があります。

インスタンスを手動で追加します。

インスタンスはすぐに追加され、インスタンスの予想数が変更されます。

現在のインスタンス数 + 手動で追加されたインスタンス数

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

スケーリンググループに4つのECSインスタンスを手動で追加します。

Result:

4つのECSインスタンスがスケーリンググループに追加されます。 定常状態インスタンスの数は6に変更され、インスタンスの予想数は7に変更されます。

インスタンスを手動で削除します。

インスタンスはすぐに削除され、インスタンスの予想数が変更されます。

現在のインスタンス数-手動で削除されたインスタンス数

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

スケーリンググループから1つのECSインスタンスを手動で削除します。

Result:

スケーリンググループから1つのインスタンスが削除されます。 定常状態インスタンスの数が1に変更され、インスタンスの予想数が2に変更されます。

インスタンスの最小数と最大数を確認します。

-

手動で指定する

シナリオ:

  • 現在のインスタンスの最大数: 5

  • 現在の最小インスタンス数: 0

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

インスタンスの最大数を1に変更しようとします。

Result:

最大数の変更に失敗しました。 予想されるインスタンス数を同時に変更する必要があります。

インスタンスのヘルスステータスを確認します。

インスタンスは、スケーリンググループから直ちに削除されます。

インスタンスの予想数は変更されません。

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

1つのECSインスタンスは異常と見なされます。

Result:

インスタンスの予想数は変更されません。 異常なインスタンスがスケーリンググループから削除され、定常状態のインスタンスの数が1に変更されます。 Auto Scalingは、予想されるインスタンス数と定常状態のインスタンス数の差を検出し、予想されるインスタンス数のヘルスステータスをチェックして2つのECSインスタンスを作成します。

予想されるインスタンス数を確認します。

インスタンスは、スケーリンググループに即座に追加または削除されます。

インスタンスの予想数は変更されません。

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

Result:

インスタンスの予想数は変更されません。 Auto Scalingは、予想されるインスタンス数と定常状態のインスタンス数の差を検出し、予想されるインスタンス数をチェックして1つのECSインスタンスを作成します。

非並列スケーリングアクティビティ

イベントトリガータスクを使用してスケーリングルールを実行します。

インスタンスはスケーリンググループに即座に追加または削除され、指定されたインスタンスの予想数が変更されます。

定常状態インスタンスの数 ± スケーリング済みインスタンスの数

シナリオ:

  • 現在のインスタンス数: 3

  • 現在の定常状態インスタンス数: 2

add3スケーリングルールは、4つのECSインスタンスを作成することを指定します。

Result:

スケーリングアクティビティがトリガーされて4つのインスタンスが作成され、インスタンスの予想数は6に変更されます。

説明

インスタンス数を指定する方法の詳細については、「並列スケーリングアクティビティの例」および「非並列スケーリングアクティビティの例」をご参照ください。

インスタンス数が予想されるスケーリンググループとインスタンス数が予想されないスケーリンググループの違い

次の表に、インスタンス数が予想されるスケーリンググループとインスタンス数が予想されないスケーリンググループの違いを示します。

項目

予想されるインスタンス数

予想されるインスタンス数なし

メンテナンスコスト

自動メンテナンス: Auto Scalingは、インスタンスを自動的にスケーリングして、スケーリンググループ内のインスタンスの予想数を維持します。 スケーリンググループでスケーリングアクティビティが失敗した場合、Auto scalingは失敗したスケーリングアクティビティを自動的に再試行します。

手動メンテナンス: スケーリンググループ内のインスタンス数を手動で調整する必要があります。 スケーリンググループでスケーリングアクティビティが失敗した場合は、失敗したスケーリングアクティビティを手動で再試行する必要があります。

スケーリングアクティビティの実行結果

スケーリングアクティビティの実行結果は、スケーリングルールの実行方法によって異なります。

  • スケーリングルールを手動で実行する場合、またはスケジュールされたタスクを使用してスケーリンググループでスケーリングルールを実行する場合、Auto scalingはすぐにはスケーリングアクティビティをトリガーしません。 Auto Scalingは、インスタンスの予想数を自動的に変更するだけです。 インスタンスの予想数のチェック中に、Auto Scalingは定常状態インスタンスの数と予想インスタンス数の差を計算し、その差に基づいてインスタンスをスケーリングします。

  • インスタンスをスケーリンググループに手動で追加または削除したり、インスタンスを手動で削除したり、イベントトリガータスクを使用してスケーリングルールを実行したりすると、Auto scalingはすぐにスケーリングアクティビティをトリガーし、インスタンスの予想数を自動的に変更します。

スケーリングルールを手動で実行する場合、イベントトリガータスクまたはスケジュールタスクを使用してスケーリングルールを実行する場合、スケーリンググループにインスタンスを手動で追加または削除する場合、またはインスタンスを手動で削除する場合、Auto scalingはすぐにスケーリングアクティビティをトリガーしてインスタンスを追加または削除します。

並列スケーリングアクティビティの実行

スケーリンググループは、並列スケーリングアクティビティの実行をサポートします。 詳細については、「並列スケーリングアクティビティの例」をご参照ください。

スケーリンググループは、一度に1つのスケーリングアクティビティのみをサポートします。 スケーリングアクティビティの実行に時間がかかる場合があります。 この期間中は、スケーリンググループ内のインスタンス数を調整することはできません。

並列スケーリングアクティビティの例

インスタンス数を指定すると、Auto Scalingは並列スケーリングアクティビティを同時に実行できます。

  • 例1: 手動でスケーリングルールを連続して実行する

    シナリオ:

    • 予想インスタンス数: 3

    • 定常状態インスタンスの数: 3

    • add3スケーリングルールは、3つのECSインスタンスを作成することを指定します。

    • add1スケーリングルールは、1つのECSインスタンスを作成することを指定します。

    • add3スケーリングルールとadd1スケーリングルールを順番に手動で実行します。

    結果: add3スケーリングルールが実行されると、インスタンスの予想数は3から6に変更されます。 add1スケーリングルールを実行すると、インスタンスの予想数は6から4に変更されます。 並列スケーリングアクティビティの目的は、1つのECSインスタンスを作成することです。 スケーリングアクティビティが完了すると、スケーリンググループ内の定常状態インスタンスの数は4になります。 示例1

  • 例2: スケーリングルールを手動で実行し、同時にインスタンスを追加する

    シナリオ:

    • 予想インスタンス数: 3

    • 定常状態インスタンスの数: 3

    • add1スケーリングルールは、1つのECSインスタンスを作成することを指定します。

    • add1スケーリングルールを手動で実行し、同時に既存のECSインスタンスを追加します。

    結果: add1スケーリングルールが実行されると、インスタンスの予想数が3から4に変更されます。 既存のECSインスタンスをスケーリンググループに追加すると、インスタンスの予想数は4から5に変更されます。 並列スケーリングアクティビティの目的は、1つのECSインスタンスを作成し、既存のECSインスタンスを追加することです。 スケーリングアクティビティが完了すると、定常状態のインスタンスの数は5に変更されます。 示例2

非並列スケーリングアクティビティの例

インスタンス数を指定すると、Auto Scalingは並列および非並列のスケーリングアクティビティを同時に実行できません。 例:

シナリオ:

  • 期待インスタンス数: 1

  • 定常状態インスタンスの数: 1。

  • イベントトリガータスクに関連付けられたスケーリングルールは、3つのECSインスタンスを作成することを指定しています。

  • add1スケーリングルールは、1つのECSインスタンスを作成することを指定します。

  • イベントトリガータスクをトリガーしてから、add1スケーリングルールを手動で実行します。

結果: イベントトリガータスクが有効になり、インスタンスの予想数が1から4に変更されます。 イベントトリガータスクによってトリガーされるスケーリングアクティビティは非並列スケーリングアクティビティであるため、add1スケーリングルールの実行要求は拒否されます。 インスタンスの予想数は4のままです。 非並列スケーリングアクティビティの目的は、3つのECSインスタンスを作成することです。 非並列スケーリングアクティビティが完了すると、定常状態インスタンスの数は4になります。非并行活动示例