AWSでcronを使わずにスケジュールタスクを実行する
質問
現在、私はすべての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のネイティブサービスはありません。他の回答で言及されているように、回避策と半分の解決策しかありません。
現在の選択肢をまとめると
- Eric Hammond が説明した、スケジュールに従って開始および停止するシングル インスタンスのオートスケール グループです。
- シンプルワークフローサービスのタイマーを使用する という、全く直感的でないものです。これは ケーススタディ は、JPL が SWF を使って分散クーロンを構築したことに言及していますが、実装の詳細は不明です。また コード例 への参照があります。
- のようなものを使って自分で実行します。 クーロンロック .
- のようなものを使う。 信頼できない街時計 (UTC) を利用して、Lambdaの関数をスケジュールで実行します。Lambdaは現在、VPC内のリソースにアクセスできないことを忘れないでください。
早く良い解決策が出てくると良いですね。
関連
-
[解決済み] DynamoDBテーブルの複数の項目を一度に更新する方法
-
[解決済み] DNS名foo.を持つRRSetはゾーンバーで許可されていません。
-
[解決済み] CloudFrontがオリジンに接続できなかった
-
[解決済み] kubectlエラー EKSクラスタにアクセスする際、サーバーにログインする必要がある(Unauthorized)。
-
[解決済み] 全ユーザーのcronジョブを一覧表示する方法を教えてください。
-
[解決済み] 対話型エディタを使わずに、Bashを使って自動的にcronジョブを作成する方法は?
-
[解決済み] dockerコンテナ内でcronジョブを実行するには?
-
[解決済み】N分+オフセットごとにCronジョブを実行する
-
[解決済み] AWS Lambdaのスケジューリングされたタスク
-
[解決済み] Linuxのcronジョブを「Amazon流」に変換する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DynamoDBMapperとTable for DynamoDB Tablesの違いとは?
-
[解決済み] AWS S3 Bucketの名前を変更する方法
-
[解決済み] aws cloudformationはリストでFn::Joinを使用します。
-
[解決済み] エラー: networkMode 'awsvpc' が指定された場合、ネットワーク構成を提供する必要があります。
-
[解決済み] DynamoDBでカラムを追加する方法
-
[解決済み] コード NoSuchBucket
-
[解決済み] AWSのstsは、1つのコマンドの役割を担う
-
[解決済み] Terraform AWS Provider の有効なクレデンシャルソースが見つかりません。
-
[解決済み] `aws s3 cp` vs `aws s3 sync` 動作とコスト [終了しました]。
-
[解決済み】LightsailとEC2の違いは何ですか?[クローズド]