masalibの日記

システム開発、運用と猫の写真ブログです

タスクを消すのを忘れてやらかしてしまった

ユーザー様に同じメールが4通も届くという障害を起こしてしまった
ユーザー様、ご迷惑をかけて申し訳ございません。

f:id:masalib:20170329205727p:plain


とあるクラウド環境で
動いているサーバーをイメージ化(awsでいうとAMI)にして
横展開をすることになりました
イメージ化が無事できた
そのイメージをもとにインスタンス(サーバー)を立てました
問題なく動きました

よかった
1日置いて様子を見ようと放置しました

次の日くると
とんでもない事が起きました
ユーザーへの通知メールが4通も送られている

ああああああああああああ
もともとのイメージ化していたサーバーには
タスクスケジューラが設定されていた

そのタスクが動いてしまい・・・
4通も送ってしまいました

4通の理由は、事前にメール送信の内容を
DBに作成してから送るシステムで
送る内容が2通できてしまいました
同時アクセスでの排他制御とかかけていないので
できたメールが2回配信されてしまい
合計4通もメールを送ってしまいました
ログ集計とかどうでもいいような所は
なぜか排他制御があり、2重に取られることがありませんでした

教訓としては
・イメージ化する場合はタスクスケジューラを停止して作る
インスタンスを立ち上げたらタスクスケジュールを見る
・メール配信機能は排他制御をつける
・インフラ担当が自分しかいないのでできるだけ上司に説明してリスクを分散する