Amazon SESで設定セット削除後にメール送信が”Configuration set <configuration-set> does not exist.”となり送信できなくなった時の対処

2022.02.08

こんにちは、CX事業本部 IoT事業部の若槻です。

今回は、Amazon SES設定セット(configuration set)削除後にメール送信がConfiguration set <configuration-set> does not exist.となり送信できなくなった時の対処についてです。

設定セット(configuration set)とは?

設定セット(configuration set)を作成して検証済みのIdentityに紐付けると、そのIdentityを使用してSESから送信されるメールに設定セットのルールを適用することができます。

設定ルールにより送信メールに次のようなルールを適用することができます。

  • 送信メールの別のサービスへの発行
  • メールの開封やクリックの追跡
  • 専用IPアドレスの設定
  • など

参考

事象:設定セットを削除したIdentityからメールが送信できない

検証のためIdentityに設定セットtest-setを設定していました。

検証後に設定セットは不要となったため、コンソールから削除を行いました。

その後、削除された設定セットが設定されていたIdentityを使用してメール送信を行おうとすると、Configuration set <test-set> does not exist.というエラーとなり送信が失敗するようになってしまいました。

$ aws sesv2 send-email \
  --from-email-address ${fromAddress} \
  --destination ToAddresses=${toAddress} \
  --content '{"Simple":{"Subject":{"Data":"テスト件名"},"Body":{"Text":{"Data":"テスト本文"}}}}'

An error occurred (NotFoundException) when calling the SendEmail operation: Configuration set <test-set> does not exist.

原因調査

送信が失敗するIdentityをコンソールで開くと、削除した設定セットの設定が残っており、またリソースが存在しない旨のメッセージが画面上部に表示されています。

どうやら設定セットの設定をIdentity側で無効にする前に削除したため、設定の不整合が発生してしまったようです。

対処

前節のIdentityのコンソールで、[Configuration set]タブの[Default configuration set]で[Edit]をクリックします。

そして[Assign a default configuration set]のチェックを外します。

外したら[Save changes]をクリック。

するとIdentityから設定セットの設定を削除できています!

このIdentityを使用して再度メール送信を行うと、問題なく送信できるようになりました!

$ aws sesv2 send-email \
  --from-email-address ${fromAddress} \
  --destination ToAddresses=${toAddress} \
  --content '{"Simple":{"Subject":{"Data":"テスト件名"},"Body":{"Text":{"Data":"テスト本文"}}}}'
{
    "MessageId": "0106017ed9d9f2ca-895f1839-236d-4a33-93ab-9e3116769314-000000"
}

おわりに

Amazon SESで設定セット(configuration set)削除後にメール送信がConfiguration set <configuration-set> does not exist.となり送信できなくなった時の対処についてでした。

分かりやすい事象だったのでスピード解決に至れてよかったです。しかし本番環境などでやらかすとメール送信停止という大きめな障害に繋がりかねないので、こんな仕様なんだなというのは意識をしておきたいです。

参考

以上