Amazon EC2 Auto Scaling のスケジュールされたアクションを使用して、特定のイベントのキャパシティーを積極的にスピンアップし、トラブルシューティングを行う方法を教えてください。
最終更新日: 2020 年 8 月 19 日
Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling のスケジュールされたアクションを使用して、特定のイベントのキャパシティーを積極的にスピンアップし、トラブルシューティングを行う方法を教えてください。
解決方法
スケジュールされたアクションを使用して、トラフィックパターンまたは将来の予想トラフィックに応じてキャパシティーを拡張できます。たとえば、毎日同じく 2 時間の間、トラフィックが増加するアプリケーションがあるとしましょう。または、トラフィックが数分間で大幅に急増すると予想される 1 回限りのイベントを計画している場合もあるでしょう。スケジュールされたアクションは、指定した時刻 (UTC) に実行されます。スケーリングは、最小容量、最大容量、および希望容量に設定した値に基づいて行われます。
Auto Scaling グループのスケジュールされたアクションを作成する
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインで、[Auto Scaling] を選択します。
- スケジュールされたアクションを設定する Auto Scaling グループを選択します。
- [自動スケーリング] タブの [スケジュールされたアクション] で、[スケジュールされたアクションの作成] を選択します。
- スケジュールされたアクションの名前を指定します。
- ユースケースに基づいて、Auto Scaling グループのサイズを指定します。次のパラメータのうちから 1 つ以上を指定する必要があります。
[最小容量] に、グループが必要とするインスタンスの最小数を指定します。
[最大容量] に、グループ内に存在できるインスタンスの最大数を指定します。
注: スケジュールされたアクションに加えてスケーリングポリシーがある場合、最小容量パラメータと最大容量パラメータを設定すると便利です。インスタンスの数は、スケジュールされたアクションがトリガーされた後にスケーリングポリシー (スケールアウトまたはスケールイン) がトリガーされた場合でも、最小範囲/最大範囲内である必要があります。
[希望容量] に、イベントに必要なインスタンスの数を指定します。 - ユースケースに基づいて、スケジュールされたアクションをトリガーするスケジュールを指定します。
1 回限りのイベントの場合: [繰り返し] で [1 回] を選択します。[開始時刻] に、イベントのタイムスタンプ (日付と時刻) を指定します。
定期的なイベントの場合: 繰り返し間隔 (5 分や 1 日など) を選択します。[開始時刻] に、スケジュールされたアクションを最初に実行するときのタイムスタンプ (日付と時刻) を指定します。[繰り返し] と [開始時刻] を指定すると、サービスは開始時刻にアクションを実行し、その後、指定した繰り返し値に基づいてアクションを実行します。(オプション) 繰り返しスケジュールされたアクションの終了日を設定するには、[終了時刻] を指定します。
注: 必要な繰り返し間隔オプションが使用できない場合は、[繰り返し] で [cron] を選択します。次に、Unix cron 構文形式を使用して、必要なスケジュールのカスタム cron 式を記述します。 - [作成] を選択します。
スケジュールされたアクションに関する問題のトラブルシューティング
スケジュールされたアクションが期待どおりにトリガーされなかった場合:
- スケジュールされたアクションがトリガー予想期間に行われた Auto Scaling グループのアクティビティ履歴を確認します。関連するアクティビティがない場合は、スケジュールされたアクションの設定を確認します。繰り返しパターンと開始時刻が意図したとおりに構成されていることを確認します。
- 繰り返しアクションの場合: 終了時刻を指定した場合、スケジュールされたアクションは終了時刻が経過すると自動的に削除されます。終了時刻が指定されているかどうかを確認するには、AWS CloudTrail API ログで、スケジュールされたアクションが設定された時刻を確認します。CloudTrail で PutScheduledUpdateGroupAction API 呼び出しを確認します。ログに API が表示される場合は、スケジュールされたスケーリングを再開するために、新しくスケジュールされたアクションを作成する必要があります。
- 設定した開始時刻と実際の開始時刻の間に数秒の遅延が発生する可能性があるので、ご注意ください。
スケジュールされたアクションがトリガーされたが、必要な変更を行わなかった場合:
- 中断されたプロセス ([起動] や [終了] など) を確認します。中断されたプロセスがある場合は、再開できます。
- 動的スケーリングポリシーが設定されている場合: 動的スケーリングポリシーによって発生したスケーリングイベントのアクティビティ履歴を確認します。スケジュールされたアクション開始時刻の前後数分で行われた履歴を確認します。そのようなアクティビティがあった場合、スケジュールされたアクションが上書きされている可能性があります。
- スケジュールされたアクションの開始時刻あたりに行われたアクティビティ履歴を確認します。同期間にトリガーするようにスケジュールされた別のアクションが設定されている場合は、新しくスケジュールされたアクションに影響しないか、上書きしないことを確認します。必要に応じて、スケジュールされたアクションを更新して、これらの衝突を解決します。
- アクティビティ履歴で、失敗またはキャンセルされた起動アクティビティまたは終了アクティビティを確認します。見つかった場合は、失敗したイベントまたはキャンセルされたイベントを展開し、[説明] から詳細を確認します。これらのエラーのトラブルシューティングの詳細については、Amazon EC2 Auto Scaling のトラブルシューティングを参照してください。
注: 1 回限りのイベントまたは繰り返しイベントの時間枠がわかっている場合、スケジュールされたアクションを使用して Auto Scaling グループを積極的にスケーリングすると便利です。事前にイベントの時間枠がわからない場合は、予測スケーリング機能を使用できます。