こんにちは、ナイトレイインターン生の保科です。
Wantedlyをご覧の方に、ナイトレイのエンジニアがどのようなことをしているか知っていただきたく、Qiitaに公開している記事をストーリーに載せています。
今回はエンジニアの大塩さんと船津さんの記事です。
少しでも私たちに興味を持ってくれた方は下に表示される募集記事もご覧ください↓↓
概要
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スケジューラを使用して、コスト削減した際のコードを見たい方は、次の記事をご覧ください!↓