[アップデート] Amazon SES の専用 IP を標準からマネージドへ移行できるようになったので、標準とマネージドの違いを整理してみた

2023.05.29

いわさです。

Amazon SES はデフォルトでは他の SES ユーザーとの共有 IP アドレスを使って E メールが送信されます。
また、共有 IP 以外のオプションとして専用 IP を追加料金で利用することが出来ます。

さらに本日時点で専用 IP には「標準」と「マネージド」の 2 つの種類があります。

先日のアップデートで専用 IP の IP プールを標準からマネージドへ切り替えることができるようになりました。

今回 IP プールの切り替えを試したので紹介したかったのですが、情報を整理していると DevelopersIO にマネージド型の専用 IP に関する記事が無いことに気が付きました。
そこで今回は専用 IP について少し振り返りつつ IP プールを標準からマネージドへ切り替えてみましたので紹介します。

前述のとおり、本日時点では「標準」と「マネージド」の 2 つのタイプがあります。
どちらも追加料金で利用することができる、Amazon SES のオプションです。

専用 IP (標準)

標準は以前から専用 IP と呼ばれていたものです。
以下では専用 IP (標準とマネージド) のメリット・デメリットと共有 IP と比較した場合のメリット・デメリットを記述しています。
混在していてわかりにくかったら後から記述を見直すかもしれない。

メリット

レピュテーションの分離

専用 IP のメリットとして共有 IP では実現できないメールレピュテーションの分離が可能です。良くも悪くも自己管理する必要があります。
他の Amazon SES の利用者と分離できるという点もそうですが、IP プールを使い分けることで自分たちで利用する IP についてもレピュテーション管理を分けることができます。

IP アドレスの固定化

さらに、標準の一番のメリットとしてはおそらくはマネージドと異なり IP アドレスを固定化できる点があります。
メールプロバイダーのホワイトリストなどに送信元 IP アドレスの登録を行う必要がある場合は専用 IP (標準) を利用することになります。

デメリット

利用していなくても追加料金が発生

専用 IP 自体追加料金が発生しますが、標準の場合はメール送信に利用していなくても料金が発生します。
利用料金は IP アドレスごとに 24.95 USD/月発生します。
IP アドレスは月の利用開始したタイミングから日割りで料金が発生します。

後述しますが、大量送信のために余分に IP アドレスのオーバープロビジョニングが必要なケースがあり、ウォームアップ期間も考えると使用していない間に発生する利用料金が気になるところです。

IP アドレスの追加にリードタイムが発生する

次に、ユーザー側で自由に IP アドレスを追加・削除できるわけでなく、AWS サポートを介する必要があるという点を理解しておきましょう。
AWS サポートを通して専用の IP を払い出ししてもらう必要があります。

また、解約にも AWS サポートへのリクエストが必要です。

何度か AWS サポートとのやり取りが発生する場合があります。
私が確認した際にはリジェクトなどはなく 2~3 営業日で IP アドレスが作成されていたと思います。参考までに。

発行されると、次のように Amazon SES のコンソール上で IP アドレスが確認できるようになります。
デフォルトでは ses-default-dedicated-pool に追加されます。この IP プールは設定セットを使わない、あるいは IP プールを指定しない場合に使用されるデフォルトの IP プールです。

ウォームアップが必要

上記を見て頂くとわかりますが、専用 IP は IP ごとにウォームアップが必要です。
IP を取得しても送信実績がないので、すぐに大量のメールを送信できるわけではありません。

ただし、デフォルトでは自動ウォームアップ機能によって Amazon SES が数日かけて各メールプロバイダーに対して少しづつメール送信を行ってくれます。
ドキュメントによると 45 日かけて最大 50,000 件の送信に達するようです。自動ウォームアップ機能はとても良いですね。

Warming up dedicated IP addresses (standard) - Amazon Simple Email Service

ただし、ウォームアップ後にそれ以上に送信件数が増加するとそのアドレスからの配信をメールプロバイダー側でブロックする可能性があります。
ウォームアップ完了後もメール送信レピュテーションの維持をし続ける必要があります。

標準の自動ウォームアップではレピュテーション維持が必要なメールプロバイダーごとに毎日 1,000 通前後の E メールを送信する Amazon SES が管理するウォームアッププランに基づいてウォームアップされます。(参考

上記のウォームアッププランではなく独自にウォームアップを行う場合は自動ウォームアップを無効化して、独自に毎日一定のメールを送信し続けて手動ウォームアップを行うことも可能です。

専用 IP (マネージド)

専用 IP (マネージド) は 2022 年 10 月 ごろから利用できるようになった機能です。

IP アドレスごとのレピュテーションに応じてメールプロバイダーにどれだけ送信できるかという概念があるため、例えばメールを大量送信する場合などはレピュテーションの状況に応じて複数の IP アドレスが必要になる場合があります。
Amazon SES では IP プールに複数の IP アドレスを割り当てておくことでメール送信時に複数の専用 IP を使って送信することが可能です。

ただし、前述のとおり専用 IP (標準) は追加や削除にサポートリクエストが必要だったり、時間をかけてウォームアップが必要になるので IP アドレスの増減は簡単ではありません。
そのため従来は専用 IP アドレスを事前にオーバープロビジョニングさせておくケースが多かったそうです。

マネージドではそのあたりをうまいことコスト効率よくやってくれます。

メリット

IP アドレスの追加・削除を管理しなくて良い、お任せ

専用 IP (マネージド) では追加・削除の際に AWS サポートへリクエストが不要です。
ユーザー側で IP の追加・削除という操作は行いません。メール送信パターンに基づいて自動で追加と削除を行ってくれます。
特定プロバイダーへの送信クォータが低いと Amazon SES が検出した場合は、自動で IP プールをスケールアウトとして対象プロバイダーへより多くの IP アドレスを割り当てます。

ウォームアップもお任せ

ウォームアップについても現在の容量に基づいてメールプロバイダーごとに自動で送信を行ってくれます。
標準と異なり、インテリジェントウォームアップと呼ばれる機能で送信トラフィックパターンによって有効なプロバイダーへウォームアップします。
公式ドキュメントで紹介されている例として、例えば全ての送信先が Gmail だった場合には Gmail でのみウォームアップされます。
もし別のプロバイダーへ送信するトラフィックパターンが増えた場合は徐々に対象プロバイダーへの送信数を増やします。
また、この場合はウォームアップ状態が低い状態から開始されますが、ウォームアップレベルが十分になるまでは対象プロバイダーに対して他の Amazon SES ユーザーとの共有 IP を使って送信する機能があります。

料金も柔軟

マネージドも共有 IP と比較すると追加料金が発生します。
しかし標準と比較するとマネージドの場合は料金が少し柔軟です。

ベースとして 1 アカウントあたり 15 USD/月がまず必要です。
プラスでメール送信件数に応じた従量課金となっています。

1,000件あたりの料金 単価が適用される送信件数の範囲
0.08 USD 0〜1,000 万件/月
0.04 USD 1,000 万〜5,000 万件/月
0.02 USD 5,000 万〜1 億件/月

※上記を超える件数は要問い合わせ

デメリット

IP の固定化ができない

デメリットとしては専用 IP の管理を Amazon SES に任せるので、固定化ができません。
ホワイトリストなどへの登録が前提になる利用方法の場合は専用 IP (標準) を選択して頂くのが良いと思います。

標準からマネージドへ移行してみる

本来試したかったやつはこれです。
今回専用 IP (マネージド) の機能が拡張されて、標準からマネージドへ移行できるようになりました。こちらを試してみたいと思います。

方法は簡単で標準の IP プールを選択して「マネージド型プールに変換」を選択します。
以前まではこのボタンがありませんでした。

上記を見て頂くと ses-default-dedicated-pool のチェックボックスが非活性になっていることがわかります。
今回のこの変換機能はデフォルトの ses-default-dedicated-pool では利用することができません。

プロビジョニングした IP アドレスを独自の IP プールに移動して、その IP プールをマネージド型へ変換してみます。
注意点として、専用 IP がマネージドに移動されるので、ユーザーが管理できなくなります。そして Amazon SES によって冗長 IP が削除されます。
そのため、現在管理している IP アドレスがプロバイダーなどのホワイトリストに登録されている場合は気をつけてください。

変換すると次のようにカスタム IP プールがマネージドへ移行されました。

標準 IP を確認してみると、プロビジョニングしていた IP アドレスが存在しないことが確認できます。
この機能を使うと専用 IP (標準) の解約リクエストが要らない?

sesv2 get-dedicated-ipsコマンドでも確認ができませんね。

% aws sesv2 get-dedicated-ips
{
    "DedicatedIps": []
}

また、公式ドキュメントには「You will no longer be charged per IP, but instead will be charged based on the volume you send through the managed pool.」と説明されています。
後日 Cost Explorer を確認してみたところ、 料金が切り替わっていることが確認できました。

ちなみに、マネージドから標準への逆方向の変換はできませんのでご注意ください。

さいごに

本日は Amazon SES の専用 IP を標準からマネージドへ移行できるようになったので、標準とマネージドの違いを整理してみました。

まず、専用 IP は標準でもマネージドでもウォームアップやレピュテーション維持の概念があります。
小規模でも大規模送信でも、レピュテーション分離の要件がないのであれば専用 IP ではなく共有 IP で良いと思います。

そしてレピュテーションの分離が必要な場合でもレピュテーションを維持するために一定以上の送信が必要です。
そのため小規模な利用の場合も公式ドキュメントでは共有 IP の利用が推奨されています。

上記以外の場合は専用 IP を利用することができます。

本日時点では手軽にプロビジョニング・スケールアウトをお任せできて料金も柔軟で、他のユーザーと IP アドレスを共有しないという従来の専用 IP の利点がありつつ、ウォームアップレベルが低い場合は共有 IP をうまいこと併せて使ってくれるという「専用 IP (マネージド)」が使いやすいと思います。

ホワイトリスト登録などで固定 IP が必要な場合は「専用 IP (標準)」を利用することになります。