2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon SESを東京リージョンに引っ越した話

Last updated at Posted at 2025-12-09

この記事は 【ReviCo】 Advent Calendar 2025 の8日目の記事です。

はじめに

こんにちは。
ReviCo開発チーム責任者のかなっぺです。

今回はAmazon SES(以下SES)をオレゴンリージョンから東京リージョンに引っ越した話を書きます。

前提

  • ReviCoでは顧客から委託を受けてメールを配信する機能があり、メール送信サーバーとしてSESを使用しています。
     
  • SESの送信IDは顧客が持っているメールアドレスやドメインを使用しており、顧客の数だけ送信IDが登録されています。
     
  • ReviCoがローンチした当時は東京リージョンにSESが無く、オレゴンリージョンを使用していました。

なぜ引っ越したか

  • SESの送信ID認証にはメール認証とドメイン認証の2種類があり、ReviCoでは顧客の事情(DNSにレコードを追加するのには時間がかかる等)で使い分けていました。
     
  • 2024年のGoogleのメール送信者ガイドライン改定により、メール認証は実質的に意味をなさなくなってしまいました。(FromヘッダーのDKIMが効かず、一括送信者の要件を満たせないため)
     
  • メール認証の顧客をドメイン認証に移行する対応をしていましたが、同一顧客でメール認証とドメイン認証が混在するケースが増え、管理しきれなくなってしまいました。
     
  • AWSから「一括送信者の要件を満たしていないメールがある」と警告が来たこともあり、メール認証の一掃と、前々からいつか東京リージョンに変えたかった(セキュリティヒアリングシート等で「メールサーバーだけオレゴンです」と書くのが面倒だった)ので、これを機に引っ越すことにしました。

やったこと

  • ドメイン認証のIDを東京リージョンにコピー
    いつの間にかDKIMのリージョン間コピーができるようになっていたので、それを利用しました。
    image.png
    送信IDは数百単位あり、プログラムを組んでコピーできれば良かったのですが、単発作業なのと、本番環境のアクセスキーを発行するのに色々制約があったので、マネコン上で全部手でコピーしました。
    (テックサポエンジニアさんに依頼したら瞬速で終わらせてくれました。感謝…)
     
  • クォータの数値合わせ
    オレゴンではSending quota(1日の送信数)とSending rate(1秒間の送信数)を引き上げてあったので、東京も同じ数値に揃えました。
    ※これが罠だった(後述)
     
  • プログラム内のリージョン変更
    全ての顧客をドメイン認証に移行することはできなかったので、東京に送信IDがあれば東京から、無ければオレゴンから送信という処理を追加しました。

本番リリース後に起こったこと

処理速度が5倍になりメール送信がスロットリング

今までメール1通送るのに2秒かかっていた処理が、メール送信サーバーが地理的に近くなったせいか0.4秒で終わるようになり、1秒間のメール送信数のクォータに引っかかりスロットリングしてしまいました。

image.png

慌ててクォータを引き上げて何とかなりました。
(100までは即反映だったので助かりました)

地球って大きいんだなと思いました…。

おまけ

引っ越し前後でメールの開封率やバウンス率を比較してみましたが、気になるような変化はありませんでした。

処理高速化は嬉しい誤算でした。
並列化したりクエリチューニングしたり色々性能改善してきましたが、引っ越しが一番効果あったとは…。

(終わり)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?