すべてのプロダクト
Search
ドキュメントセンター

Auto Scaling:ビジネスワークロードに基づいたECSインスタンスのスケール

最終更新日:Feb 07, 2025

Auto Scalingは、事前定義されたポリシーに基づいてコンピューティングリソースを自動的に調整し、ワークロード管理を最適化し、リソース使用率を高め、コストを削減します。 明確なパターンがないワークロードの場合は、イベントトリガタスクを設定してメトリックを監視できます。 メトリックの値 (CPU使用率など) が定義されたしきい値に達すると、Auto Scalingはスケーリングアクティビティを実行して、指定された数のElastic Compute Service (ECS) インスタンスを追加または削除します。

シナリオ

説明

動的なワークロードの変動を管理する場合、最適なサーバー数とスケーリングのタイミングを決定するのは難しい場合があります。 リアルタイムのワークロードの変更に基づいてサーバーの容量を調整する場合は、Auto Scalingコンソールでイベントトリガータスクを作成できます。

たとえば、ニュースWebサイトのトラフィックは非常に変動します。 ページビューはニュース速報で急上昇し、ニュースがタイムリーになると減少します。

image

解決策

イベントトリガータスクをCloudMonitorにリンクすることで、監視対象のメトリックが定義されたしきい値に達したときにスケーリングルールを自動的に実行するようにAuto Scalingを設定できます。 これにより、業務ワークロードに基づくサーバーのスケーリングが可能になります。

image

メリット

  • リソースセットアップの初期費用なし

    Auto Scalingは、ビジネス要件に基づいてECSインスタンスを作成およびリリースします。これにより、リソースセットアップに関連する初期費用が削減されます。 通常のビジネストラフィックに対してコンピューティングリソースを予約するだけで済みます。

  • 自動スケーリング

    Auto ScalingはCloudMonitorと統合され、ワークロードの変動を監視し、ECSインスタンスの自動スケーリングを効率的に実装します。 この統合は、リソースとO&Mのコストを削減しながら、ビジネス需要を満たすのに役立ちます。

前提条件

Auto Scalingを初めて使用するときは、Resource Access Management (RAM) ユーザー認証を完了する必要があります。

  • AliyunServiceRoleForAutoScalingサービスにリンクされたロールが作成されます。 詳細については、「サービスにリンクされたロール」をご参照ください。

  • RAMユーザーとしてAuto Scalingを使用する場合、RAMユーザーにAliyunESSFullAccessポリシーが付与されている必要があります。 詳細については、「RAM ユーザーへの権限の付与」をご参照ください。

ステップ1: スケーリンググループの作成

スケーリンググループは、ビジネス要件を満たすインスタンスのコレクションであり、Auto scalingのコアユニットとして機能します。 Auto Scalingは、スケーリンググループ内のインスタンス数を必要に応じて追加または削除することで調整します。

  1. スケーリンググループページに移動します。

    1. Auto Scalingコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。

    3. 上部のナビゲーションバーで、Auto Scalingが有効になっているリージョンを選択します。

  2. スケーリンググループページの左上隅にある [作成] をクリックします。

  3. [フォームで作成] タブで、スケーリンググループを設定し、[作成] をクリックします。

    このトピックで使用されるパラメーター設定を次の表に示します。 次の表でカバーされていないパラメーターは、デフォルト設定になります。 スケーリンググループの作成方法については、「スケーリンググループの作成」をご参照ください。

    パラメーター

    説明

    スケーリンググループ名

    test

    スケーリンググループの名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。

    タイプ

    ECS

    [ECS] を選択します。スケーリンググループにECSインスタンスが含まれることを指定します。

    インスタンス設定ソース

    スクラッチから作成

    この段階では、ECSインスタンスを自動作成するためのテンプレートを指定しないでください。 スケーリンググループの作成後、スケーリング設定の作成に進むことができます。

    最小インスタンス数

    1

    スケーリンググループ内のインスタンスの最小数を指定します。 スケーリンググループ内のインスタンス数がこの値を下回った場合、Auto scalingは目的の最小値に達するまでECSインスタンスを追加します。

    最大インスタンス数

    5

    スケーリンググループ内のインスタンスの最大数を指定します。 インスタンス数がこの値を超えると、Auto Scalingはインスタンス数が指定された制限を下回るまでECSインスタンスを削除します。

    [VPC]

    vpc-bp1jmxxau0lur929p ****

    スケーリンググループ内のECSインスタンスのVPCを選択します。

    vSwitch

    vsw-2zeknnyw2ewufbs4z ****

    vsw-2zesy03h8eaf9fe0l ****

    スケーリンググループ内のECSインスタンスに対して1つ以上のvSwitchを選択します。 スケールアウトイベントの成功率を向上させるために、複数のvSwitchを選択することを推奨します。

手順2: スケーリング設定を作成し、スケーリング設定とスケーリンググループを有効にする

スケーリング設定は、スケールアウトイベント中にECSインスタンスを作成するために使用されるテンプレートです。 課金方法、インスタンスタイプ、ストレージ、ネットワーク設定などの情報が含まれます。 スケーリング設定を作成したら、スケーリング設定を有効にしてから、スケーリンググループを有効にできます。

  1. 目的のスケーリンググループを見つけ、次のいずれかの方法でスケーリンググループの詳細ページを開きます。

    • スケーリンググループ名 /ID列のスケーリンググループのIDをクリックします。

    • [操作] 列の [詳細] をクリックします。

  2. 詳細ページの上部で、インスタンス設定ソースタブをクリックします。

  3. [スケーリング設定] タブで、[スケーリング設定の作成] をクリックします。

  4. [スケーリング設定の作成] ページで、パラメーターを設定してスケーリング設定を作成し、[作成] をクリックします。

    このトピックで使用されるパラメーター設定を次の表に示します。 次の表に記載されていないパラメーターは、デフォルト設定になります。 スケーリング設定の作成方法の詳細については、「ECSタイプのスケーリング設定の作成」をご参照ください。

    セクション

    パラメーター

    説明

    基本情報

    スケーリング設定名

    test

    スケーリング設定の名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。

    課金方法

    従量課金

    Auto Scalingは無料です。 ただし、スケールアウトイベント中に作成されたECSインスタンスには料金がかかります。 この例では、従量課金方法が使用されています。 詳細については、ECSの「課金の概要」をご参照ください。

    イメージとインスタンス

    インスタンス設定モード

    インスタンスパターンの指定

    [インスタンスパターンの指定] を選択し、ECSインスタンスの仕様を選択します。

    インスタンス属性の組み合わせ

    2 vCPU、4 GiBメモリ、エンタープライズレベル

    ビジネス要件に基づいて、ECSインスタンスの適切なvCPU数とメモリサイズを選択します。

    画像の選択

    パブリックイメージ: Alibaba Cloud Linux 3.2104 LTS 64ビット

    ECSインスタンスをデプロイするイメージを選択します。 この例では、パブリックイメージを使用します。 実際のシナリオでは、アプリケーション固有のカスタムイメージを選択できます。

    ストレージ

    システムディスク

    エンタープライズSSD (ESSD) 、40 GiB、およびPL0

    ECSインスタンスのシステムディスクを選択します。

    ネットワークとセキュリティグループ

    パブリック IP アドレス

    パブリックIPv4アドレス、帯域幅課金、および1 Mbit/s帯域幅の割り当て

    ECSインスタンスにパブリックIPアドレスを割り当てるかどうかを指定します。 アウトバウンドパブリック帯域幅は個別に課金され、料金はECSインスタンスのコストに含まれます。

    [セキュリティグループ]

    sg-bp18kz60mefsicfg ****

    既存のセキュリティグループを選択します。 セキュリティグループの作成方法については、「セキュリティグループの作成」をご参照ください。

    管理設定

    [ログイン資格情報]

    後で設定

    インスタンスの作成後にECSインスタンスのパスワードを手動で設定する必要があります。

  5. [スケーリング設定のプレビュー] ダイアログボックスで情報を確認し、[作成] をクリックします。

  6. では、スケーリング設定が作成されます。 [有効化] をクリックします。

  7. [スケーリング設定の有効化] ダイアログボックスで、[OK] をクリックします。

    説明

    スケーリンググループでは、1つのスケーリング設定を有効にする必要があります。 スケーリング設定を有効にすると、スケーリング設定は [アクティブ] 状態になります。

  8. [スケーリンググループの有効化] メッセージで、[OK] をクリックします。

    Auto scalingがビジネス要件に基づいてインスタンスを自動的にスケーリングできるようにするには、スケーリンググループを有効にする必要があります。

    この例では、[最小インスタンス数] パラメーターを1に設定します。 スケーリンググループを有効にすると、有効になったスケーリング設定から1つのECSインスタンスが自動的に作成されます。 スケーリンググループの詳細ページの [インスタンス] タブに移動し、[自動作成] タブでインスタンス情報を確認できます。

    手动1.png

ステップ3: スケーリングルールの作成

スケーリングルールは、スケーリンググループにインスタンスを追加するか削除するかを定義します。

  1. スケーリンググループの詳細ページで、[スケーリングルールとイベントトリガータスク] タブをクリックします。 次に、[スケーリングルール] タブをクリックします。

  2. [スケーリングルールの作成] をクリックし、スケーリングルールを作成するパラメーターを設定し、[OK] をクリックします。

    この例では、単純なスケーリングルールが作成されます。 スケーリングルールの作成方法の詳細については、「スケーリングルールの設定」をご参照ください。

    パラメーター

    説明

    ルール名

    スケーリングルールの名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。

    ルールタイプ

    スケーリングルールのタイプ。 この例では、[シンプルスケーリングルール] を選択します。 スケーリングルールの詳細については、「概要」をご参照ください。

    操作

    スケーリングルールの実行時に追加または削除するインスタンスの数を指定します。 各スケーリングイベント中に追加または削除されたインスタンスの数は1,000を超えてはなりません。

    クールダウン時間

    必要に応じて、 スケーリングルールのクールダウン期間を指定します。 単位は秒です。 このパラメーターを設定しない場合、スケーリンググループのクールダウン期間が有効になります。 詳細については、「クールダウン期間」をご参照ください。

    この手順を繰り返して、スケールアウトとスケールインのルールを作成します。 この例で使用される設定を次の表に示します。

    スケーリングルール

    サンプル設定

    スケールアウトルール

    • ルール名: 追加

    • ルールタイプ: 単純なスケーリングルール

    • 操作: 1つのインスタンスを追加

    スケールインルール

    • ルール名: 削除

    • ルールタイプ: 単純なスケーリングルール

    • 操作: 1つのインスタンスを削除します。

手順4: イベントトリガータスクの作成

イベントトリガータスクは、特定の指標を監視し、リアルタイムデータを収集します。 データが事前定義されたアラート条件を満たすと、Auto Scalingはアラートをトリガーしてスケーリングルールを実行します。

  1. スケーリンググループの詳細ページで、[スケーリングルールとイベントトリガータスク] タブをクリックします。 次に、[イベントトリガータスク] タブをクリックします。

  2. [イベントトリガータスク (システム)] タブで、[イベントトリガータスクの作成] をクリックし、パラメーターを設定してタスクの作成を完了し、[OK] をクリックします。

    説明

    この例では、システムメトリックはイベントトリガータスクで指定されています。 CloudMonitorにカスタムメトリクスを報告し、イベントトリガータスクでカスタムメトリクスを指定することもできます。 詳細については、「概要」をご参照ください。

    このトピックで使用されるパラメーター設定を次の表に示します。 次の表でカバーされていないパラメーターは、デフォルト設定になります。 イベントトリガータスクの詳細については、「イベントトリガータスクの管理」をご参照ください。

    パラメーター

    説明

    名前

    イベントトリガータスクの名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。

    アラート条件

    メトリックデータが指定されたしきい値に達したときにアラートが報告される条件を入力します。 少なくとも1つのメトリックを指定する必要があります。 複数のメトリックを指定する場合は、[メトリックの追加] をクリックします。

    以下の点にご注意ください。

    • メトリック: 監視するシステムメトリックの名前。 たとえば、(ECS) CPU使用率メトリックを使用する場合、スケーリンググループ内のすべてのECSインスタンスのCPU使用率が監視されます。

    • 統計方法: メトリックデータが指定されたしきい値を超えるかどうかを判断するために使用する方法。 統計方法として、平均最大値、または最小値を使用できます。 たとえば、Averageメソッドを使用し、Average >= 70% というルールを指定した場合、スケーリンググループ内のすべてのECSインスタンスの平均CPU使用率が70% 以上になるとアラートがトリガーされます。

    警告時にトリガーされるスケーリングルール

    アラートが報告されたときに実行するスケーリングルールを指定します。

    この手順を繰り返して、スケールアウトおよびスケールインルールの実行を開始するイベントトリガータスクを作成します。 この例で使用される設定を次の表に示します。

    イベントトリガータスク

    サンプル設定

    アラート时のスケールアウト

    • 名前: アラーム追加

    • アラート条件 :( ECS) CPU使用率 > 平均 (平均) > 70%

    • アラート時にトリガーされるスケーリングルール: 追加

    アラート時のスケールイン

    • 名前: alarm-remove

    • アラート条件 :( ECS) CPU使用率 > 平均 (平均) < 20%

    • アラート時にトリガーされるスケーリングルール: 削除

自動スケーリングの効果の確認

イベントトリガータスクの作成後、Auto Scalingはスケーリンググループのメトリックデータを継続的に監視し、定義された条件が満たされるとスケーリングルールを実行します。

この例では、次の結果が得られます。

  • スケーリンググループ内のECSインスタンスのCPU使用率が70% を超えると、1つのECSインスタンスが自動的にスケーリンググループに追加されます。

  • スケーリンググループ内のECSインスタンスのCPU使用率が20% を下回ると、1つのECSインスタンスがスケーリンググループから自動的に削除されます。

ストレステストツールを使用して、次の方法でテストをシミュレートし、スケーリング効果を検証できます。

  • イベントトリガータスクが実行されたら、スケーリンググループの詳細ページに移動し、[インスタンス] > [自動作成] を選択します。 次に、インスタンス数の変更を確認します。

  • イベントトリガータスクが実行されたら、スケーリンググループの詳細ページに移動し、[スケーリングアクティビティ] タブをクリックします。 次に、スケーリングアクティビティが生成されているかどうかを確認します。 対応するスケーリングアクティビティが生成されたら、そのIDをクリックしてスケーリングアクティビティの詳細を表示します。