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

Auto Scaling:概要

最終更新日:Sep 11, 2024

イベントトリガータスクは、Auto ScalingとCloudMonitorの機能を統合します。 イベントトリガータスクを作成して、スケーリンググループを動的に管理できます。 スケジュールされたタスクと同様に、イベントトリガータスクは指定されたスケーリングルールを実行してスケーリングアクティビティをトリガーします。 これにより、スケーリンググループ内のインスタンスを自動的にスケーリングできます。

概要

イベントトリガータスクで監視するメトリックを指定する必要があります。 システムは、リアルタイムでメトリックデータを収集します。 アラート条件が満たされると、システムはアラートをトリガーし、指定されたスケーリングルールを実行します。 イベントトリガタスクを使用して、インスタンスの数を動的に調整できます。 これは、変化する要件が満たされ、メトリック値が期待される範囲内に維持されることを保証します。 Auto Scalingコンソールでは、次のタイプのイベントトリガータスクを作成できます。

スケジュールされたタスクは、スケジュールどおりに指定のスケーリングルールを実行します。 ビジネスに明らかなパターンがある場合、またはピーク時間を予測できる場合は、スケーリングルールを実行するスケジュールタスクを作成できます。 詳細については、「スケジュール済みタスクの概要」をご参照ください。 ビジネスでトラフィックが急増している場合、またはピーク時間を予測できない場合、スケジュールされたタスクはビジネス要件を満たすことができません。 この場合、イベントトリガータスクを作成して、スケーリングルールを柔軟に実行できるようにすることができます。 偶数トリガータスクは、リアルタイムでビジネスワークロードを監視し、ピーク時にスケールアウトルールの実行をトリガーしてより多くのインスタンスを提供し、オフピーク時にスケールインルールを実行して過剰なインスタンスを削除します。 これにより、中断することなくビジネスを実行し、リソースコストを最小限に抑えることができます。

制限事項

  • スケーリンググループに想定されるインスタンス数を指定しない場合、非並列スケーリングアクティビティが実行されているときに、Auto scalingはスケーリンググループの他のスケーリングアクティビティを実行できません。 詳細については、「期待インスタンス数」をご参照ください。

  • イベントトリガータスクは、クールダウン期間中はスケーリングルールを実行できません。

    ほとんどの場合、Auto Scalingは、Elastic Compute Service (ECS) インスタンスまたはelasticコンテナインスタンスをスケーリンググループに追加し、インスタンスを起動し、サービスをデプロイし、メトリック値を収集するのに数分かかります。 ビジネス要件に基づいてクールダウン期間を指定することを推奨します。 これにより、新しいインスタンスのメトリックデータが欠落しているときにスケーリングルールが繰り返しトリガーされるのを防ぐことができます。

  • デフォルトでは、イベントトリガータスクの統計期間は1分です。 分中は、スケーリングルールはトリガーされません。

Cron式

Auto Scalingコンソールでイベントトリガータスクを作成する場合、[有効期間] パラメーターを [Cron式] に設定できます。

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

イベントトリガータスクのcron式を設定するときは、次の項目に注意してください。

  • Cron式はUTC + 0です。 cron式を設定するときは、ローカル時刻をUTC + 0に変換する必要があります。 たとえば、中国の時間はUTC + 8です。 中国にいて、毎日01:00:00から02:59:00の間にイベントトリガータスクを実行する場合は、時間範囲から8時間を差し引く必要があります。 この場合、cron式を * * 17-18 * * に設定する必要があります。

  • イベントトリガータスクの有効期間外にアラートがトリガーされた場合、イベントトリガータスクはアラート状態になりますが、指定されたスケーリングルールは実行されません。

表 1. フィールド値

項目

必須

値の範囲

特殊文字

課金されます

0から59

, - / *

課金されます

0から59

, - / *

時間

課金されます

0から23

, - / *

課金されます

1から31

, - / * L W

課金されます

1から12

, - / *

表 2. 特殊文字

特殊文字

説明

*

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

[月] フィールドでは、アスタリスク (*) は毎月を指定します。

,

列挙された値

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

-

範囲の値

Minuteフィールドで、5-20は、タスクが5分から20分まで1分ごとにトリガーされることを指定します。

/

増分

分フィールドでは、0/15は0分から15分ごとに指定します。 3/20は、3分目から20分ごとに指定します。

L

L文字は最終日を示す。 Dayフィールドのみがこの文字をサポートしています。

説明

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

日フィールドでは、Lは月の最終日を指定します。

W

Wは、指定された月の日に最も近い曜日を示す。 W文字が示す就業日は、指定された日と同じ月です。

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

表 3. サンプルcron式

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

表 4. サンプルcron式

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

Cron式

説明

* * * * *

常に効果的です。

*0-30 1-2 * *

毎日01:00:00〜01:30:00および02:00:00〜02:30:00に有効です。

* * 0,2 * *

毎日00:00:00〜00:59:00と02:00:00〜02:59:00に有効です。

* * 1 1/2*

毎月1日から2日おきに01:00:00から01:59:00まで有効です。 たとえば、各月の最初の2つの有効時間範囲は、各月の初日の01:00:00から01:59:00の間、および各月の3日目の01:00:00から01:59:00の間です。

*1 L *

毎月最終日の01:00:00から01:59:00まで有効です。

* * 1 5W *

毎月5日目が平日かどうかに基づいて、異なる日に有効です。

  • 月の5日が平日の場合、イベントトリガータスクは月の5日の01:00:00から01:59:00の間に有効になります。

  • 月の5日が土曜日の場合、イベントトリガータスクは月の4日の01:00:00から01:59:00の間に有効になります。

  • 月の5日が日曜日の場合、イベントトリガータスクは月の6日の01:00:00から01:59:00の間に有効になります。

イベントトリガータスクの管理

次の表に、さまざまなシナリオのイベントトリガータスクで実行できる操作と、関連するリンクを示します。

ユーザーガイド

説明

APIリファレンス

アラームタスクの作成

イベントトリガータスクを作成します。

CreateAlarm

イベントトリガータスクを表示します。

DescribeAlarms

イベントトリガータスクを変更または削除します。

イベントトリガータスクを無効または有効にします。