1. ホーム
  2. amazon-web-services

AWSでcronを使わずにスケジュールタスクを実行する

2023-12-16 12:43:19

質問

現在、私はすべてのcronjobsを置くamazonの単一のサーバーを持っています。 私はこの単一障害点を取り除き、すべてのタスクを Web サービスとして公開したいと思います。 私は、呼び出されたときにタスクを実行するいくつかのサーバにVPC ELBの背後にあるサービスを公開したいと思います。

Amazon (AWS) が提供する、スケジュールされた間隔で反復的なジョブ (本当に Web サービスを呼び出す) を実行できるサービスはありますか? 私は、時間/日の指定という点では cron 機能を維持し、ドライバ (適切な時間にエンドポイントを呼び出すもの) の HA を AWS にファームアウトできることを切に希望しています。

SQSがWebエンドポイント(複数)を提供するのはいいのですが、私が知る限りでは、それらをスケジュールすることはできないようです。 SWFもあまり適していないようです。

どのように解決するのですか?

AWS 発表 は、2015年のre:Inventカンファレンスで、Lambdaのスケジュールされた関数をサポートすることを発表しました。この機能により、ユーザーはcronのような構文を使って、Lambdaの関数をスケジュール通りに実行できるようになります。この機能は Lambdaのドキュメントでは、例として Pythonを使用してスケジュールされたイベントを実行する例を示しています。

現在、スケジュールされたlambdaが実行できる最小の解像度は1分です(cronと同じですが、systemdのタイマーほどきめ細かくはありません)。

また Lambder プロジェクトは、Lambda上のスケジュールされた関数の使用を簡素化するのに役立ちます。

λ ゴードンのcronの例 は、スケジュールされたラムダ関数をデプロイするための、おそらく最もシンプルなインターフェイスを持っています。


後世のために保存されたオリジナルの回答です。

Eric Hammondや他の人が述べているように、スケジュールされたタスクのためのAWSのネイティブサービスはありません。他の回答で言及されているように、回避策と半分の解決策しかありません。

現在の選択肢をまとめると

早く良い解決策が出てくると良いですね。