このトピックでは、Auto Scaling を使用して ECS インスタンスとホストインスタンス(非 Alibaba Cloud インスタンス)の両方を管理する方法について説明します。クラウドアシスタントを使用して、ご利用の非 Alibaba Cloud サーバーをホストインスタンスとして登録し、ホストインスタンスに CloudMonitor エージェントをインストールしてからスケーリンググループに追加できます。これにより、スケーリンググループ内の ECS インスタンスとホストインスタンスを一元的にモニタリングでき、監視メトリクスに基づいて ECS インスタンスを自動的にスケーリングできます。
前提条件
-
Alibaba Cloud アカウント (root ユーザー) をお持ちです。アカウントをお持ちでない場合は、Alibaba Cloud アカウントを作成してください。
-
パブリックインターネットにアクセス可能な非 Alibaba Cloud サーバーが必要です。
利用シーン
非 Alibaba Cloud サーバー上でステートレスなアプリケーションを実行しており、トラフィックの急激な変動により手動でのスケーリングが困難な場合に、このソリューションをご利用ください。
非 Alibaba Cloud サーバーをホストインスタンスとして登録し、スケーリンググループに追加することで、Auto Scaling はスケーリンググループ内の ECS インスタンスとホストインスタンスを一元的にモニタリングし、監視メトリクスの変化に応じて ECS インスタンスを自動的にスケーリングしてビジネスの変動に対応できます。このアプローチには以下のメリットがあります。
-
トラフィックのピーク時には、ECS インスタンスを自動的にスケールアウトして増加した負荷を処理します。
-
トラフィックの閑散時には、ECS インスタンスを自動的にスケールインしてコストを削減します。
基本概念
このトピックでは、以下の概念が使用されます。
|
パラメーター |
説明 |
関連リンク |
|
マネージドインスタンス |
クラウドアシスタントを使用して、非 Alibaba Cloud サーバーをホストインスタンスとして登録できます。登録後、インスタンスはクラウドアシスタント、Auto Scaling、CloudOps Orchestration Service、Alibaba Cloud DevOps などの各種 Alibaba Cloud サービスを利用できます。 |
|
|
クラウドアシスタントエージェント |
クラウドアシスタントエージェントは、クラウドアシスタントから Alibaba Cloud インスタンスまたは非 Alibaba Cloud インスタンスに送信されたコマンドを実行します。 |
|
|
CloudMonitor エージェント |
ECS インスタンス、サードパーティの VM、物理マシンなど任意のホストに CloudMonitor エージェントをインストールして、CloudMonitor のホストモニタリングサービスを利用できます。 |
操作手順
ステップ 1:非 Alibaba Cloud インスタンスの登録
開始前に、登録する非 Alibaba Cloud サーバーを準備してください。このトピックでは、3 台の非 Alibaba Cloud サーバーを例として使用します。詳細については、「ホストインスタンス」をご参照ください。
-
アクティベーションコードを作成します。
ECS コンソールでホストインスタンス用のアクティベーションコードを作成し、インストールスクリプトを生成してコンピューターに保存します。詳細については、「ステップ 1:アクティベーションコードの作成」をご参照ください。
Linux (.deb)システム向けのインストールスクリプトのサンプルは以下のとおりです。# クラウドアシスタントエージェント .deb パッケージをダウンロードします。 sudo wget https://aliyun-client-assist.oss-accelerate.aliyuncs.com/linux/aliyun_assist_latest.deb # クラウドアシスタントエージェントの最新バージョンをインストールします。 sudo dpkg -i aliyun_assist_latest.deb # ホストインスタンスを登録します。 sudo aliyun-service --register --RegionId "cn-hangzhou" \ --ActivationCode "a-hz011wm7BNH3JnTMyx22****VJ6d" \ --ActivationId "A4C23294-D8E9-5591-87A2-CCA2****2AC9" -
クラウドアシスタントエージェントをインストールしてホストインスタンスを登録します。
3 台の非 Alibaba Cloud サーバーでインストールスクリプトを実行し、クラウドアシスタントエージェントをインストールしてホストインスタンスとして登録します。
-
非 Alibaba Cloud サーバーにログインします。
-
非 Alibaba Cloud サーバーでインストールスクリプトを貼り付けて実行します。これにより、クラウドアシスタントエージェントがインストールされ、サーバーがホストインスタンスとして登録されます。登録が成功すると、システムが自動的にインスタンス ID を割り当てます。

-
-
ホストインスタンスを確認します。
インスタンスが登録されたら、ECS コンソールの ECS クラウドアシスタント ページに移動します。インスタンスの管理 タブで、ホストインスタンスの ID を確認して記録します。この例では、3 つのホストインスタンスは Test-01、Test-02、Test-03 という名前になっています(下図参照)。
説明ホストインスタンスの ID は
mi-で始まり、ECS インスタンスの ID はi-で始まります。
ステップ 2:CloudMonitor エージェントのインストール
CloudMonitor エージェントの詳細については、「CloudMonitor エージェントのインストールとアンインストール」をご参照ください。
-
ホストインスタンスにログインします。
-
次のコマンドを実行して CloudMonitor エージェントをインストールします。
ARGUS_VERSION=3.5.9.11 /bin/bash -c "$(curl -s https://cloudmonitor-agent.oss-cn-hangzhou.aliyuncs.com/Argus/agent_install_necs-1.8.sh)" -
次のコマンドを実行して CloudMonitor エージェントのステータスを確認します。
ps aux | grep argusagent | grep -v grep次のような出力が表示されれば、CloudMonitor エージェントが正常に実行されており、インストールが成功したことを確認できます。
root 12590 0.0 0.1 33440 6924 ? Ss 15:55 0:00 /usr/local/cloudmonitor/bin/argusagent -d root 12592 0.0 0.4 850972 16096 ? Sl 15:44 0:00 /usr/local/cloudmonitor/bin/argusagent説明CloudMonitor コンソールのホストモニタリングページでも、ホストインスタンスおよび CPU 使用率、メモリ使用量、ディスク使用率などのモニタリングデータを確認できます。これにより、CloudMonitor エージェントがインストールされていることを確認できます。
ステップ 3:ホストインスタンスをスケーリンググループに追加
重要
このセクションの手順を実行する前に、以下の点にご注意ください。
-
スケーリンググループに適切な監視メトリクスを選択し、監視タスクを作成する必要があります。詳細については、「監視タスクの概要」をご参照ください。
-
スケーリンググループに ECS インスタンスとホストインスタンスの両方が含まれる場合、監視タスクはグループ内のすべてのインスタンスの集計されたメトリクスに基づきます。ホストインスタンスはエージェントベースの監視メトリクスのみをサポートするため、監視タスクにはエージェントベースの監視メトリクスを使用することを推奨します。
-
ホストインスタンスはスケーリンググループに手動でのみ追加または削除できます。削除後もインスタンスはリリースされません。
操作手順
-
スケーリンググループを作成します。
ホストインスタンスをサポートするのは ECS タイプのスケーリンググループのみです。そのため、
Scalinggroup_ecsという名前の ECS タイプのスケーリンググループを作成する必要があります。詳細については、「スケーリンググループの作成」をご参照ください。 -
スケーリング設定を作成して有効化します。
詳細については、「ECS インスタンスのスケーリング設定の作成」をご参照ください。
-
スケーリンググループを有効化します。
詳細については、「スケーリンググループの有効化または無効化」をご参照ください。
-
スケーリングルールを作成します。
簡易スケーリングルールを 2 つ作成します。詳細については、「スケーリングルールの作成」をご参照ください。
-
スケールアウトルール (Add1):ECS インスタンスを 1 台追加するスケーリングルール。
-
スケールインルール (Reduce1):ECS インスタンスを 1 台削除するスケーリングルール。
-
-
監視タスクを作成します。
(エージェント) CPU 使用率 メトリクスを使用して、スケーリンググループ内のすべてのインスタンスの平均 CPU 使用率を 40% ~ 60% の間に維持する監視タスクを 2 つ作成します。詳細については、「監視タスクの設定」をご参照ください。
-
スケールアウトタスク (ScaleOutAlarm):(エージェント) CPU 使用率 メトリクスの条件を 平均 >= 60% に設定し、スケールアウトルール (Add1) に関連付けます。これにより、グループの平均 CPU 使用率が 60% 以上になると ECS インスタンスが 1 台追加されます。
-
スケールインタスク (ScaleInAlarm):(エージェント) CPU 使用率 メトリクスの条件を 平均 <= 40% に設定し、スケールインルール (Reduce1) に関連付けます。これにより、グループの平均 CPU 使用率が 40% 以下になると ECS インスタンスが 1 台削除されます。
-
-
3 つのホストインスタンスをスケーリンググループに手動で追加します。
重要スケーリンググループ内のホストインスタンスは、手動でのみ追加または削除できます。
-
スケーリンググループの詳細ページで、インスタンス管理 タブをクリックします。
-
[マネージドインスタンス] タブで、[マネージドインスタンスの追加] をクリックします。
-
表示される マネージドインスタンスの追加 ダイアログボックスで、追加するインスタンスを選択し、
アイコンをクリックします。 -
[追加] をクリックします。
追加されたインスタンスは、マネージドインスタンス タブで表示できます。

-
検証
シナリオ 1:アイドル状態のホストインスタンス 3 台を含むグループ
スケーリンググループ内のホストインスタンスに負荷がかかっていない場合、平均 CPU 使用率は 40% を下回ります。理論的には、この条件により監視タスク (ScaleInAlarm) がトリガーされ、インスタンスが 1 台削除されるはずです。ただし、Auto Scaling はホストインスタンスを自動的に削除できないため、以下のイベントが発生します。
-
たとえば、22:01 ~ 22:07 の期間中、ホストインスタンスの平均 CPU 使用率が 40% 未満になります。システムは監視タスク (ScaleInAlarm) をトリガーしますが、タスクの実行は失敗します。

-
たとえば、22:01 ~ 22:07 の期間中、システムはスケールインアクティビティを拒否するため、インスタンス数は減少しません。拒否の理由を表示 をクリックして詳細を確認できます。

シナリオ 2:高負荷のホストインスタンス 3 台を含むグループ
ストレステストツール(lookbusy など)を使用してホストインスタンスの CPU 使用率を約 90% に維持すると、グループの平均 CPU 使用率は 60% を超えます。以下のイベントが発生します。
-
たとえば、22:14 ~ 22:25 の期間中、ホストインスタンスの平均 CPU 使用率が 60% を超えます。システムは自動的に監視タスク (ScaleOutAlarm) をトリガーし、タスクは正常に実行されます。

-
たとえば、22:14 ~ 22:25 の期間中、スケールアウトアクティビティにより ECS インスタンスが 2 台追加され、インスタンス総数は 3 台から 5 台に増加します。22:25 を過ぎるとグループの平均 CPU 使用率が 40% ~ 60% の間で安定するため、スケーリングアクティビティは停止します。

シナリオ 3:ホストインスタンスでのストレステストを停止
シナリオ 2 を踏まえると、スケーリンググループには ECS インスタンスが 2 台とホストインスタンスが 3 台含まれており、平均 CPU 使用率は 40% ~ 60% の間に維持されています。ここで 3 台のホストインスタンスでのストレステストを停止すると、スケーリンググループ全体の平均 CPU 使用率は 40% を下回ります。理論的には、システムは監視タスク (ScaleInAlarm) をトリガーしてインスタンスを削除するはずです。ただし、ホストインスタンスは手動でのみ削除できるため、以下のイベントが発生します。
-
たとえば、22:48 ~ 22:54 の期間中、スケールインアクティビティにより ECS インスタンスが 2 台削除され、インスタンス数は 5 台から 3 台に減少します。グループが安定した後(たとえば、22:55 以降)、平均 CPU 使用率は引き続き 40% を下回っています。その後のスケールインアクティビティは、グループ内にホストインスタンスしか含まれていないため失敗します。

-
たとえば、22:55 以降、スケーリンググループ内のインスタンスの平均 CPU 使用率は引き続き 40% を下回っています。システムは自動的に監視タスク (ScaleInAlarm) をトリガーしてインスタンスを削除しようとしますが、グループ内にホストインスタンスしか含まれていないため、タスクの実行は失敗します。
