イベントトリガータスクは、Auto ScalingとCloudMonitorの機能を統合します。 イベントトリガータスクを作成して、スケーリンググループを動的に管理できます。 スケジュールされたタスクと同様に、イベントトリガータスクは指定されたスケーリングルールを実行してスケーリングアクティビティをトリガーします。 これにより、スケーリンググループ内のインスタンスを自動的にスケーリングできます。
概要
イベントトリガータスクで監視するメトリックを指定する必要があります。 システムは、リアルタイムでメトリックデータを収集します。 アラート条件が満たされると、システムはアラートをトリガーし、指定されたスケーリングルールを実行します。 イベントトリガタスクを使用して、インスタンスの数を動的に調整できます。 これは、変化する要件が満たされ、メトリック値が期待される範囲内に維持されることを保証します。 Auto Scalingコンソールでは、次のタイプのイベントトリガータスクを作成できます。
カスタムモニタリングタイプのイベントトリガータスク: カスタムイベントトリガータスク。 このタイプのイベントトリガータスクは、カスタムモニタリングシステムを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. 特殊文字
特殊文字 | 説明 | 例 |
| すべての有効なフィールド値 | [月] フィールドでは、アスタリスク (*) は毎月を指定します。 |
| 列挙された値 | 分フィールドでは、 |
| 範囲の値 | Minuteフィールドで、 |
| 増分 | 分フィールドでは、 |
| L文字は最終日を示す。 Dayフィールドのみがこの文字をサポートしています。 説明 ロジックエラーを防ぐため、 | 日フィールドでは、 |
| Wは、指定された月の日に最も近い曜日を示す。 | [日] フィールドで |
表 3. サンプルcron式
次の表に、UTC + 8のcron式の例を示します。 これらのcron式は異なる意味を有する。 cron式を設定するときは、ローカル時刻をUTC + 0に変換する必要があります。
表 4. サンプルcron式
次の表に、UTC + 0のcron式の例を示します。 これらのcron式は異なる意味を有する。 cron式を設定するときは、ローカル時刻をUTC + 0に変換する必要があります。
Cron式 | 説明 |
| 常に効果的です。 |
| 毎日01:00:00〜01:30:00および02:00:00〜02:30:00に有効です。 |
| 毎日00:00:00〜00:59:00と02:00:00〜02:59:00に有効です。 |
| 毎月1日から2日おきに01:00:00から01:59:00まで有効です。 たとえば、各月の最初の2つの有効時間範囲は、各月の初日の01:00:00から01:59:00の間、および各月の3日目の01:00:00から01:59:00の間です。 |
| 毎月最終日の01:00:00から01:59:00まで有効です。 |
| 毎月5日目が平日かどうかに基づいて、異なる日に有効です。
|
イベントトリガータスクの管理
次の表に、さまざまなシナリオのイベントトリガータスクで実行できる操作と、関連するリンクを示します。
ユーザーガイド | 説明 | APIリファレンス |
イベントトリガータスクを作成します。 | ||
イベントトリガータスクを表示します。 | ||
イベントトリガータスクを変更または削除します。 | ||
イベントトリガータスクを無効または有効にします。 |