Auto Scaling は Classic Load Balancer (CLB) と統合されており、CLB のサーバーグループ内のサーバーを自動的にスケールインまたはスケールアウトします。監視タスクを作成すると、Auto Scaling は CLB のサーバーグループ内の Elastic Compute Service (ECS) インスタンスを動的にスケールインまたはスケールアウトできます。これにより、CLB の可用性が確保され、リソースの無駄が防止されます。
利用シーン
ニュースサイトが最新ニュースを公開すると、ページビュー (PV) 数が急増し、現在のサーバーのサービスキャパシティを超える可能性があります。その結果、サーバーが受信リクエストに応答できなくなることがあります。ニュースが時間とともに下火になり、サーバーのワークロードが減少すると、ユーザーはウェブページを読み込めるようになります。このウェブサイトのユーザートラフィックの変動は予測不可能であり、ワークロード管理がより困難になります。
このシナリオでは、監視タスクを作成して、CloudMonitor が ECS インスタンスの CPU 使用率などのリソース使用量を監視できるようにします。これにより、システムは自動的に ECS インスタンスを CLB サーバーグループに追加したり、削除したりできます。スケーリンググループが CLB サーバーグループに関連付けられると、スケーリンググループ内の ECS インスタンスに対して自動または手動でトリガーされたスケールインおよびスケールアウトアクティビティは、CLB サーバーグループと同期されます。リクエストは、トラフィック量とヘルスチェックステータスに基づいて ECS インスタンスに分散され、高いサービス可用性を確保します。
以下の例では、CLB は転送ルールに基づいて ECS01 という名前の ECS インスタンスにリクエストを分散します。ECS01 の CPU 使用率が指定されたしきい値に達すると、スケーリングルールと監視タスクに基づいて ECS インスタンスが作成され、サーバーグループに追加されます。ECS01 の CPU 使用率が指定されたしきい値を下回ると、ECS インスタンスはサーバーグループから削除され、リリースされます。
前提条件
少なくとも 1 つの CLB インスタンスが作成され、[実行中] の状態であること。詳細については、「CLB インスタンスの作成と管理」をご参照ください。
CLB インスタンス用に vServer グループが作成され、ECS インスタンスがサーバーグループに追加されていること。この例では、サーバーグループ名は RS1、ECS インスタンス名は ECS01 です。
ECS01 用にカスタムイメージが作成されていること。詳細については、「インスタンスからのカスタムイメージの作成」をご参照ください。
CLB インスタンスのヘルスチェックが有効になっていること。詳細については、「CLB ヘルスチェックの設定と管理」をご参照ください。
CLB インスタンスに少なくとも 1 つのリスナーが作成されていること。詳細については、「HTTP リスナーの追加」をご参照ください。
ステップ 1:スケーリンググループの作成
Auto Scaling コンソールにログインします。
左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[Auto Scaling] ページに移動します。ビジネス要件に応じて、スケーリンググループを作成するか、既存のスケーリンググループを使用できます。[作成] をクリックし、パラメーターを設定します。以下の表に、一部のパラメーターについて説明します。
パラメーター
説明
インスタンス設定ソース
[ゼロから作成] を選択します。
最小インスタンス数
スケーリンググループ内のインスタンス数が指定された最小インスタンス数を下回る場合、Auto Scaling はインスタンス数が最小値に達するまで自動的にスケールアウトします。この例では、1 が選択されており、少なくとも 1 つの ECS インスタンスが必要であることを指定します。
最大インスタンス数
スケーリンググループ内のインスタンス数が指定された最大インスタンス数を超える場合、Auto Scaling はインスタンス数が最大値に達するまで自動的にスケールインします。この例では、2 が選択されており、サーバーグループに最大で 1 つの ECS インスタンスを追加できることを指定します。
デフォルトのクールダウン時間
スケールインまたはスケールアウトのアクティビティが完了した後、指定されたクールダウン時間が終了するまで次のスケールインまたはスケールアウトのアクティビティは開始されません。このパラメーターは監視タスクでのみ使用できます。この例では、0 が選択されています。ビジネス要件に基づいて値を指定してください。
VPC および vSwitch
ECS01 の VPC と vSwitch を選択します。
CLB インスタンスの関連付け
サーバーグループを選択し、ポートと重みを指定します。
ビジネス要件に基づいて他のパラメーターを設定し、[OK] をクリックします。[スケーリンググループ] ページでスケーリンググループを表示できます。
ステップ 2:スケーリンググループの設定テンプレートの作成
[スケーリンググループ] ページで、[操作] 列の [詳細] をクリックします。[インスタンス設定ソース] タブで、[スケーリング設定] をクリックします。
[スケーリング設定] タブで、[スケーリング設定の作成] をクリックし、パラメーターを設定します。以下の表に、一部のパラメーターについて説明します。ビジネス要件に基づいて他のパラメーターを設定してください。
パラメーター
説明
課金方法
ECS インスタンスの課金方法を選択します。この例では、[従量課金] が選択されています。
インスタンス設定モード
この例では、[インスタンスタイプの指定] が選択されています。
インスタンスタイプの選択
この例では、ECS01 のタイプが選択されています。
イメージの選択
この例では、ECS01 のカスタムイメージが選択されています。
セキュリティグループ
この例では、ECS01 のセキュリティグループが選択されています。
[作成] をクリックします。[スケーリング設定のプレビュー] メッセージで、[作成] をクリックします。
[スケーリング設定が作成されました] ダイアログボックスで、[有効化] をクリックして設定とスケーリンググループを有効にします。
ステップ 3:スケーリングルールの作成
[スケーリンググループ] ページで、管理するスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。[スケーリングルールと監視タスク] タブで、[スケーリングルール] タブをクリックします。
自動スケールアウトルールを作成します。[スケーリングルール] タブで、[スケーリングルールの作成] をクリックし、以下のパラメーターを設定してから [OK] をクリックします。
パラメーター
説明
ルール名
スケーリングルールの名前を入力します (例:ECS インスタンスを 1 つ自動追加)。
ルールタイプ
この例では、[シンプルスケーリングルール] が選択されています。
操作
この例では、[1 インスタンスを追加] が選択されています。
自動スケールインルールを作成します。[スケーリングルール] タブで、[スケーリングルールの作成] をクリックし、以下のパラメーターを設定してから [OK] をクリックします。
パラメーター
説明
ルール名
スケーリングルールの名前を入力します (例:ECS インスタンスを 1 つ自動削除)。
ルールタイプ
この例では、[シンプルスケーリングルール] が選択されています。
操作
この例では、[1 インスタンスを削除] が選択されています。
ステップ 4:監視タスクの作成とスケーリングルールとの関連付け
左側のナビゲーションウィンドウで、 を選択します。
[監視タスク] ページで、[システムモニタリング] タブをクリックし、[監視タスクの作成] をクリックします。
自動スケールアウトをトリガーする監視タスクを作成します。[監視タスクの作成] をクリックします。表示されるダイアログボックスで、パラメーターを設定し、[OK] をクリックします。以下の表に、一部のパラメーターについて説明します。
パラメーター
説明
名前
タスクの名前を入力します (例:ECS インスタンスを 1 つ自動追加)。
監視対象リソース
ステップ 1 で作成したスケーリンググループを選択します。
アラートルール
この例では、アラートルールは [CPU 使用率、最大値 (最大値) >= 60%] に設定されています。
統計期間
この例では、[1 分] が選択されています。
トリガー後
この例では、[1 回] が選択されています。
実行するルール
ステップ 3 で作成した自動スケールアウトルールを選択します。
自動スケールインをトリガーする監視タスクを作成します。[監視タスクの作成] をクリックします。表示されるダイアログボックスで、パラメーターを設定し、[OK] をクリックします。以下の表に、一部のパラメーターについて説明します。
パラメーター
説明
名前
タスクの名前を入力します (例:ECS インスタンスを 1 つ自動削除)。
監視対象リソース
ステップ 1 で作成したスケーリンググループを選択します。
アラートルール
この例では、アラートルールは [CPU 使用率、最大値 (最大値) <= 30%] に設定されています。
統計期間
この例では、[1 分] が選択されています。
トリガー後
この例では、[1 回] が選択されています。
実行するルール
ステップ 3 で作成した自動スケールインルールを選択します。
ステップ 5:スケーリンググループへの ECS インスタンスの追加
Auto Scaling はモニタリングデータと監視タスクに基づいてバックエンドサーバーの数を自動的に調整します。そのため、監視したい ECS インスタンスをスケーリンググループに追加する必要があります。
[スケーリンググループ] ページで、管理するスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。[インスタンス] タブで、[手動で追加] タブをクリックします。
次に、[既存インスタンスの追加] をクリックします。表示されるページで ECS01 を選択し、[追加] をクリックします。
[手動で追加] タブで ECS01 を表示できます。
ステップ 6:バックエンドサーバーの自動追加・削除のテスト
ストレステストツールを使用して ECS01 の CPU 使用率を 60% まで上昇させ、監視タスクをトリガーして ECS インスタンスが作成され、CLB サーバーグループに追加されるようにします。CLB コンソールで、ECS インスタンスがサーバーグループに追加されたかどうかを確認できます。ストレステストが終了し、ECS01 の CPU 使用率が 30% を下回った後、監視タスクが再度トリガーされて ECS インスタンスが自動的に削除されるかどうかを確認します。
この例では、Alibaba Cloud Linux 3.2104 が使用されています。ご利用の環境や結果は異なる場合があります。ECS01 にログインし、次のコマンドを実行してストレステストツールをインストールします:
sudo yum install -y stress次のコマンドを実行して ECS01 でストレステストを実行します。ストレステストは 60 秒間続きます。
sudo stress --cpu 1 --io 4 --vm 2 --vm-bytes 128M --timeout 60s &[スケーリンググループ] ページに戻り、監視タスクの [ステータス] が [アラート] になるまで数分待ちます。
[スケーリンググループ] ページに移動します。スケールアウトアクティビティの後、[インスタンス/容量] 列に表示される [合計インスタンス数] が 1 つ増加していることが確認できます。これは、ECS インスタンスが作成され、スケーリンググループに追加されたことを示します。
CLB コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループの ID をクリックし、[バックエンドサーバー] タブをクリックします。このタブでは、サーバーグループに 2 つのバックエンドサーバーが含まれていることが確認できます。
ESS-XX形式で名前が付けられた ECS インスタンスは、Auto Scaling によって追加されたものです。ストレステストが終了した後、Auto Scaling コンソールと CLB コンソールにログインして、ECS インスタンスがサーバーグループから自動的に削除されたかどうかを確認できます。
関連ドキュメント
Auto Scaling の詳細については、「Auto Scaling とは」をご参照ください。
Auto Scaling は、サーバーを自動的にスケーリングできるスケジュールされたタスクをサポートしています。詳細については、「スケジュールされたタスクを使用したインスタンス数の設定」をご参照ください。
Auto Scaling は CloudMonitor と統合されており、モニタリングメトリックや予測メトリック値に基づくリソーススケーリングなどの高度な機能をサポートしています。詳細については、「スケーリングルールの設定」をご参照ください。