

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon SES 中使用全局端点
<a name="global-endpoints"></a>

Amazon SES 全局端点是一项增强电子邮件发送操作连续性和可靠性的功能。本章将指导您了解全局端点的概念、设置和用法，帮助您利用多区域发送（MRS）为您的电子邮件工作负载实现更高的可用性和改进的灾难恢复能力。

## 什么是全局端点？
<a name="what-are-global-endpoints"></a>

全局端点是一种资源，允许您在两个 AWS 区域之间分配 SES 出站工作负载。配置完成后，SES 会自动将您的发送流量分配到选定的主区域与次要区域。如果任一区域发生故障，SES 将自动将流量从受影响区域转移出去，以保持发送操作的连续性。

使用全局端点的主要好处包括：
+ 改进的电子邮件发送连续性
+ 区域之间的自动失效转移
+ 简化的多区域配置

## 全局端点工作原理
<a name="how-global-endpoints-work"></a>

当您设置全局端点时，您选择一个主区域（端点创建的位置）和一个辅助区域。然后 SES 创建一个多区域端点（MREP），作为您电子邮件发送请求的入口点。

全局端点设置过程将关键构件和发送限制从您的主区域同步到辅助区域。这确保了两个区域具有同等的已验证身份、配置集以及足以满足所有预期容量的批准发送限制。

全球终端节点准备就绪且在 SendEmail API 调用中指定其终端节点 ID 后，SES 会自动在您的主区域与次要区域之间路由您的出站流量。如果任一区域发生故障，流量将从该区域加权转移到另一个区域，直到故障解决。

## 设置全局端点
<a name="setting-up-global-endpoints"></a>

**Topics**
+ [先决条件](#prerequisites)
+ [创建全局端点](#creating-global-endpoint)
+ [全局端点状态](#global-endpoint-states)

### 先决条件
<a name="prerequisites"></a>

在创建全局终端节点之前，您首先需要授予 SES 在您的账户中创建 Service-Linked 角色 (SLR) 的权限。这些角色启用创建、使用和监控全局端点所需的基本服务功能和资源访问。这可以通过实施以下策略来完成：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:CreateServiceLinkedRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:AWSServiceName": "ses.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### 创建全局端点
<a name="creating-global-endpoint"></a>

创建全局端点：

1. 打开 SES 控制台，网址为[https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)。

1. 在导航窗格中，选择**全局端点**。

1. 选择**创建全局端点**，然后在**名称**字段中输入名称。

1. 从下拉菜单中选择一个辅助区域。（您的主区域默认为您登录控制台时所在的区域。）

1. （可选）向您的全局端点添加一个或多个**标签**。

1. 查看配置并选择**创建全局端点**。

创建过程可能需要几秒钟。完成后，您的全局端点状态将变为“就绪”。

使用 AWS CLI：

```
aws sesv2 create-multi-region-endpoint --primary-region {{us-west-2}} --secondary-region {{us-east-1}} --endpoint-name {{MyGlobalEndpoint}}
```

在上述示例中：
+ {{us-west-2}}替换为您的全球终端节点的主区域。
+ {{us-east-1}}替换为您的全球终端节点的次要区域。
+ {{MyGlobalEndpoint}}替换为友好名称以提供您的全球终端节点。

### 全局端点状态
<a name="global-endpoint-states"></a>

全局端点可以具有以下状态：
+ *正在创建*：资源正在配置
+ *就绪*：资源已准备就绪，可供使用
+ *失败*：资源未能成功配置
+ *正在删除*：资源正在按请求被删除

## 准备辅助区域
<a name="region-replication"></a>

既然您已经创建了全局端点，现在必须确保您的电子邮件发送配置（包括其所有组件：身份、配置集、电子邮件模板和发送限制）在主区域和辅助区域之间保持一致，然后才能利用全局端点发送电子邮件。这种一致性对于避免潜在问题并确保正确的电子邮件传递和跟踪至关重要。

控制台中的区域复制功能通过自动将资源和账户级别设置从主区域复制到辅助区域来帮助您，这将快速帮助您确保两个区域具有等效的配置。

根据资源依赖性，复制资源的顺序很重要。为避免冲突，请遵循以下主题顺序：

**Topics**
+ [（1）复制配置集](#copying-configuration-sets)
+ [（2）复制已验证的域身份](#copying-verified-domain-identities)
+ [（3）复制生产限制](#aligning-production-limits)

### 复制配置集
<a name="copying-configuration-sets"></a>

您可以从主区域选择多个配置集及其设置，在辅助区域中进行复制。

“复制配置集”功能允许您：
+ 一次性将多个配置集复制到辅助区域。
+ 检查主区域和辅助区域中配置集之间的差异。

**要复制配置集，请执行以下操作：**

1. 在**全局端点**页面上，通过从**名称**列中选择它来选择要复制的全局端点。

1. 在**复制配置集**卡片中，展开**配置集操作**，然后选择**复制**。

1. 最多选择 10 个配置集，然后选择**确认**。

1. 如果状态不成功，请选择**查看报告**以识别问题。

1. （可选）对于先前复制的配置集，您可以通过在选择**检查差异**的同时重复最后三个步骤来检查主区域和辅助区域之间的差异。

**注意**  
如果您复制的配置集包含*事件目的地*、*声誉选项*、*归档选项*，或者在*电子邮件模板*中被引用，则需要在辅助区域中手动配置这些设置。
如果您在主区域的配置集中为已发送（出站）电子邮件启用了归档，则必须使用在辅助区域创建的具有相同名称的归档，在辅助区域的配置集中手动为已发送（出站）电子邮件启用归档。

### 复制已验证的域身份
<a name="copying-verified-domain-identities"></a>

为确保全局端点配置有效工作，您的发送域身份需要在主区域和辅助区域都经过验证。SES 使用 [Deterministic Easy DKIM（DEED）](send-email-authentication-dkim-deed.md) 来简化此过程。

[Deterministic Easy DKIM (DEED) 是一项功能，它 AWS 区域 基于配置了 Easy DKIM 的父域在所有域中生成一致的 DKIM 令牌。](send-email-authentication-dkim-easy.md)这种一致性允许 SES 在域在主区域验证后自动在辅助区域验证该域，无需额外的 DNS 记录更新。因此，您必须确保要复制的域身份（即父域）已配置了 Easy DKIM。

“复制已验证的域身份”功能允许您：
+ 一次性将多个域身份复制到辅助区域。
+ 使用 Deterministic Easy DKIM（DEED）自动验证它们。
+ 检查主区域和辅助区域中身份之间的差异。

**要从 SES 控制台复制身份，请执行以下操作：**

1. 在**全局端点**页面上，通过从**名称**列中选择它来选择要复制的全局端点。

1. 在**复制已验证的域身份**卡片中，展开**身份操作**，然后选择**复制**。

1. 最多选择 10 个身份，然后选择**确认**。

1. 如果状态不成功，请选择**查看报告**以识别问题。

1. （可选）对于先前复制的身份，您可以通过在选择**检查差异**的同时重复最后三个步骤来检查主区域和辅助区域之间的差异。

**注意**  
使用 BYODKIM 验证的域身份或是自签名的，需要在辅助区域手动创建，因为 DEED 在这种情况下不适用。
使用*Mail-from 属性*、*策略*或*反馈转发和通知*的域名身份需要在辅助区域手动配置这些功能。

### 复制生产限制
<a name="aligning-production-limits"></a>

SES 检查区域之间的发送限制是否一致，并允许您在需要时请求提高辅助区域的限制。

“复制生产限制”功能允许您：
+ 检查主区域和辅助区域之间的生产限制是否一致。
+ 如果需要，请求提高辅助区域的限制。

**要复制生产限制，请执行以下操作：**

1. 在**全局端点**页面上，通过从**名称**列中选择它来选择要复制的全局端点。

1. 在**复制生产限制**卡片中，如果状态显示*发送限制不一致*，请展开**发送限制操作**。

1. 为辅助区域选择**管理发送限制**。

1. **服务配额**页面将在辅助区域打开，您可以在其中请求提高“发送配额”和“发送速率”以匹配主区域的值。
**提示**  
建议您请求在两个区域都有资格获得的最大配额。虽然在正常操作条件下电子邮件流量分布在两个区域，但在失效转移事件期间，全部的电子邮件流量将发送到一个区域，其限制应足以处理全部流量负载。

1. （可选）您也可以通过为主区域选择**管理发送限制**并重复前两个步骤来请求提高主区域的生产限制。

**重要**  
两个区域必须具有您打算用于发送电子邮件的同等已验证身份和配置集，以及匹配的发送限制，以确保全局端点的正常功能，这一点至关重要。任何差异都可能导致传递失败、失效转移可靠性降低和指标缺失。

## 使用全局端点
<a name="using-global-endpoints"></a>

**Topics**
+ [与您的应用程序集成](#integrating-with-application)
+ [监控和指标](#monitoring-and-metrics)

### 与您的应用程序集成
<a name="integrating-with-application"></a>

在应用程序中使用全局端点需要您获取其端点 ID。

**要检索全局端点的端点 ID，请执行以下操作：**

1. 从 SES 控制台，转到**全局端点**页面，通过从**名称**列中选择它来选择要使用的全局端点。

1. 在全局端点详细信息页面上，选择**端点 ID** 下的复制图标。

使用 AWS CLI：

```
aws sesv2 get-multi-region-endpoint --endpoint-name {{MyGlobalEndpoint}} --region {{us-west-2}}
```

在上述示例中：
+ {{MyGlobalEndpoint}}替换为您在创建全局端点时为其提供的友好名称。
+ {{us-west-2}}替换为您创建全球终端节点的主要区域。
+ API 响应将包含您的端点 ID 的值，例如 `"EndpointId": "abcdef12.g3h"`。

一旦获得全局端点的端点 ID，您可以更新您的 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html) 或 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html) API 调用，以将端点 ID 值包含在 `endpoint-id` 参数中。以下是如何使用以下方法在 SendEmail API 调用中指定终端节点 ID 的示例 AWS CLI：

```
aws sesv2 send-email \ 
                --from-email-address "sender@example.com" \ 
                --destination "ToAddresses=recipient@example.com" \ 
                --content "Subject={Data=Test email,Charset=UTF-8},Body={Text={Data=This is a test email sent using Amazon SES Global endpoints.,Charset=UTF-8}}" \ 
                --endpoint-id "{{abcdef12.g3h}}"
```

{{abcdef12.g3h}}替换为您通过控制台或 API 获得的实际终端节点 ID。

### 监控和指标
<a name="monitoring-and-metrics"></a>

全局端点功能提供了跨主区域和辅助区域的电子邮件发送量的统一视图。您可以通过 SES 控制台中全局终端节点详细信息页面上的 Cross-region 指标选项卡访问这些指标。

**要访问两个区域的发送指标，请执行以下操作：**

1. 从 SES 控制台，转到**全局端点**页面，通过从**名称**列中选择它来选择要查看其指标的全局端点。

1. 在全局终端节点详细信息页面上选择**Cross-region 指标**选项卡，然后输入最多 31 天的日期范围。将显示给定日期范围内两个区域的指标。

使用 AWS CLI：

```
aws cloudwatch get-metric-statistics \ 
                --namespace AWS/SES \ 
                --metric-name SendCount \ 
                --dimensions Name=ses:multi-region-endpoint-id,Value={{abcdef12.g3h}} \ 
                --start-time 2024-10-01T00:00:00Z \ --end-time 2024-10-31T23:59:59Z \ 
                --period 86400 \ 
                --statistics Sum
```

{{abcdef12.g3h}}替换为您实际的终端节点 ID。

## 最佳实践和注意事项
<a name="best-practices-and-considerations"></a>

遵循这些最佳实践和注意事项有助于确保跨多个 AWS 区域 全球端点的有效利用、监控和成本优化，从而提高电子邮件发送功能的可用性和可靠性。
+ 定期同步对构件（例如，配置集、已验证身份）所做的任何更改，以保持发送完整性。
+ 监控 Cross-region 指标以确保流量分布均衡，并发现任何潜在问题。
+ 请注意，在向 MREP-enabled 遥远的区域进行调用时，API 延迟可能会略有增加。
+ 为确保流量分布均衡，请采用镜像全球终端节点区域的主动-主动架构。或者，选择两个与您的客户端应用程序相距大致相等的区域。
+ 配置您的客户端应用程序以快速检测路由更改。全球终端节点通过 DNS 发布当前的路由权重。在运行时和解析器配置中，将正 DNS 缓存 TTL 设置为大约 60 秒，将负 DNS 缓存 TTL 设置为大约 10 秒。在 JVM 上，它们由`networkaddress.cache.ttl`和`networkaddress.cache.negative.ttl`安全属性控制。
+ 在您的客户端中设置 HTTP 连接生命周期限制。 Long-lived 即使 DNS 刷新后，保持活动状态的连接仍会继续到达最初解析的 IP 地址。在 HT [TP 客户端上设置大约 60 秒的短连接 TTL](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/client-configuration.html#client-configuration-http)，以便定期替换池连接。大多数 AWS SDK 都公开此设置。
+ 全局终端节点不支持 SMTP 或 VPC 终端节点访问。
+ 如果通过 NAT 网关路由流量，请考虑可能产生的出站费用。

## 定价
<a name="pricing-and-sla"></a>

虽然确切的定价细节可能会有变动，但对于同等数量的邮件，预计全局端点将比单区域发送收取价格溢价。尽管存在此增长，但总体成本预计将与其他电子邮件服务提供商保持竞争力。

有关最新的定价信息，请参阅 [Amazon SES 定价页面](https://aws.amazon.com/ses/pricing/)。