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

Auto Scaling:スケジュールされたタスクのトリガーによるECSインスタンスのスケール

最終更新日:Sep 12, 2024

Auto Scalingは、ワークロードの変更とスケーリングポリシーに基づいてElastic Compute service (ECS) インスタンスの数を自動的に調整するAlibaba Cloudサービスです。 十分なコンピューティングリソースを確保し、アイドルリソースを防ぎ、コストを削減するのに役立ちます。 識別可能なパターンによるワークロードの変動に効果的に対処するために、Auto Scalingコンソールでスケジュールタスクを作成し、指定された時点で自動スケーリングを有効にできます。 これにより、ビジネスニーズを満たすためにECSインスタンスの数を自動的に増減できます。

シナリオ

説明

ワークロードの変動が予測可能なパターンに従い、時間に基づいて明確なピーク時間とオフピーク時間を識別できる場合、Auto Scalingを使用して、指定された時点でのECSインスタンスの数を自動的に増減できます。

たとえば、ゲーム会社では、ビジネスワークロードが毎晩18:00:00から23:00:00に一貫して増加し、この期間中にサーバーを追加する必要があります。 しかし、他の期間中は、通常の動作を維持するために必要なサーバの数は固定されます。

image

解決策

ビジネス変動が発生した時点でスケジュールタスクを作成できます。 これらのスケジュールされたタスクをトリガーすることで、スケーリングルールの自動実行を有効にし、ECSインスタンスの自動スケーリングを効果的に実装できます。

image

メリット

  • ゼロ先行リソースセットアップコスト

    Auto Scalingは、ビジネス要件に基づいて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インスタンス数が下限に達するまで、ECSインスタンスをスケーリンググループに追加します。

    最大インスタンス数

    5

    スケーリンググループ内のインスタンス数の上限を指定します。 スケーリンググループ内のインスタンス数がこのパラメーターの値より大きい場合、Auto scalingは、スケーリンググループ内のECSインスタンス数が上限を下回るまで、ECSインスタンスをスケーリンググループから削除します。

    ネットワークタイプ

    VPC

    [VPC] を選択します。スケーリンググループのECSインスタンスが仮想プライベートクラウド (VPC) に存在することを指定します。

    [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メモリ、エンタープライズレベル

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

    画像の選択

    パブリックイメージ: 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] をクリックします。

    スケーリンググループを有効にすると、ビジネス要件に基づいて自動インスタンスのスケーリングがトリガーされます。

    この例では、[最小インスタンス数] パラメーターを1に設定します。 この場合、Auto Scalingは、スケーリンググループを有効にした後、スケーリンググループのスケーリング設定に基づいて1つのECSインスタンスを自動的に作成します。 スケーリンググループの詳細ページの [インスタンス] タブに移動し、[自動作成] タブでインスタンス情報を確認できます。

    手动1.png

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

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

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

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

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

    パラメーター

    説明

    ルール名

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

    ルールタイプ

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

    操作

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

    クールダウン時間

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

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

    スケーリングルール

    サンプル設定

    スケールアウトルール

    • ルール名: 追加

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

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

    スケールインルール

    • ルール名: 削除

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

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

手順4: スケジュール済みタスクの作成

スケジュールされたタスクは、指定された時点で特定のスケーリングルールを実行できる事前設定タスクです。

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

  2. [スケジュールタスクの作成] をクリックし、ビジネス要件に基づいてパラメーターを設定し、[OK] をクリックします。

    このトピックで使用されるパラメーター設定を次の表に示します。 次の表に記載されていないパラメーターは、デフォルト設定になります。 スケジュールタスクの設定方法については、「概要」をご参照ください。

    パラメーター

    説明

    タスク名

    タスク名を入力します。 名前は、UIに表示されるフォーマット要件に準拠している必要があります。

    実行日時

    タスクをトリガーする特定の時点を指定します。

    スケーリング方法

    [既存のスケーリングルールの選択] を選択します。

    単純なスケーリングルール

    実行するスケーリングルールを選択します。

    再発

    スケジュールされたタスクの定期的なトリガーの時間間隔を指定します。 たとえば、1日1回タスクをトリガーできます。

    この手順を繰り返して、スケールアウトとスケールインのルールを実行するスケジュール済みタスクを作成します。 このトピックで使用されるサンプル設定を次の表に示します。

    スケジュール済みタスク

    スケジュールされたスケールアウト

    • タスク名: scheduled-add

    • 実行日時: 5月16日2024日午後6時

    • スケーリング方法: 既存のスケーリングルールを選択

    • 単純なスケーリングルール: 追加

    • 繰り返し: 日単位 (単純なスケーリングルールを1日1回実行する)

    スケジュールされたスケールイン

    • タスク名: scheduled-remove

    • 実行日時: 5月16日2024午後11:00

    • スケーリング方法: 既存のスケーリングルールを選択

    • 単純なスケーリングルール: 削除

    • 繰り返し: 日単位 (単純なスケーリングルールを1日1回実行する)

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

スケジュール済みタスクを作成すると、指定された時点でスケジュール済みタスクがトリガーされ、指定されたスケーリングルールが実行されます。

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

  • 毎日18:00:00に1つのECSインスタンスをスケーリンググループに自動的に追加する

  • 毎日23:00にスケーリンググループから1つのECSインスタンスを自動的に削除する

次のいずれかの方法を使用して効果を確認できます。

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

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