亚马逊AWS官方博客
关于 Amazon SES 你需要知道的一些事 – Tracking 篇 02
一. 前言
上一篇我们已经详述过什么是 Amazon SES,Amazon SES 邮件追踪为什么重要以及如何监控 Amazon SES 发送活动。其中我们详细介绍了如何使用 Amazon CloudWatch 监控发送活动,那么这篇我们会着重介绍和演示如何使用 Amazon Kinesis Data Firehose(下文统一使用 Amazon KDF 来替代)来监控发送活动。
二. Amazon KDF 是什么?
Amazon KDF 是一项完全托管的服务,用于将实时流数据传输到目标位置,比如 Amazon Simple Storage Service(Amazon S3)、Amazon Redshift、Amazon OpenSearch Service、Amazon OpenSearch 无服务器、Splunk,以及任何自定义 HTTP 端点或受支持的第三方服务提供商拥有的 HTTP 端点,包括 Datadog、Dynatrace、LogicMonitor、MongoDB、New Relic、Coralogix 和 Elastic。
三. 为什么要使用 Amazon KDF 发送活动?
使用 Amazon KDF 监控 Amazon SES 发送活动有以下优势:
- 近实时跟踪发送数据。Amazon KDF 可以实时传输 Amazon SES 发送数据到其他 AWS 服务进行分析。这使得可以近实时监控发送情况,比如发送量、各个事件类型数量等;
- 数据分析。通过 Amazon KDF 可以将 Amazon SES 的数据导入 AWS 服务,比如 Amazon Redshift,Amazon OpenSearch 等,利用其分析功能对发送数据做报表、建模等分析工作。这有助于更深入理解邮件发送情况,做出更好的业务决策;
- 数据存档。Amazon KDF 支持传输数据到 Amazon S3 做持久化存储,这使得 Amazon SES 的历史发送数据可以长期存档,随时查询与分析;
- 成本优化。相比自建服务,使用托管服务 Amazon KDF 和配套的亚马逊云科技大数据分析服务能够显著降低成本和运维工作量。
综上,使用 Amazon KDF 结合相关亚马逊云科技服务实现 Amazon SES 发送流程的监控,可以带来数据实时性、丰富的分析功能、成本优化等多方面好处。这对于送达能力与用户体验的持续优化是很有必要的。
四. 使用 Amazon Kinesis Data Firehose 监控发送活动
目前笔者查阅到的,使用 Amazon KDF 监控 Amazon SES 有以下方案:
对于方案一,可以参考 Link。对于方案二,可以参考 Link。今天我们主要演示方案三,使用 Amazon KDF & Amazon OpenSearch 来监控 Amazon SES 发送活动。其中的 Amazon OpenSearch 我们使用 Serverless 版本,详细可以参考此文档。
4.1 创建配置集
此步骤可以参考此系列第一篇博客的 4.1 章节。
4.2 创建 IAM Roles
此方案涉及到的 IAM Roles 如下:
其中 Amazon SES 使用 Role1 将相关发送活动明细发送至 Amazon KDF,Amazon KDF 再使用 Role2 将发送活动明细传输至 Amazon OpenSearch Serverless。接下来我们创建 Role1。
将以下内容复制到名为 ses-role-trust-policy.json 的文件中
创建角色
将以下内容复制到名为 ses-role-policy.json 的文件中
创建策略
附加策略到 Role1
关于 Role2,我们直接使用 Console 上自动创建出来的角色。
4.3 创建 OpenSearch Serverless
创建 Collection,name 输入 my-poc-oss
选择 Standard create
Access type 选择 Public,并且勾选 Enable access to OpenSearch Dashboards
选择 Skip and configure later
最后选择 Submit。
4.4 创建 Kinesis Data Firehose
Source 选择 Direct,Destination 选择 Amazon OpenSearch Serverless
Source 选择 Direct PUT,Destination 选择 Amazon OpenSearch Serverless。Index 填写 ses,剩下的保持默认
S3 backup bucket 选择一个自己创建的 S3 Bucket,具体创建步骤可以参考此 Link
打开 Advanced Setting,在 Service access 部分选择 Create or update IAM role,并且需要记住这里的 Role Name
最后创建该 Kinesis Data Firehose。
4.5 配置 OpenSearch Serverless 的 Data Access
点击 Create access policy
填写 Access policy name 和 Description
为刚才创建的 Kinesis Data Firehose 所关联的 Role 授权
为自己的 IAM User 授权,便于接下来进入 OpenSearch Serverless Dashboard 查看
4.6 创建 Configuration set 的 Event destination
点击 Add destination
选择所有事件
Destination options 选择 Amazon Kinesis Data Firehose,Name 填入my-poc-kdf,Delivery stream 选择 4.4 部分创建的 my-poc-kdf,IAM Role 选择 my-poc-ses2kdf-role
点击 Add destination,完成创建
五. 在 OpenSearch Serverless Dashboard 中查看 Tracking Event
5.1 模拟发送事件
分别间隔一段时间多次运行测试代码
收到邮件后,打开测试邮件
5.2 设置 OpenSearch Serverless Dashboard
点击 Dashboard
打开左边菜单栏,点击 Discover
输入 ses,选择出现的 ses 索引
Time field 选择 mail.timestamp,点击 Create index pattern
接下来我们可以看到该索引的全部 Fields
再次点击左边菜单栏的 Discover,可以看到已经有一些事件数据了
5.3 使用 filter 完成查询
先使用时间 Filter,过滤一遍
可以发现过滤后只有 4 条了
再使用事件类型为 Open 的 Filter,再过滤一遍
可以发现,只有 2 条了
读者可以在自己的环境中根据需求自由组合多种 Filter。
六.结束语
通过本篇博客,我们主要演示和解读了如何使用 Amazon Kinesis Data Firehose 配合 Amazon OpenSearch 来追踪 Amazon SES 的发送事件,接下来我们还会继续探讨如何降低邮件退回率的最佳实践,相信也会帮助到各位读者。