はじめに ECS schedule taskなどで動かしているバッチ処理はアプリケーションの方で冪等性を 担保していることが多いと思います。ただ、今回はアプリケーションの変更が 難しい際に、タスクの多重起動を防ぐことによって、問題を解消するアプローチ方法について書きます! 構成 StepFunctionsからECS taskとLambdaは起動可能なので ECS taskとEventBridgeの間にStepFunctionsを挟み、そこで、Lambdaを 呼び出し、すでに起動しているタスク(ステートマシン)がないかを確認するという処理を行います。 StepFunctionsのフロー ステートマシンは以下のように定義していきます! { "StartAt": "get execution id", "States": { // Lambdaに渡す引数の準備 "get execution id