概要
AWSを使っていたら、いつの間にかEventBridgeにスケジューラという機能が追加されていたので、使ってみたら便利すぎたって話!
2022年末にリリースされていたみたいです。
実際にコスト削減に成功した話は、こちらをご覧ください。↓
AWS EventBridgeスケジューラで圧倒的コスト削減に成功した話
EventBridgeスケジューラとは
EventBridgeスケジューラとは、定期的なイベントを、自動的にトリガーするためのサービスです。「毎日」「何時間ごと」など、時間に依存したタスクを事前にスケジューリングすることで、タスクを自動で管理することができます。スケジュールは、cron式、あるいはレート式を使用して設定します。スケジューラを使用することで、手動でタスクを管理するときに生じる人為的なミスを防ぎ、簡単にタスクを管理することができます。
EventBridgeルールとの違い
EventBridgeルールは、イベントパターンやスケジュールに基づいてタスクを管理する機能です。EventBridgeスケジューラは、EventBridgeの機能のひとつで、スケジュールに基づくタスク管理に特化しています。
EventBridgeルールと比較して、扱えるAWSリソースが多いため、時間依存の実行タスクについては、EventBridgeスケジューラを活用することで、最適な運用を目指すことができます。
EventBridgeスケジューラは、UTC以外の様々なタイムゾーン・サマータイムをサポートしており、270以上のサービス、6000以上のAPIをターゲットとして指定できます。
EventBridgeスケジューラ使用してコスト削減してみたリソース
- ECS
- devやstg環境で夜間帯のタスクを0に変更、本番環境のタスクを減少
- RDS
- devやstg環境で夜間帯インスタンスをダウン
- VPCエンドポイント
- devやstg環境で夜間帯インターフェイスタイプのVPCエンドポイントを削除
などです。
大きなコスト削減効果が見込めるほか、オートスケーリングに加えて積極的なスケーリングにより、パフォーマンスを安定させることが可能です。
詳細は別の記事で紹介します!
Lambdaは不要?
以前はEventBridgeルールとLambdaでコントロールしていましたが、EventBridgeスケジューラのAWSリソースのカバレッジが広いため、Lambdaは不要か?というとそんなことはありません。
前述のVPCエンドポイントの削除→作成ステップを実現する場合、EventBridgeスケジューラだけでは新しく作成されたVPCエンドポイントを削除時に特定することができません。
タグなどでフィルタして特定できれば良かったのですが、パラメータが対応していませんでした。
上記のようなケースでは本記事作成時点で、やはりLambdaやStepFunctionsを使うしかないのかなと思います。
最後に
本機能を知ってからというもの便利すぎて使い倒しております!
やはりお手軽かつ多様なAWSリソースをコントロールできるのがいいですね。
EventBridgeスケジューラを使用して、コスト削減した際のコードを見たい方は、次の記事をご覧ください!↓