为什么亚马逊SES是最昂贵的"便宜"电子邮件提供商
Amazon SES 宣传电子邮件的最低价格:每 1,000 条消息 $0.10。这是真的,也是赢得电子表格的数字。但这个价格只买你一样东西——字节离开邮件服务器。运行事务性电子邮件实际需要的一切——知道什么反弹了、在 AWS 暂停之前捕捉垃圾邮件模式、看到可交付性图——都留给读者去解决。我们这里不是在理论化——我们在 SES 上启动了 Mailer To Go,这就是我们不再在那里运行的原因。这篇文章给这个练习定价。有条不紊地,标题中的 $0.10 变成了实际的每 1,000 条 $4–6,到时候你能够安全运营——而且你已经自费重建了 MailerToGo、SendGrid 和 Mailgun 包含的东西。
承诺
SES 将自己宣传为 AWS 规模和 AWS 价格的电子邮件:每千条便士、弹性、按需付费、紧挨着你的其他堆栈。对于原始吞吐量,它可以交付。
现实:SES 是发送管道,不是电子邮件平台
通过 SES 发送消息并回答任何事务性发送方必须回答的问题:
- 过去一小时有多少反弹,哪些地址?
- 我现在的投诉率是多少——我要触发 AWS 的 0.1% 限制并被暂停吗?
- 哪个营销活动或代码路径正在生成垃圾邮件投诉?
- 特定邮箱提供商的我的交付率下降了吗?
- 谁退订了,他们是否在所有地方都被抑制了?
SES 开箱即用不回答任何这些。没有仪表板,没有可以读取的事件源,没有抑制 UI,没有声誉图,没有异常检测。数据只作为你必须捕捉、存储、聚合和可视化的单个事件的消防水管存在。而且你必须——SES 强制执行硬反弹率低于 ~5% 和投诉率低于 ~0.1%,如果你超过这些,你第一次看到的”仪表板”将是告诉你账户正在审核的电子邮件。
你必须构建什么
要识别和防止垃圾邮件和滥用——事务性电子邮件的基本条件——你为 SES 发出的每个事件建立管道:发送、交付、反弹、投诉、拒绝、打开、点击。跟踪你需要的一切来保持安全,这很容易是每条消息 5 到 10 个事件。
SES ──(configuration set event destination)──► SNS topic
│
▼
SQS queue (buffer so nothing is lost)
│
▼
Lambda (parse, run your spam/deliverability checks, write to your DB)
│
┌───────────┴───────────┐
▼ ▼
CloudWatch metrics your database
+ dashboards (suppression, history)
│
▼
the graph SES never gave you
这里是陷阱:该管道按事件计费,不是按电子邮件计费。 所以你构建的监控来监视垃圾邮件和可交付性问题成本是发送成本的 5–10 倍——而且倍数随着你变得更加小心而增长。
练习定价
采用一个现实的 SaaS 发送每月 1,000,000 封事务性电子邮件。有完整事件跟踪,这大约是每月 700 万个事件流过管道。说明性美国地区数字(验证当前 AWS 定价;重点是形状,不是美分):
| 层 | 它为你买什么 | ~$/月 | ~$/1,000 |
|---|---|---|---|
| SES 发送 | 消息离开 | $100 | $0.10 |
| SNS | 扇出 ~700 万个事件 | ~$4 | ~$0.00 |
| SQS | 可靠地缓冲事件 | ~$8 | ~$0.01 |
| Lambda | 解析 ~700 万个事件,运行垃圾邮件/可交付性检查,写入你的数据库 | ~$60 | ~$0.06 |
| CloudWatch(自定义指标 + PutMetricData + 日志) | SES 遗漏的反弹/投诉/交付/声誉图——按域、营销活动和邮箱提供商的高基数 | ~$450 | ~$0.45 |
| NAT / 数据传输 | 让它在你的 VPC 内通话 | ~$35 | ~$0.04 |
| 事件处理小计 | 监视垃圾邮件和可交付性的机器 | ~$560 | ~$0.56 |
| SES 发送,供比较 | $100 | $0.10 |
再读一遍:监控成本大约是电子邮件本身的 5–6 倍。 SES 账单上最便宜的一行是发送。CloudWatch 是昂贵的部分——自定义指标基数是无声杀手,因为要实际发现滥用,你需要按发送域 × 事件类型 × 邮箱提供商分解的指标,该计数会爆炸。(AWS 自己对”SES 没有仪表板”的回答,Virtual Deliverability Manager,是这一切之上的付费附加组件——另一个约 ~$0.07–0.12 每 1,000。)
而这仍然只是 AWS 发票。另一半是人:
| 层 | ~$/月 | ~$/1,000 | |
|---|---|---|---|
| 构建管道(摊销,第一年) | 2–4 周来设计 SNS/SQS/Lambda + 抑制 + 警报 | ~$2,000 | ~$2.00 |
| 维护 + 待命 | 它滞后,AWS 更改 API,出现新事件类型 | ~$1,500 | ~$1.50 |
| 完全加载的实际成本 | ~$4–6 / 1,000 |
$0.10 是真实的。它只是第一个——也是最小的——一行。
规模越大,情况越糟糕,而不是越好
SES 通常的辩护是”但大批量时无敌”。不是,这就是为什么:发送线性扩展($0.10/1,000),而事件处理对你扩展不利。 更多电子邮件意味着更多事件(5–10×)、更多 Lambda 调用,以及——最坏的是——当你添加域、营销活动和更细粒度的滥用监控时,CloudWatch 指标基数更高。你变得越大越谨慎,可观察性税就越多主导。这不是规模优势;这是规模陷阱。
迷宫
更深层的问题不是总数——而是总数的形状。你的”SES 成本”不是一个你可以与竞争对手比较的数字;它分散在六个服务、一个 VPC 和工程路线图中。每一项都是 AWS 特定的:配置集、SNS 主题策略、CloudWatch 指标数学、IAM。没有任何是可移植的。你构建的越多以使 SES 可用,你就越被锁定到一个只在 AWS 上工作的定制堆栈中,只有你的团队理解——而且变得越来越难回答一个业务应该能够轻松回答的问题:发送电子邮件实际上花了我多少钱,它有多好?
我们知道是因为我们尝试过
我们没有从电子表格中理论推导出这个——我们在 SES 上启动了 Mailer To Go。而且我们恰好撞上了这篇文章描述的墙:一旦操作 SES 的完全加载成本摆在我们下面,我们就不能为我们的客户组织一个比简单地告诉他们使用竞争对手更好的价值提议。我们在 SES 上的实际成本高于我们打算击败的竞争对手的标价。具体杀手:我们推入CloudWatch 和 Lambda 的事件只是为了监视垃圾邮件和可交付性问题就比 SES 发送本身的成本高 5–10 倍。 账单上最便宜的东西是电子邮件;昂贵的部分是能够看到它。所以我们重建了交付堆栈——仪表板、事件管道、抑制和声誉工具——作为我们自己的基础设施,而不是作为附加到其他人管道上的税。这就是你支付的差异,也是为什么我们定价页面上的数字是整个数字。
不要只相信我们的话
该模式有充分的文档记录——从 AWS 自己开始:
- AWS 让你构建监控。 亚马逊自己的指导是通过 SNS 设置反弹和投诉通知并自己处理事件发布——没有内置处理(AWS:设置反弹和投诉通知)。
- AWS 会在你不这样做时暂停你。 SES 强制执行反弹和投诉阈值,当超过这些阈值时将账户置于审核中;清除审核可能需要数天到数周(AWS:发送审核过程)。
- CloudWatch 是一个已知的账单陷阱。 它的每指标、基数驱动定价将几美元的监控变成数百美元一个月,一旦你按维度分解指标——这正是你需要的粒度来发现滥用(CloudWatch 定价默认可达 $300/月)。
- 独立评论持续将工程时间列为 SES 的最大隐藏成本——$0.10 发送价格与反弹处理、预热和监控的数百美元月成本并排,不断的判决是 SES 只有在你已经大规模运行 AWS/DevOps 实践时才值得(SendGrid vs AWS SES)。
一个诚实的调和:休闲定价指南将基本 SES CloudWatch 监控放在 $10–30/月。这是玩具版本——足以绘制图形,不足以捕捉滥用。实际标记垃圾邮件和可交付性问题的高基数指标(按域、营销活动和邮箱提供商)是运行到数百的指标。该差距就是故事。
背带加吊带替代方案
MailerToGo——就像 SendGrid 和 Mailgun——包括 SES 让你构建的东西:仪表板、事件 webhooks、交付/反弹/投诉分析、自动抑制、声誉管理和垃圾邮件/滥用控制,在一个每条消息的价格中。这个数字可以直接比较,一对一,与任何同行——没有六服务重建,没有每事件惊喜,没有增长速度比你更快的指标基数账单。
诚实的细微差别,因为数学值得:SES 的发送价格确实是最低的,如果你真正的发送并忘记,零监控,你会支付便士——直到你的反弹或投诉率触发限制,AWS 暂停你,毫无警告。你构建保持你安全发送的监控那一刻,账单反转,而且随着你增长反转得越多。
最便宜的购买,最昂贵的拥有。
直接比较?看看Mailer To Go vs Amazon SES,当你准备好时,如何从 Amazon SES 迁移。对可交付性方面是新手?从端到端电子邮件认证和透明的每条消息定价开始。