なぜ書くのか
AWSのECSを使う際にタスクスケジュールはcronみたいな使い方ができて、めちゃ便利なんすけど
その際にタスクをlatestに指定する方法がなかなか見つからなかったので書きます
対象
- AWSのECSをFargateを使って運用してる
- ECSでタスクスケジュールを定期的に移動するものとして使いたい
書くこと
- タスクスケジュールの起動タスクのリビジョンを最新にする方法
書かないこと
- AWSの説明
- ECSの説明
- タスクスケジュールの作り方
流れ
- タスクスケジュールは何してる?
- タスクスケジュールの起動種類
- タスクスケジュールのリビジョン最新化
タスクスケジュールは何してる?
すごくざっくりの僕理解で書きます。
ECSはDockerで動くもので、タスクスケジュールは特定のことを
任意のタイミングのみで実行したいときに基本使うんだと理解してます。
で起動条件をCloudWatchイベントで管理しています。
なんでかというと起動の種類が時間単位とかなのでCloudwatchなんだと勝手に思っています。
間違ってたら遠慮なくツッコンでください。
タスクスケジュールの起動種類
- Cron
- cronです、cronを知らない人はお手数ですが調べてください
- 定期処理
- 1分毎とか1時間毎とかで選べます
タスクスケジュールのリビジョン最新化
というわけで、ECSのタスクスケジュールからタスクスケジュールは作成するくせに
起動条件はCloudwatchにできあがるということですぐには見つかりません。(どこかに書いてあるのかも)
で、タスクスケジュールを作ると作った時のリビジョンでひたすら繰り返されてしまい、プログラムを更新しても
一切反映されないのです。おっと話がそれました。
では実際どこから変えるのかというとCloudwatchにイベントという項目があるので
そこから変えることができます。タスクスケジュールでつくったものと同名のものが
Cloudwatchのイベントにあるのでそれを選択して編集をします。
編集に行けばわかると思うので詳しくは書きませんが
そこでリビジョンを「latest」というものに設定することができます。
これで毎回最新のプログラムで起動されるようになります。
注意事項
常に最新になるのはいいのですが、間違えて動かないプログラミングとかをあげてしまうと
ひたすらタスクが立ち上がるという地獄的にお金がかかる状況になるかもしれないのでお気をつけください。
いま起動タスクの上限を監視できないのか調べてるのでわかったらまた書きます!
ではまた