このトピックでは、Auto Scalingのワークフローと、Auto scalingでスケーリングモードを設定する方法について説明します。 このトピックでは、Auto Scalingのワークフロー図も提供します。
Auto Scalingは、Elastic Compute Service (ECS) インスタンスを含むスケーリンググループと、elasticコンテナーインスタンスを含むスケーリンググループを同様の方法で管理します。 このトピックでは、ECSインスタンスを使用してAuto Scalingのワークフローについて説明します。 ECSインスタンスとelasticコンテナインスタンスの詳細については、ECSとは とElastic Containerインスタンスとはをご参照ください。
ワークフロー
次の図は、Auto ScalingがECSインスタンスを追加する方法を示しています。
この例では、ウェブアプリケーションが使用される。 前の図の右側の黒い点線のボックスに示すように、webアプリケーションは3層アーキテクチャを持ち、ECSインスタンスを使用してリクエストを処理します。 このアーキテクチャでは、最上層のServer Load Balancer (SLB) インスタンスが、クライアント要求をスケーリンググループ内のECSインスタンスに転送します。 中間層にあるECSインスタンスは、クライアント要求を処理します。 最下層のApsaraDB RDSインスタンスは、ECSインスタンスのアプリケーションデータを格納します。
Auto Scalingを使用して、ビジネス要件に基づいて中間層のECSインスタンスの数を調整できます。 以下の手順では、Auto ScalingがECSインスタンスの数を調整する方法について説明します。
Auto Scalingは、スケーリングモードで指定された条件が満たされると、スケーリングアクティビティをトリガーします。 次の表に、Auto scalingでサポートされているスケーリングモードを示します。 スケーリングモードの設定方法については、「スケーリングモードの設定」をご参照ください。
ビジネス要件に基づいて、次の表に示すスケーリングモードを組み合わせることができます。 たとえば、ビジネス負荷が毎日12:00:00から大幅に増加した場合、毎日12:00:00に20個のECSインスタンスを自動的に作成するスケジュールタスクを作成できます。 ECSインスタンスの数がビジネス要件を満たしていることを確認するために、スケジュールモードを動的モードやカスタムモードなどの他のスケーリングモードと組み合わせることができます。
スケーリングモード
説明
ユーザーガイド
API参照
固定数モード
スケーリンググループの作成時に [最小インスタンス数] パラメーターを設定した場合、Auto scalingは、スケーリンググループ内のECSインスタンスの総数が [最小インスタンス数] パラメーターの値と等しくなるまで、ECSインスタンスを自動的にスケーリンググループに追加します。
スケーリンググループの作成時に [最大インスタンス数] パラメーターを設定した場合、スケーリンググループ内のECSインスタンスの総数が [最大インスタンス数] パラメーターの値と等しくなるまで、Auto scalingはECSインスタンスをスケーリンググループから自動的に削除します。
スケーリンググループの作成時に [期待インスタンス数] パラメーターを設定した場合、Auto scalingはECSインスタンスをスケーリンググループに自動的に追加または削除し、スケーリンググループ内のECSインスタンスの期待数を維持します。
健康モード
スケーリンググループの作成時にヘルスチェック機能を有効にした場合、Auto scalingは指定された間隔でスケーリンググループ内のECSインスタンスのステータスをチェックします。 ECSインスタンスが期待どおりに実行されないことをAuto Scalingが検出した場合、Auto Scalingはインスタンスが異常であると見なし、インスタンスをスケーリンググループから削除します。
説明ヘルスチェック機能は、Auto Scalingの組み込み機能です。 ヘルスチェック機能が有効になっているSLBインスタンスにスケーリンググループが関連付けられている場合、Auto scalingのヘルスチェック機能とSLBインスタンスのヘルスチェック機能が同時に有効になります。 SLBインスタンスは、Classic Load Balancer (CLB) インスタンスまたはApplication Load Balancer (ALB) インスタンスです。
スケジュールモード
スケジュールタスクを作成して、指定した時点でスケーリングルールを自動的に実行できます。
カスタムモード
手動でスケーリング操作を実行できます。 たとえば、スケーリングルールを手動で実行したり、ECSインスタンスを追加、削除、削除したりできます。
動的モード
CPU使用率など、CloudMonitorによってモニタリングされるパフォーマンス指標に基づいて、イベントトリガータスクを作成できます。 スケーリンググループのメトリック値が指定されたアラート条件を満たす場合、アラートがトリガーされ、指定されたスケーリングルールが実行されます。 たとえば、スケーリンググループ内のすべてのECSインスタンスの平均CPU使用率が60% を超えると、アラートがトリガーされ、指定されたスケーリングルールが実行されます。
Auto Scalingは、ExecuteScalingRule API操作を呼び出してスケーリングアクティビティをトリガーします。 このAPI操作では、Auto Scalingは実行するスケーリングルールの一意の識別子を指定します。 例: ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7 ****
Auto scalingコンソールでスケーリングルールを作成する場合、スケーリングルールリストでスケーリングルールを見つけ、スケーリングルールID /名前列でスケーリングルールのIDをクリックします。 表示されるページで、スケーリングルールの一意の識別子を表示できます。 例: asr-bp14u7kzh8442w9z**** 。 スケーリングルールの作成方法については、「スケーリングルールの作成」をご参照ください。
APIを呼び出してスケーリングルールを作成する場合、DescribeScalingRules APIを呼び出して、スケーリングルールの一意の識別子を照会できます。
Auto Scalingは、一意の識別子を使用して、スケーリングルール、スケーリンググループ、およびスケーリング設定に関する情報を照会します。 その後、Auto Scalingはスケーリングアクティビティをトリガーします。
Auto Scalingは、一意の識別子を使用して、スケーリングルールおよびスケーリングルールが適用されるスケーリンググループに関する情報を照会します。 次に、Auto Scalingは、ビジネスで必要なECSインスタンスの数を計算します。 Auto Scalingは、必要なECSインスタンスをアタッチするSLBインスタンスとApsaraDB RDSインスタンスに関する情報も照会します。
Auto Scalingは、スケーリンググループ内のスケーリング設定に関する情報を照会します。 この情報には、作成する必要があるECSインスタンスのvCPU、メモリサイズ、および帯域幅が含まれます。
Auto Scalingは、以下の項目に基づいてスケーリングアクティビティをトリガーします: 必要なECSインスタンスの数、インスタンス設定ソース、およびECSインスタンスをアタッチするSLBインスタンスとApsaraDB RDSインスタンス。
スケーリングアクティビティ中、Auto scalingは必要な数のECSインスタンスを作成し、ECSインスタンスをSLBインスタンスとApsaraDB RDSインスタンスにアタッチします。
Auto Scalingは、インスタンス設定ソースに基づいて必要な数のECSインスタンスを作成します。
Auto Scalingは、作成されたECSインスタンスのプライベートIPアドレスをApsaraDB RDSインスタンスのホワイトリストに追加します。 その後、Auto ScalingはECSインスタンスをSLBインスタンスのバックエンドサーバーとして追加します。
スケーリングアクティビティが完了すると、Auto scalingはスケーリンググループのクールダウン時間機能を有効にします。
スケーリンググループは、クールダウン時間が経過した後にのみ、スケーリングルールを実行する新しい要求を受け取ることができます。
スケーリングモードの設定
Auto Scalingは、設定に基づいてスケーリングアクティビティを自動的にトリガーして、ECSインスタンスをスケーリンググループに追加または削除できます。 Auto scalingのスケーリングモードを設定して、スケーリングアクティビティをトリガーできます。 次の表に、スケーリングモードを示します。
スケーリングモード | 設定方法 | 説明 |
固定数モード | スケーリンググループ + インスタンス設定ソース1 | 固定数モードでのスケーリングは、次のパラメーターの設定によって異なります。
|
健康モード | スケーリンググループ + インスタンス設定ソース1 | スケーリンググループの [インスタンスヘルスチェック] を有効にする必要があります。 |
スケジュールモード | スケーリンググループ + インスタンス設定ソース + スケーリングルール + スケジュール済みタスク2 | スケジュールモードのスケーリングは、スケジュールされたタスクの設定によって異なります。 |
動的モード | スケーリンググループ + インスタンス設定ソース + スケーリングルール + イベントでトリガーされるタスク3 | 動的モードでのスケーリングは、イベントトリガータスクの設定によって異なります。 |
カスタムモード | カスタム設定方法 | このモードでは、ECSインスタンスを手動で追加、削除、または削除できます。 作成したスケーリングルールを手動で実行することもできます。 |
マルチモード | 前述の設定方法の組み合わせ | マルチモードにおけるスケーリングは、含まれるスケーリングモードに基づいて変化する。 スケーリングモードは互いに独立しており、優先順位を持たない。 Auto Scalingは、最初にトリガーされたスケーリングモードの設定を最初に実行します。 たとえば、スケジュール済みモードと動的モードを併用してビジネス要件を満たす場合は、スケジュール済みタスクとイベントトリガータスクを作成する必要があります。 スケジュール済みモードが動的モードより前にトリガーされた場合、Auto Scalingはイベントトリガータスクの前にスケジュール済みタスクを実行します。 |
次の表に、各設定方法を示します。
いいえ | 設定方法 | 説明 |
1 | スケーリンググループ + インスタンス設定ソース | スケーリンググループを作成し、スケーリンググループのインスタンス設定ソースを設定してから、インスタンス設定ソースとスケーリンググループを有効にする必要があります。 Auto Scalingは、上記の操作が完了した後にのみ、インスタンスを自動的にスケーリングできます。 スケーリンググループとインスタンス設定ソースを含む基本設定単位を設定する必要があります。 |
2 | スケーリンググループ + インスタンス設定ソース + スケーリングルール + スケジュール済みタスク | 方法1の基本構成単位に加えて、スケーリングルールとスケジュールタスクを作成する必要があります。 Auto Scalingは、スケジュールされたタスクに基づいてスケーリングルールを実行します。 |
3 | スケーリンググループ + インスタンス設定ソース + スケーリングルール + イベントトリガータスク | 方法1の基本構成単位に加えて、スケーリングルールとイベントトリガータスクを作成する必要があります。 Auto Scalingは、イベントトリガータスクに基づいてスケーリングルールを実行します。 |
ワークフロー図
Auto Scalingでは、スケーリンググループを1つ以上のSLBインスタンスおよびApsaraDB RDSインスタンスに関連付けることができます。 クライアントがモバイルデバイスまたはPCからリクエストを送信すると、関連付けられたSLBインスタンスがスケーリンググループ内のECSインスタンスにリクエストを転送します。 ECSインスタンスはリクエストを受信して処理します。 次に、関連するApsaraDB RDSインスタンスにアプリケーションデータが保存されます。
Auto Scalingは、ビジネス要件と設定したスケーリングモードに基づいて、スケーリンググループ内のECSインスタンスの数を調整します。 次の図は、Auto scalingのスケーリングプロセスとエラスティックリカバリ (ヘルスチェック) イベントを示しています。