スケーリングルールが実行されたり、ECS インスタンスまたは ECI インスタンスを手動で追加または削除したりすると、スケーリングアクティビティがトリガーされます。Auto Scaling は、インスタンスの作成、削除、ロールバックなど、すべてのスケールアウトおよびスケールイン操作を自動的に完了します。
スケーリングアクティビティのワークフロー
自動スケーリングのワークフロー
-
ECS インスタンスの自動作成
-
スケーリンググループのヘルスステータスや境界条件(最大インスタンス数や最小インスタンス数など)を確認します。
-
スケーリングアクティビティ ID を割り当て、スケーリングアクティビティを実行します。
-
ECS インスタンスを作成します。
-
スケーリンググループ内のインスタンス数を更新します。
-
ECS インスタンスに IP アドレスを割り当てます。
-
(オプション) ECS インスタンスを ApsaraDB for RDS インスタンスのホワイトリストに追加します。
-
ECS インスタンスを起動し、起動完了を待ちます。
-
(オプション) ECS インスタンスをクラシックロードバランサー (CLB) インスタンスのバックエンドサーバーグループに追加します。重みは、スケーリング設定で指定された値に設定されます。
-
スケーリングアクティビティが完了します。クールダウンが開始されます。
-
-
ECS インスタンスの自動削除
-
スケーリンググループのヘルスステータスや境界条件(最大インスタンス数や最小インスタンス数など)を確認します。
-
スケーリングアクティビティ ID を割り当て、スケーリングアクティビティを実行します。
-
(オプション) ECS インスタンスをクラシックロードバランサー (CLB) インスタンスのバックエンドサーバーグループから削除します。
-
ECS インスタンスを停止し、停止完了を待ちます。
-
(オプション) ECS インスタンスを ApsaraDB for RDS インスタンスのホワイトリストから削除します。
-
ECS インスタンスをリリースします。
-
スケーリンググループ内のインスタンス数を更新します。
-
スケーリングアクティビティが完了します。クールダウンが開始されます。
-
手動スケーリングのワークフロー
-
ECS インスタンスの手動追加
-
スケーリンググループのヘルスステータスや境界条件(最大インスタンス数や最小インスタンス数など)、および ECS インスタンスのステータスとタイプを確認します。
-
スケーリングアクティビティ ID を割り当て、スケーリングアクティビティを実行します。
-
ECS インスタンスをスケーリンググループに追加します。
-
スケーリンググループ内のインスタンス数を更新します。
-
(オプション) ECS インスタンスを ApsaraDB for RDS インスタンスのホワイトリストに追加します。
-
(オプション) ECS インスタンスをクラシックロードバランサー (CLB) インスタンスのバックエンドサーバーグループに追加します。重みは、スケーリンググループのアクティブなスケーリング設定で指定された値に設定されます。
-
スケーリングアクティビティが完了します。クールダウンが開始されます。
-
-
ECS インスタンスの手動削除
-
スケーリンググループのヘルスステータスや境界条件(最大インスタンス数や最小インスタンス数など)を確認します。
-
スケーリングアクティビティ ID を割り当て、スケーリングアクティビティを実行します。
-
(オプション) クラシックロードバランサー (CLB) インスタンスが ECS インスタンスへのトラフィック転送を停止します。60 秒後、ECS インスタンスは CLB インスタンスのバックエンドサーバーグループから削除されます。
-
(オプション) ECS インスタンスを ApsaraDB for RDS インスタンスのホワイトリストから削除します。
-
スケーリンググループ内のインスタンス数を更新します。
-
ECS インスタンスをスケーリンググループから削除します。
-
スケーリングアクティビティが完了します。クールダウンが開始されます。
-
スケーリングアクティビティのステータス
スケーリングアクティビティには、以下のステータスがあります。
|
ステータス |
説明 |
例 |
|
拒否 |
スケーリングアクティビティのリクエストが拒否されました。スケールアウトまたはスケールイン操作は実行されません。 説明
拒否 ステータスの横にある 拒否の理由を表示 をクリックすると、アクティビティが拒否された理由を確認できます。 |
シナリオ:
結果:スケーリングアクティビティは条件チェックに失敗し、拒否されます。その後の操作は一切実行されません。アクティビティ終了後、スケーリンググループ内のインスタンス数は 100 のままです。 |
|
実行中 |
スケーリングアクティビティは条件チェックを通過し、進行中です。 Auto Scaling は、スケーリンググループの最大および最小インスタンス数に基づいて、追加または削除するインスタンス数を調整します。 |
シナリオ:
結果:スケーリングアクティビティは条件チェックを通過して実行されますが、作成される ECS インスタンスの数は 5 に調整されます。アクティビティ終了後、スケーリンググループ内のインスタンス数は 100 になります。 |
|
成功しました |
スケーリングアクティビティが正常に完了し、対象のすべての ECS インスタンスがスケーリンググループに追加または削除されました。 |
シナリオ:
結果:スケーリングアクティビティは条件チェックを通過して実行されます。アクティビティ終了後、スケーリンググループ内のインスタンス数は 100 になります。 |
|
警告 |
スケーリングアクティビティは完了しましたが、一部のみ成功しています。少なくとも 1 つのインスタンスが追加または削除された一方で、少なくとも 1 つの他のインスタンスが失敗しています。 ECS インスタンスが正常に追加されるためには、次のすべてのステップが完了する必要があります:インスタンスの作成、クラシックロードバランサー (CLB) のバックエンドサーバーグループへの追加、ApsaraDB for RDS インスタンスのホワイトリストへの追加。いずれかのステップが失敗した場合、そのインスタンスはスケーリンググループに参加できません。 説明
ECS インスタンスがスケーリンググループに参加できない場合、ロールバックがトリガーされます。詳細については、「ECS インスタンスのロールバック」をご参照ください。 |
シナリオ:
結果:アクティビティは条件チェックを通過し、5 個の ECS インスタンスが作成されます。ただし、CLB インスタンスのバックエンドサーバーのクォータが 200 であるため、新しいインスタンスを 1 つだけ追加できます。残りの 4 つはバックエンドサーバーグループに参加できず、ロールバックされます。アクティビティ終了後、スケーリンググループ内のインスタンス数は 200 になります。 |
|
失敗しました |
スケーリングアクティビティは完了しましたが、対象の ECS インスタンスはスケーリンググループに追加または削除されていません。 |
シナリオ:
結果:アクティビティは条件チェックを通過しますが、在庫不足によりインスタンスの作成に失敗します。アクティビティ終了後、スケーリンググループ内のインスタンス数は 95 のままです。 |
ECS インスタンスのロールバック
スケーリングアクティビティ中にすべての ECS インスタンスがスケーリンググループに参加できない場合、Auto Scaling はアクティビティ全体ではなく、失敗したインスタンスのみをロールバックします。
ECS インスタンスのロールバックが発生すると、スケーリンググループのインスタンス数が希望の数に満たない可能性があり、計算容量やメトリクス目標値に影響を与えることがあります。これを補うために、スケーリングルールを手動で実行する、既存の ECS インスタンスを手動で追加する、スケジュールタスクまたは監視タスクを設定するなどの方法でインスタンスを追加してください。
-
自動追加された ECS インスタンス
OpenAPI を使用して ECS インスタンスをエラスティックに作成する場合、Auto Scaling は Alibaba Cloud Resource Access Management (RAM) を利用します。ロールバックされたインスタンスについては、作成時から自動リリースされるまでの間、課金されます。
たとえば、スケーリングアクティビティでロードバランサーのバックエンドサーバーグループにも参加する必要がある 5 個の ECS インスタンスを作成し、そのうち 2 個のみが成功した場合、失敗した 3 個のインスタンスは自動的にリリースされます。このアクティビティは 警告 ステータスで完了します。スケーリングアクティビティ ページでは、アクティビティのステータス(成功、警告、または 失敗)、インスタンス数、その他の詳細を確認できます。アクティビティをクリックすると、ロードバランサーのバックエンドサーバーのクォータ超過など、失敗の原因を確認できます。
-
手動追加された ECS インスタンス
既存のインスタンスを手動で追加し、一部がグループに参加できなかった場合、Auto Scaling はそれらをスケーリンググループから削除しますが、リリース(終了)はしません。