Elastic Compute Service (ECS) インスタンスの CPU 使用率の異常な増加は、インスタンス上で実行されているアプリケーションのパフォーマンスに影響を与える可能性があります。その結果、アプリケーションの実行速度が低下したり、応答しなくなったりします。この問題を迅速に解決するには、ECS インスタンスを再起動して CPU 使用率を削減し、アプリケーションへの影響を軽減することができます。CloudOps Orchestration Service (OOS) は、CPU 使用率が過度に高いことが検出された場合にインスタンスを自動的に再起動するアラート機能を提供します。これにより、手動介入なしで自動処理が可能になります。このトピックでは、CPU 使用率がしきい値を超えたときに ECS インスタンスを自動的に再起動し、サービスパフォーマンスを迅速に復元するように CPU 使用率アラートを構成する方法について説明します。
準備
CloudOps Orchestration Service 用に ECS インスタンスを再起動するための権限を持つ RAM ロールを作成する必要があります。
ecs:RebootInstance
権限とecs:DescribeInstances
権限を含むカスタムポリシーを作成します。詳細については、「カスタムポリシーを作成する」をご参照ください。標準のサービスロールを作成し、信頼できるサービスとして CloudOps Orchestration Service を構成します。信頼できるサービスの選択方法の詳細については、「信頼できる Alibaba Cloud サービスの RAM ロールを作成する」をご参照ください。
作成した RAM ロールにカスタムポリシーをアタッチします。これにより、RAM ロールに必要な権限が付与されます。詳細については、「RAM ロールに権限を付与する」をご参照ください。
手順
CloudOps Orchestration Service コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[アラートとイベント O&M] ページで、[作成] をクリックします。 [アラートとイベント O&M の作成] ページで、[しきい値アラート] を選択します。
[トリガールール] セクションで、ルール関連のパラメーターを構成し、目的のインスタンスを選択します。
[テンプレートの選択] セクションで、検索ボックスの横にあるドロップダウンリストから [パブリックテンプレート] を選択し、ACS-ECS-BulkyRebootInstances テンプレートを選択します。
RegionId、TargetInstance、および RateConsole パラメーターのデフォルト構成を保持し、[権限] ドロップダウンリストから ECS インスタンスを再起動するための権限を持つ RAM ロールを選択します。
[作成] をクリックします。表示されるダイアログボックスで、[OK] をクリックします。
結果の確認
この例では、オープンソースのストレステストツール stress-ng を使用して、高い CPU 使用率をシミュレートします。
監視対象の ECS インスタンスに接続します。詳細については、「ECS インスタンスに接続する方法」をご参照ください。
stress-ng ツールをインストールします。
Alibaba Cloud Linux、CentOS、および RHEL
yum install stress-ng -y
Ubuntu および Debian
apt-get install stress-ng -y
# この例では、stress-ng ツールを使用して 2 つの CPU コアでストレステストを実行し、CPU 負荷を 85% に設定し、ストレステストを 5 分間実行します。
stress-ng --cpu 2 --cpu-load 85 --timeout 5m
CPU 使用率を観察します。インスタンスが再起動されると、CPU 使用率が低下します。