LoginSignup
0
0

More than 1 year has passed since last update.

AWS ECS上でRails上で動作するバッチをスケジューリングする

Posted at

whenever+cronを使ってRails上のバッチを定期的に処理を行なっていたのだけど、
マネージドな環境に移したくなった。

手順

railsをdockerに詰める

普通にsrc詰めて、bundle installする

cmd

cmdにrails runnner Hoge::moge を設定する

ECRへpushする

ECSタスク定義を設定する

↑のECRを設定する
Fargateを指定する
ポートは指定しなくて良い

テスト実行

cli run-taskコマンドで試してみる。

aws ecs run-task --launch-type FARGATE \
    --cluster #{cluster-arn} \
    --task-definition #{task define arn} \
    --network-configuration #{vpc config}

ECSタスクスケジュールへ登録

ECSクラスター => タスクスケジュールへタスク定義を登録する
実行間隔をcronとかで設定可能

補足

railsをapiサーバとして使っている場合、dockerコンテナ・ECRは共用出来そう
apiサーバの場合cmdが puma とかになってると思うので、
タスク定義で、cmdをrails runnerで上書きしてあげる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0