スケーリングルールが実行されたとき、またはElastic Compute Service (ECS) インスタンスまたはelastic containerインスタンスが手動でスケーリンググループに追加または削除されたときに、スケーリングアクティビティがトリガーされます。 スケーリングアクティビティがトリガーされると、Auto scalingはスケールアウトまたはスケールイン操作を実行します。 このトピックでは、スケーリングアクティビティのプロセスとステータスについて説明します。 このトピックでは、ECSインスタンスのロールバックについても説明します。 このトピックでは、例としてECSタイプのスケーリンググループを使用します。
活動プロセスのスケーリング
自動トリガースケーリングアクティビティのプロセス
スケールアウトルールを実行してスケーリンググループにECSインスタンスを自動的に作成するプロセス
スケーリンググループのヘルスステータスと境界値を確認します。 境界値には、スケーリンググループに含める必要のあるインスタンスの最小数と、スケーリンググループに含めることができるインスタンスの最大数が含まれます。
スケーリングアクティビティIDを割り当て、スケーリングアクティビティを開始します。
ECS インスタンスを作成します。
スケーリンググループ内のインスタンス数を変更します。
新しく作成したECSインスタンスにIPアドレスを割り当てます。
(オプション) 新しく作成されたECSインスタンスのIPアドレスを、関連付けられたApsaraDB RDSインスタンスのIPアドレスホワイトリストに追加します。
新しく作成したECSインスタンスを起動します。
(オプション) 新しく作成されたECSインスタンスを、バックエンドサーバーとして関連するClassic Load Balancer (CLB) (旧称Server Load BalancerまたはSLB) インスタンスにアタッチし、スケーリング設定に基づいてECSインスタンスのCLB重みを設定します。
スケールアウトを完了し、クールダウン期間機能を有効にします。
スケールインルールを実行してスケーリンググループからECSインスタンスを削除するプロセス
スケーリンググループのヘルスステータスと境界値を確認します。 境界値には、スケーリンググループに含める必要のあるインスタンスの最小数と、スケーリンググループに含めることができるインスタンスの最大数が含まれます。
スケーリングアクティビティIDを割り当て、スケーリングアクティビティを開始します。
(オプション) 関連付けられたCLBインスタンスからECSインスタンスをデタッチします。
ECSインスタンスを [停止済み] 状態にします。
(オプション) 関連するApsaraDB RDSインスタンスのIPアドレスホワイトリストからECSインスタンスのIPアドレスを削除します。
ECS インスタンスをリリースします。
スケーリンググループ内のインスタンス数を変更します。
スケールインを完了し、クールダウン期間機能を有効にします。
手動でトリガーされるスケーリングアクティビティのプロセス
独立したECSインスタンスをスケーリンググループに手動で追加するプロセス
ヘルスチェックタスクを実行して、スケーリンググループのヘルスステータスを確認し、境界値、ECSインスタンスタイプ、およびECSインスタンスステータスも確認します。
スケーリングアクティビティIDを割り当て、スケーリングアクティビティを開始します。
ECSインスタンスをスケーリンググループに追加します。
スケーリンググループ内のインスタンス数を変更します。
(オプション) 新しく作成されたECSインスタンスのIPアドレスを、関連付けられたApsaraDB RDSインスタンスのIPアドレスホワイトリストに追加します。
(オプション) ECSインスタンスをバックエンドサーバーとして関連付けられたCLBインスタンスにアタッチし、スケーリング設定に基づいてバックエンドサーバーのCLB重みを設定します。
スケールアウトを完了し、クールダウン期間機能を有効にします。
スケーリンググループからECSインスタンスを手動で削除するプロセス
スケーリンググループのヘルスステータスと境界値を確認します。 境界値には、スケーリンググループに含める必要のあるインスタンスの最小数と、スケーリンググループに含めることができるインスタンスの最大数が含まれます。
スケーリングアクティビティIDを割り当て、スケーリングアクティビティを開始します。
(オプション) ECSインスタンスへのトラフィックの転送を停止します。 ECSインスタンスは、60秒後にCLBインスタンスからデタッチされます。
(オプション) 関連するApsaraDB RDSインスタンスのIPアドレスホワイトリストからECSインスタンスのIPアドレスを削除します。
スケーリンググループ内のインスタンス数を変更します。
スケーリンググループからECSインスタンスを削除します。
スケールインを完了し、クールダウン期間機能を有効にします。
スケーリングアクティビティのステータス
次の表は、スケーリングアクティビティが入力できる状態を示しています。
ステータス | 説明 | 例 |
拒否 | スケーリングアクティビティの実行要求は拒否されます。 スケールインまたはスケールアウトは実行されません。 説明 [ステータス] 列の [拒否理由の表示] をクリックすると、原因を確認できます。 | シナリオ:
Result: スケーリング条件は満たされておらず、スケールアウト要求は拒否されます。 後続のプロセスは実行されず、スケーリンググループには引き続き100のECSインスタンスが含まれます。 |
実行中 | スケーリング条件が満たされ、スケーリングアクティビティが進行中です。 Auto Scalingは、スケーリンググループの境界値に基づいて、スケーリングするECSインスタンスの数を調整します。 | シナリオ:
Result: スケーリング条件が満たされ、スケーリングアクティビティが許可されています。 ただし、Auto Scalingは5つのECSインスタンスのみを作成します。 スケールアウトが完了すると、スケーリンググループには100のECSインスタンスが含まれます。 |
成功しました | スケーリングアクティビティが完了し、すべてのECSインスタンスがスケーリンググループに追加または削除されます。 | シナリオ:
Result: スケーリング条件が満たされ、スケールアウトが許可されています。 スケールアウトが完了すると、スケーリンググループには100のECSインスタンスが含まれます。 |
警告 | スケーリングアクティビティは完了です。 ただし、少なくとも1つのECSインスタンスがスケーリンググループに追加または削除され、少なくとも1つのECSインスタンスがスケーリンググループに追加または削除されない場合があります。 ECSインスタンスが作成され、ECSインスタンスが関連付けられたCLBインスタンスにアタッチされ、ECSインスタンスのIPアドレスが関連付けられたApsaraDB RDSインスタンスのIPアドレスホワイトリストに追加された場合にのみ、ECSインスタンスがスケーリンググループに正常に追加されたと見なされます。 そうでない場合、ECSインスタンスはスケーリンググループに追加されません。 説明 ECSインスタンスのスケーリンググループへの追加に失敗した場合、ロールバックがトリガーされます。 詳細は、「ECSインスタンスのロールバック」をご参照ください。 | シナリオ:
Result: スケーリング条件が満たされ、スケールアウトが許可されています。 ただし、CLBインスタンスには最大200台のバックエンドサーバーを使用できます。 この場合、4つのECSインスタンスがCLBインスタンスにアタッチされず、スケーリンググループに追加されません。 スケールアウトが完了すると、スケーリンググループには200のECSインスタンスが含まれます。 |
失敗しました | スケーリングアクティビティは完了しましたが、すべてのECSインスタンスをスケーリンググループに追加または削除できません。 | シナリオ:
結果: スケーリング条件が満たされ、スケールアウトが許可されています。 ただし、インスタンスタイプが不十分なため、インスタンスの作成に失敗します。 スケールアウトが完了した後も、スケーリンググループには95個のECSインスタンスが含まれています。 |
ECSインスタンスのロールバック
特定の数のECSインスタンスをスケーリンググループに追加できない場合、Auto scalingはスケーリングアクティビティが完了するまでスケーリング操作を続行します。 スケーリンググループへの追加に失敗したECSインスタンスはロールバックされます。
スケーリンググループ内のECSインスタンスがロールバックされると、スケーリンググループは期待される容量に達しません。 つまり、スケーリンググループは必要な計算能力を提供できず、モニタリングメトリックを必要な値に維持できません。 この場合、他の方法を使用してECSインスタンスの数を追加し、スケーリンググループがビジネス要件を満たしていることを確認できます。 たとえば、スケーリングルールを手動でトリガーしたり、独立したECSインスタンスをスケーリンググループに手動で追加したり、スケジュールまたはイベントでトリガーされるタスクを設定してスケーリングアクティビティをトリガーしたりできます。
自動的に追加されるECSインスタンス
RAM (Resource Access Management) ユーザーとしてECSインスタンスを作成するためのAPI操作を呼び出すと、ECSインスタンスがリリースされるまで、ロールバックされたECSインスタンスに対して課金されます。
たとえば、スケーリンググループと、スケーリンググループに関連付けられているCLBインスタンスのバックエンドサーバーグループに5つのECSインスタンスを追加するとします。 5つのインスタンスを作成すると、2つのインスタンスのみがスケーリンググループに追加されます。 3つのインスタンスの追加に失敗し、自動的にリリースされます。 Auto Scalingは、スケーリングアクティビティのステータスが警告であっても、スケーリングアクティビティが完了したと見なします。
手動で追加されたECSインスタンス
Auto Scalingは、スケーリンググループからロールバックされたECSインスタンスを自動的に削除します。 ただし、ロールバックされたECSインスタンスはリリースされません。