Application Load Balancer (ALB) は、アプリケーション層で HTTP、HTTPS、QUIC のトラフィックをバックエンドサーバーに分散します。Auto Scaling は、[(ALB) バックエンドサーバーあたりの QPS] メトリックを監視し、メトリックが定義したしきい値を超えた場合にバックエンドサーバーを自動的に追加または削除します。ALB の詳細については、「ALB とは」をご参照ください。
このメトリックは次のように計算されます。
バックエンドサーバーあたりの QPS = ALB が 1 秒あたりに受信したクライアントリクエストの合計 / ALB バックエンドサーバーグループ内の ECS インスタンスまたは Elastic Container Instance の合計数このメトリックは、レイヤー 7 リスナーにのみ適用されます。
スケールアウト:バックエンドサーバーあたりの QPS が上限しきい値以上 (>=) になると、Auto Scaling はバックエンドサーバーを追加して、サーバーあたりの負荷を軽減します。
スケールイン:バックエンドサーバーあたりの QPS が下限しきい値 (<) を下回ると、Auto Scaling はバックエンドサーバーを削除してコストを削減します。
利用シーン
ALB はクライアントリクエストを一元的に受信し、バックエンドの Elastic Compute Service (ECS) インスタンスまたは Elastic Container Instance (ECI) インスタンスに分散します。
トラフィックの急増時には、応答時間と安定性を維持するために迅速なスケールアウトが必要です。
トラフィックが少ない期間には、自動スケールインによってアイドル状態のバックエンドサーバーを削除し、コストを削減するメリットがあります。
前提条件
ALB リソースを表示および管理するための RAM ユーザーの権限。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
少なくとも 1 つの Virtual Private Cloud (VPC) と 1 つの vSwitch。詳細については、「IPv4 CIDR ブロックを持つ VPC の作成」をご参照ください。
ステップ 1:ALB インスタンスの設定
ALB インスタンスの作成
以下のパラメーターで ALB インスタンスを作成します。詳細な手順については、「ALB インスタンスの作成と管理」をご参照ください。
パラメーター | 説明 | 例 |
インスタンス名 | ALB インスタンスの名前。 | alb-qps-instance |
VPC | ALB インスタンスの VPC。 | vpc-test\*\*\*\*-001 |
ゾーン | ゾーンと vSwitch。 | ゾーン:中国 (杭州) ゾーン G および中国 (杭州) ゾーン H。vSwitch:vsw-test003 および vsw-test002。 |
ALB はクロスゾーンデプロイメントをサポートしています。高可用性を確保するために、少なくとも 2 つのゾーンを選択してください。
サーバーグループの作成
以下のパラメーターでサーバーグループを作成します。詳細な手順については、「サーバーグループの作成と管理」をご参照ください。
パラメーター | 説明 | 例 |
サーバーグループタイプ | サーバーグループのタイプ。[サーバー] は、グループに ECI インスタンスが含まれることを指定します。 | サーバー |
サーバーグループ名 | サーバーグループの名前。 | alb-qps-servergroup |
VPC | ALB インスタンスの VPC と一致する必要があります。この VPC 内のサーバーのみ追加できます。 | vpc-test\*\*\*\*-001 |
リスナーの設定
左側のナビゲーションウィンドウで、[ALB] > [インスタンス] を選択します。
[インスタンス] ページで、lb-qps-instance という名前の ALB インスタンスを見つけ、[操作] 列の [リスナーの作成] をクリックします。
[Server Load Balancer の設定] ウィザードの [リスナーの設定] ステップで、[リスナーポート] を 80 に設定し、他のパラメーターはデフォルト値のままにして、[次へ] をクリックします。
説明ビジネス要件に応じて、[リスナーポート] パラメーターに別のポート番号を指定できます。この例ではポート 80 を使用します。
[Server Load Balancer の設定] ウィザードの [サーバーグループの選択] ステップで、[サーバーグループ] フィールドの下にある [サーバータイプ] を選択し、alb-qps-servergroup という名前のサーバーグループを選択して、[次へ] をクリックします。

[設定の確認] ステップで、設定内容を確認し、[送信] をクリックします。確認メッセージで [OK] をクリックします。
ALB の Elastic IP アドレスの取得
リスナーの設定が完了したら、[インスタンス詳細] タブをクリックして、ALB インスタンスの Elastic IP アドレス (EIP) を取得します。

ステップ 2:スケーリンググループの作成
このステップでは、ECI タイプのスケーリンググループを作成します。ECS タイプのスケーリンググループを作成する手順は若干異なります。適用可能なパラメーターについては、コンソールをご参照ください。
スケーリンググループの作成
スケーリンググループに以下のパラメーターを設定します。詳細な手順については、「スケーリンググループの作成」をご参照ください。
パラメーター | 説明 | 例 |
スケーリンググループ名 | スケーリンググループの名前。 | alb-qps-scalinggroup |
タイプ | 計算能力のインスタンスタイプ。 | ECI |
インスタンス設定ソース | Auto Scaling がインスタンスを作成する方法。 | ゼロから作成 |
最小インスタンス数 | インスタンス数がこの値を下回った場合、Auto Scaling はこの数に達するまでインスタンスを作成します。 | 1 |
最大インスタンス数 | インスタンス数がこの値を超えた場合、Auto Scaling はこの数に達するまでインスタンスを削除します。 | 5 |
VPC | ALB インスタンスの VPC と一致する必要があります。 | vpc-test\*\*\*\*-001 |
vSwitch | ALB インスタンスが使用する vSwitch を選択します。 | vsw-test003 および vsw-test002 |
ALB および NLB サーバーグループの関連付け | ステップ 1 で作成した ALB サーバーグループを選択し、ポートを入力します。 | サーバーグループ:sgp-\*\*\*\*/alb-qps-servergroup。ポート:80。 |
スケーリング設定の作成と有効化
スケーリング設定に以下のパラメーターを設定します。詳細な手順については、「ECI タイプのスケーリング設定の作成」をご参照ください。
パラメーター | 説明 | 例 |
コンテナーグループ設定 | コンテナーグループの仕様 (vCPU とメモリ)。 | vCPU:2 vCPU。メモリ:4 GiB。 |
コンテナー設定 | コンテナーイメージとイメージタグ。 | コンテナーイメージ:registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx。イメージタグ:latest。 |
スケーリンググループの有効化
スケーリンググループを有効にします。詳細な手順については、「スケーリンググループの有効化または無効化」をご参照ください。
この例では、[最小インスタンス数] は 1 に設定されています。スケーリンググループを有効にすると、Auto Scaling は自動的に 1 つの ECI インスタンスを作成します。
スケーリンググループの確認
ECI インスタンスのステータスを確認し、コンテナーが期待どおりに実行されていることを確認します。
ステップ 1 で作成した ALB インスタンスの EIP にアクセスし、
nginxが正しく応答することを確認します。
ステップ 3:監視タスクの作成
スケーリングルールの作成
-
Auto Scaling コンソールにログインします。Auto Scaling コンソール。
2 つのスケーリングルールを作成します。詳細については、「スケーリングルールの設定」をご参照ください。
Add1:1 つの ECI インスタンスを追加するスケールアウトルール。
Reduce1:1 つの ECI インスタンスを削除するスケールインルール。
監視タスクの作成
[スケーリンググループ] ページで、alb-qps-scalinggroup という名前のスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。
[スケーリングルールとタスク] > [イベントトリガータスク] > [イベントトリガータスク (システム)] を選択し、[イベントトリガータスクの作成] をクリックします。
2 つの監視タスクを作成します。詳細については、「監視タスクの管理」をご参照ください。
Alarm1 (スケールアウト)
[(ALB) バックエンドサーバーあたりの QPS] メトリックを選択します。
アラートトリガー条件を [平均値(Average) >= 100 Count/s] に設定します。
Add1 スケーリングルールに関連付けます。
説明バックエンドサーバーあたりの QPS = 合計 QPS / ECI インスタンスの合計数

Alarm2 (スケールイン)
[(ALB) バックエンドサーバーあたりの QPS] メトリックを選択します。
アラートトリガー条件を [Average(Average) < 50 Count/s] に設定します。
Reduce1 スケーリングルールに関連付けます。

スケーリング動作の確認
Apache JMeter、ApacheBench、wrk などのストレステストツールを使用して、ステップ 1 で作成した ALB インスタンスの EIP をテストします。QPS が 500 に達するシナリオをシミュレートします。
テスト中、Auto Scaling コンソールの [モニタリング] タブで次の動作を観察します。
バックエンドサーバーあたりの QPS がアラートしきい値 (100 Count/s) を超えると、スケールアウトの監視タスクが起動し、ECI インスタンスが追加されます。
新しいインスタンスが追加されるたびに、ワークロードがより多くのサーバーに分散され、バックエンドサーバーあたりの QPS 値が減少します。
バックエンドサーバーあたりの QPS がスケールインしきい値 (50 Count/s) を下回ると、スケールインのタスクが起動し、余分なインスタンスが削除されます。