コンテナ化やサーバレス化が進み、従来実装していた方法が通用しない場面が出てきています。 その代表的なものの一つがバッチ処理です。 従来はバッチ処理を行うサーバが存在し、crontabコマンドで設定などを行っていました。 しかしコンテナ化、サーバレス化の影響でバッチサーバというものは存在しなくなります。 AWS上でサーバレスなバッチ処理システムを構築するための方法の一つにCloudWatchEvents(最近、EventBridgeになりました。以下CWEと略します)を利用する方法があります。 しかし、このCWEにはイベントが多重に発生するという仕様があります。なお、Kubernetsの CronJob やGCPの Cloud Scheduler でも同様の仕様になっています。 バッチに同実行耐性や冪等性を持たせておけば問題ないのですが、長時間バッチや特殊処理を行うバッチ、作られたのが古くて