【小ネタ】ECSのタスクスケジュールはEventBridgeから登録するとタスク定義の最新リビジョンから起動できる

2020.10.07

Amazon ECS - タスクスケジュールの設定

Amazon ECSのタスクスケジュールは、その名の通り指定したタスクを実行するスケジュールを設定する機能です。

スケジューリング Amazon ECS タスク

タスク定義を定義する際にタスク定義のリビジョンを指定しますが、いずれかのリビジョンを選択する必要があります。例えば、10(latest)を選択してみます。

作成されたタスクスケジュールを見ると選択したリビジョンで設定されています。

タスク定義を更新し、最新のリビジョン(11)が登録されました。

タスクスケジュールの設定を見てみましょう。

新しいリビジョンが登録されてもタスクスケジュールの設定は変更されません。都度リビジョンを変更する必要があります。 指定したリビジョンを使い続ける場合はなんの問題もありませんが、最新のリビジョンを常に選択したい場合に厄介です。

Amazon EventBridge - スケジュールを設定

そこで登場するのが、Amazon EventBridge(旧Amazon CloudWatchEvents)です。Amazon EventBridge(以下、EventBridge)では、様々なAWSリソースをターゲットに設定できます。

What Is Amazon EventBridge?

ターゲットには、Amazon ECS tasksも含まれているのでEventBridgeでルールを作成していきます。 「ターゲットを選択」の項目「タスク定義のリビジョンの設定」で最新が選択できます。

ルールを作成したらECSのタスクスケジュールを見てみましょう。EventBridgeによって作成されたタスクスケジュールがあることを確認できます。

タスクスケジュールの詳細を見ると、EventBridgeで最新(latest)のリビジョンを選択して作成されたスケジュールには、タスク定義のリビジョンが記載されていません。EventBridgeで最新(latest)を選択しているのでリビジョンは表示されません。

設定したスケジュールでタスクが起動すると最新のリビジョンで起動されたことが確認できます。

タスクの定義を更新し、新しいリビジョン(12)を登録します。

タスクが起動すると、新しいリビジョン(12)で起動されたことが確認できます。

さいごに

タスク定義の最新のリビジョンを指定できるEventBridgeの操作方法をご案内しました。EventBridgeは様々なターゲットを選択できるのでイベント、スケジュールを一元的に管理することができるサービスだと考えます。