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

Auto Scaling:スケジュールタスクの設定

最終更新日:Nov 11, 2024

ビジネスで予測可能なボリュームの変化が発生する場合は、スケジュールされたタスクを設定して、ピーク時までに十分なコンピューティングリソースを使用できるようにし、ピーク時以降に未使用のコンピューティングリソースをリリースできます。 これにより、安定したサービス提供を確保し、コスト効率を最大化します。

スケジュールされたスケーリングソリューションの設計

スケジュール済みタスクを作成する前に、スケジュール済みスケーリングソリューションを設計する必要があります。

解決策1: 特定の時点でのスケーリングのトリガー

  • シナリオ

    特定の時点で発生するリソースニーズの急激な急上昇または低下が予想される場合は、その時点でトリガーするように自動スケーリングをスケジュールできます。

  • 実装方法

    スケジュールされたタスクを作成し、タスクトリガー時間を指定してから、スケールアウトまたはスケールイン操作を指定します。 詳細については、「スケジュールタスクの作成」をご参照ください。

  • 同社がDouble 11でプロモーションイベントを開催している場合は、その日にコンピューティングリソースを増やして、リソースニーズの増加に対応し、円滑な運用を確保できます。 これは、この高トラフィック期間中のビジネスの安定性を維持するのに役立ちます。

解決策2: 特定の期間に基づいてスケーリングをトリガーする

  • シナリオ

    ビジネスで予測可能な変動が発生したり、クラスターのリソース使用率が時間の経過とともに定期的に変動したりする場合は、自動スケーリングを有効にしてリソースを調整できます。

  • 実装方法

    クラスターのリソース使用率が増加した場合、スケジュールされたタスクを実行してスケールアウトイベントをトリガーします。 クラスターのリソース使用率が低下した場合、スケジュールされたタスクを実行してスケールインイベントをトリガーします。 詳細については、「スケジュールタスクの作成」をご参照ください。

  • たとえば、クラスターのトラフィックは毎晩19:00に増加し、毎朝01:00に減少します。 これらのビジネス需要の変動に対処するには、次のスケジュールタスクを作成します。

    • トラフィックの増加: スケジュールされたタスクを有効にして、毎晩19:00にサービスレプリカの数を増やします。 これにより、増加したトラフィックを処理するクラスタの能力が向上します。

    • トラフィックの減少: スケジュールされたタスクを有効にして、毎朝01:00にサービスレプリカの数を減らします。 これにより、リソース利用率が向上し、コスト効率が最大になります。

[スケジュール済みタスク] ページに移動

スケジュール済みタスクは、[スケジュール済みタスク] ページでのみ管理できます。 [スケジュール済みタスク] ページに移動するには、次の手順を実行します。

[スケジュール済みタスク] ページに移動

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

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

  3. 上部のナビゲーションバーで、リージョンを選択します。

  4. [スケーリンググループ] ページで、使用するスケーリンググループを見つけ、その名前をクリックしてスケーリンググループの詳細ページに移動します。

  5. [スケーリングルールとイベントトリガータスク] > [スケジュール済みタスク] を選択します。

    image

スケジュール済みタスクの作成

スケジュールされたスケーリングソリューションを設計した後、ソリューションを実装するスケジュールされたタスクの作成に進むことができます。 スケジュールタスクを作成するには、次の手順を実行します。

重要

リージョン内のAlibaba Cloudアカウント内では、限られた数のスケジュール済みタスクのみを作成できます。 リージョンで作成できるスケジュール済みタスクのクォータを表示するには、クォータセンターに移動します。

  1. [スケジュール済みタスク] ページで、[スケジュール済みタスクの作成] をクリックします。 [スケジュールタスクの作成] ダイアログボックスで、プロンプトに従ってパラメーターを設定します。 下表に追加のパラメーターを示します。

    1. スケジュールされたタスクの基本情報を設定します。

      パラメーター

      説明

      タスク名

      作成するスケジュール済みタスクの名前。

      名前は2 ~ 64文字で、英数字、ピリオド (.) 、アンダースコア (_) 、ハイフン (-) を使用できます。 名前は文字または数字で始まる必要があります。

      説明

      作成するスケジュールされたタスクの説明。 このパラメーターはオプションです。

      説明の長さは2 ~ 200文字である必要があります。 説明を使用して、タスクの目的を説明できます。

    2. スケジュールされたタスクのトリガー時間を設定します。

      パラメーター

      説明

      実行日時

      スケジュールされたタスクを実行する時点。

      • Recurrenceパラメーターに値が指定されていない場合、スケジュール済みタスクは、executed atパラメーターで指定された時点で1回だけ実行されます。

      • Recurrenceパラメーターに値が指定されている場合、スケジュールされたタスクは、executed atパラメーターで指定された時点で1回実行され、Recurrenceパラメーターで指定されたサイクルに基づいて繰り返し実行されます。

      重要

      スケジュールタスクに指定した実行時間が、スケジュールタスクの作成または変更日から90日以内であることを確認してください。 それ以外の場合、スケジュール済みタスクは有効になりません。

      リトライ間隔 (秒)

      Auto Scalingが失敗したときにスケジュールされたタスクを再試行する期間。 このパラメーターはオプションです。 有効な値: 0 ~ 1800 単位 : 秒

      再発

      スケジュールされたタスクを繰り返し実行するサイクル。 このパラメーターはオプションです。 有効な値: Not Set、Day、Week、Month、Cron Expression。

      期限切れ

      スケジュールされたタスクを繰り返し実行するサイクルの終了時間。 このパラメーターは、Recurrenceパラメーターを [日別] 、[週別] 、[月別] 、または [Cron Expression] に設定した場合に使用できます。 スケジュールされたタスクが実行される最初の時点は、サイクルの終了時間より前でなければなりません。

      Cron式

      Auto Scalingコンソールでスケジュールされたタスクを作成するときに、[繰り返し] パラメーターを [Cron式] に設定できます。

      cron式は、スケジュールを表す文字列です。 文字列は、スペースで区切られた複数のフィールドで構成され、スケジュールの個々の詳細を記述します。 Auto Scalingは、X X X X X形式の5つのフィールドで構成されるcron式をサポートします。 Xはフィールドのプレースホルダーです。 cron式のフィールドは、分、時間、月、月、および曜日を順番に表します。 各フィールドは、明確な値または論理的な意味を持つ特殊文字にすることができます。

      スケジュールされたタスクのcron式を設定するときは、次の項目に注意してください。

      • Cron式はUTC + 0です。 cron式を設定するときは、ローカル時刻をUTC + 0に変換する必要があります。 たとえば、中国のタイムゾーンはUTC + 8です。 中国にいて、毎日現地時間20:00:00にスケジュールされたタスクを実行する場合は、20:00:00から8時間を引く必要があります。 この場合、cron式を0 12 * * ? に設定する必要があります。

      • cron式が指定されているスケジュール済みタスクは、5分に1回だけ実行できます。

      • 指定されたcronを持つスケジュールされたタスクが実行される最初の時点は、スケジュールされたタスクのRecurrenceパラメーターで指定されたサイクルの終了時刻より前でなければなりません。 それ以外の場合は、エラーが返されます。

      表 1. フィールド

      項目

      必須

      値の範囲

      特殊文字

      必須

      0から59

      , - / *

      時間

      必須

      0から23

      , - / *

      必須

      1から31

      , - / * ? L W

      必須

      1から12

      , - / *

      曜日

      必須

      1から7。 日曜日の値は7です。

      , - * ? /L#

      特殊文字表2

      特殊文字

      説明

      Cron式

      *

      すべての有効なフィールド値

      [月] フィールドのアスタリスク (*) は、毎月を示します。 曜日フィールドのアスタリスク (*) は、曜日を示します。

      ,

      列挙された値

      分フィールドでは、5、20は5分と20分を示します。

      -

      範囲の値

      Minuteフィールドにおいて、5 − 20は、5分から20分までの範囲を示す。

      /

      増分

      分フィールドにおいて、0/15は、0分から開始して15分毎を示す。 3/20は、3分から20分ごとを示します。

      ?

      指定されていません。 曜日フィールドと曜日フィールドのみがこの文字をサポートします。

      説明

      [日] フィールドまたは [週の日] フィールドを指定した後に計算が競合しないようにするには、未指定フィールドに疑問符 (?) を指定する必要があります。

      Dayフィールドでは、? は、月の特定の日が指定されていないことを示します。 曜日フィールドでは、? は、特定の曜日が指定されていないことを示します。 たとえば、15 10 15 * ? UTC + 0の場合、スケジュールされたタスクは、曜日に関係なく、毎月15日の10:15:00に実行されることを示します。

      L

      Lastの最初の文字であるLは、特定の期間の最終日を示します。 曜日フィールドと曜日フィールドのみがこの文字をサポートします。

      説明

      ロジックエラーを防ぐため、L文字を使用する場合はリストや範囲を指定しないでください。

      • Dayフィールドにおいて、Lは月の最終日を示す。 曜日フィールドにおいて、Lは週の最終日を示す。

      • Lの前に値を付けることができる。 たとえば、曜日フィールドの6Lは、その月の最後の土曜日を示します。

      W

      指定された月の日に最も近い平日。 W文字が示す平日は、常に指定された月と同じ月です。 LWは、指定された月の最終平日を示します。

      [日] フィールドで5Wが指定され、月の5日が土曜日である場合、タスクは最も近い平日、金曜日、つまり月の4日目にトリガーされます。 月の5日が日曜日である場合、スケジュールされたタスクは、月の6日である月曜日である最も近い平日にトリガされる。 月の5日が平日の場合、スケジュールされたタスクは月の5日にトリガーされます。

      #

      毎月特定の週の特定の日。 曜日フィールドのみがこの文字をサポートしています。 有効な値: 1 ~ 5。

      曜日フィールドでは、4#2は月の第2木曜日を示します。

      表4の

      次の表に、UTC + 0のcron式の例を示します。 これらのcron式は異なる意味を有する。 cron式を設定するときは、ローカル時刻をUTC + 0に変換する必要があります。

      Cron式

      説明

      15 10? * *

      スケジュールされたタスクを毎日10:15:00に実行します。

      15 9 * * *

      スケジュールされたタスクを毎日9:15:00に実行します。

      0 12 * * ?

      毎日12:00:00にスケジュール済みタスクを実行します。

      0 10,14、16 * * ?

      毎日10:00:00、14:00:00、16:00:00にスケジュールされたタスクを実行します。

      15 10 15 * ?

      毎月15日の10:15:00にスケジュール済みタスクを実行します。

      15 10 L * ?

      スケジュールされたタスクを毎月最終日の10:15:00に実行します。

      15 10? * 6L

      毎月最終土曜日の10:15:00にスケジュールされたタスクを実行します。

      15 10? * 6#3

      毎月第3土曜日の10:15:00にスケジュールされたタスクを実行します。

    3. スケジュールされたタスクのスケーリング方法を設定します。

      説明

      Auto Scalingでは、スケジュールされたタスクで次のスケーリング方法を設定できます。

      • [既存のスケーリングルール]: この方法では、スケジュールされたタスクで、N個のインスタンスを追加または削除したり、N % のインスタンスを追加または削除したり、スケーリンググループ内のインスタンスの総数をNに調整したりできます。

      • スケーリンググループのインスタンス数の設定: この方法では、スケジュールされたタスクでスケーリンググループの容量の下限または上限を調整できます。 スケーリンググループの [期待インスタンス数] 機能を有効にした場合、この方法では、スケジュールされたタスクがスケーリンググループ内のインスタンスの期待数を調整できるようになります。

      既存のスケーリングルールの選択

      パラメーター

      説明

      スケーリング方法

      [スケーリング方法] パラメーターを [既存のスケーリングルールの選択] に設定した場合、既存の単純なスケーリングルールを選択する必要があります。

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

      このパラメーターは、[スケーリングメソッド] パラメーターを [既存のスケーリングルールの選択] に設定した場合にのみ使用できます。 既存の単純なスケーリングルールを選択します。 詳細については、「スケーリングルールの管理」または「CreateScalingRule」をご参照ください。

      スケーリンググループ内のインスタンス数の設定

      パラメーター

      説明

      スケーリング方法

      [スケーリングメソッド] パラメーターを [スケーリンググループのインスタンス数の設定] に設定した場合、新しいインスタンスの最大数、最小数、または予想数を指定する必要があります。

      最大インスタンス数

      スケーリンググループの容量の上限。

      最小インスタンス

      スケーリンググループの容量の下限。

      期待されるインスタンス

      スケーリンググループ容量の予想サイズ。 Auto Scalingは、スケーリンググループの容量の予想サイズを維持するために、スケーリンググループ内の実際のインスタンス数を調整します。

  2. [OK] をクリックします。

スケジュール済みタスクの無効化

スケジュールタスクを作成すると、スケジュールタスクはデフォルトで有効になります。 スケジュールされたタスクが不要になった場合は、無効にできます。 有効になっているスケジュール済みタスクのみを無効にできます。

手順

[スケジュール済みタスク] タブで、無効にするスケジュール済みタスクを見つけ、[操作] 列の [無効にする] をクリックします。

image

スケジュール済みタスクの有効化

無効になっているスケジュール済みタスクを有効にできます。 タスクを有効にすると、指定した時点でタスクを実行できます。 無効になっているスケジュール済みタスクのみを有効にできます。

手順

[スケジュールされたタスク] タブで、有効にするスケジュールされたタスクを見つけ、[操作] 列の [有効にする] をクリックします。

p843898

スケジュール済みタスクの変更

スケジュールされたタスクがビジネス要件を満たしていない場合は、スケジュールされたタスクを変更できます。

手順

[スケジュールされたタスク] ページで、変更するスケジュールされたタスクを見つけ、[操作] 列の [編集] をクリックします。 次に、画面の指示に従って、スケジュールされたタスクを変更します。

image

詳細については、「スケジュールタスクの作成」をご参照ください。

スケジュール済みタスクの削除

スケジュールタスクが不要になった場合は、スケジュールタスクを削除できます。

手順

[スケジュールされたタスク] ページで、削除するスケジュールされたタスクを見つけ、[操作] 列の [削除] をクリックします。 次に、画面の指示に従って、スケジュールされたタスクを削除します。

image

関連ドキュメント