我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
自动通知未来的 Amazon EC2 容量预留状态变更
本文由亚马逊云科技首席解决方案架构师 Ballu Singh、亚马逊云科技高级解决方案架构师 Sandeep Rohilla 和亚马逊云科技高级解决方案架构师 Pranjal Gururani 撰写。
亚马逊云科技客户可以主动预留未来的 Amazon EC2 按需容量预留(称为未来的 CR),以获得工作负载和事件的容量保障。由于可以提前几周进行预订,因此客户能够确保他们可以监控其实时状态。根据容量可用性,未来的 CR 可以过渡到容量预留的各种状态。在几周内,预订状态可能只会更改一到两次。即使更改频率很低,大多数客户也不想手动轮询其预订状态,而是希望在发生变化时主动通知他们。
Amazon EventBridge 是一项无服务器事件总线服务,可简化事件路由,EventBridge 规则规定了事件的处理方式,允许您筛选事件并将它们路由到一个或多个目标进行操作。Amazon Simple Notification Service (SNS) 是一项完全托管的消息服务,使您能够向各种终端节点发送消息或通知,从而促进应用程序不同组件之间或与最终用户之间的可扩展和解耦通信。
在这篇博文中,我们将指导您完成使用 Amazon EventBridge 和 Amazon Simple Notification Service (SNS) 等亚马逊云科技服务自动发送未来 CR 状态变更通知的过程。
先决条件
- 现有的未来容量预留。要了解如何创建未来的 CR,请在此处访问我们的博客文章。
- 创建 Amazon EventBridge 规则的 IAM 权限
- 创建 Amazon SNS 主题和订阅的 IAM 权限
架构
Amazon EC2 持续监控您的未来日期 CR 的状态,并在 CR 状态发生变化时向 Amazon EventBridge 发送事件。使用 Amazon EventBridge,您可以创建规则,通过 Amazon SNS 触发通知以响应这些事件。然后,Amazon SNS 将这些通知推送到各种支持的终端节点类型,例如 Amazon Firehose、Amazon Simple Queue Service (SQS)、Amazon Lambda、HTTP、电子邮件、移动推送通知和移动短信 (SMS)。在我们的示例中,我们将向我们的电子邮件地址发送通知。
操作演练
为了自动执行未来的 CR 状态变更的通知流程,我们将使用以下亚马逊云科技服务:
- Amazon Simple Notification Service (SNS):我们将使用 SNS 向指定收件人发送电子邮件通知。
- Amazon EventBridge:我们将创建一个 EventBridge 规则,以捕获未来的 CR 的状态变更事件。
亚马逊云科技控制台演练
第 1 步:设置 Amazon SNS 主题和订阅
- 为未来的 CR 状态变更通知创建新主题。
- 导航到 Amazon SNS 控制台。在主题页面上,选择创建主题
- 在 "详细信息" 部分的 "类型" 中,选择 "标准",然后输入主题的名称(例如:订阅者)
-
- 按原样选择其余细节。选择创建主题。
- 为所需的收件人创建订阅,例如用于接收通知的电子邮件地址。
- 导航到 Amazon SNS 控制台。在左侧导航窗格中,选择订阅。选择创建订阅。
- 在创建订阅页面的详细信息部分中,为主题 ARN 选择主题的亚马逊资源名称 (ARN),输入上面提到的主题 ARN。对于协议,选择电子邮件/电子邮件-JSON
- 对于终端节点,输入您的电子邮件地址。其余细节保持不变。
-
- 选择创建订阅
- 导航到您的邮箱并在来自 Amazon SNS 的邮件中选择 "确认订阅"。
第 2 步:创建 Amazon EventBridge 规则
- 接下来打开 Amazon EventBridge 控制台并导航至规则
- 单击 "创建规则" 并提供该规则的名称(例如:EC2CapacityReservationStateChange)和描述。保持所有其他设置不变。选择
- 对于事件来源,选择 亚马逊云科技活动或 EventBridge 合作伙伴活动。
- 在 "创建方法" 部分的 "方法" 中,选择 "使用图案表单"。
- 对于事件源,选择 亚马逊云科技服务。在 亚马逊云科技服务下,选择 EC2,然后选择 EC2 容量预留。
- 或者,您可以通过选择 "特定容量预留状态" 和 "特定容量预留 ID" 来缩小要收到提醒的州和预留 ID 的范围。选择 "下一步"。
- 在目标部分的目标类型下,选择亚马逊云科技服务。
- 在 "选择目标" 中,选择 SNS 主题,在 "主题" 下,选择您在步骤 1 中创建的 SNS 主题。选择
- 在 "配置标签" 页面上,选择 "下一步"。
- 在 "查看并创建" 页面上,选择 "创建规则"。
CloudFormation 攻略
为了简化设置过程并使您更容易实施自动通知解决方案,我们提供了 CloudFormation 模板。该模板可自动创建必要的 Amazon EventBridge 规则和 Amazon SNS 主题以及所需的配置和权限。
- 下载 yaml 示例模板。
- 导航到 Amazon CloudFormation 控制台,然后点击创建堆栈。
- 选择上传模板文件并选择下载的模板。选择 "下一步"
- 在 "堆栈名称" 下提供堆栈的名称。对于容量预留 ID,输入要监控的 EC2 容量预留的 ID(例如 cr-1234567890abcdef0),在电子邮件地址中输入要订阅的 SNS 主题的电子邮件地址,对于监控状态,输入以逗号分隔的要监控的容量预留状态列表(例如失败、已过期、已取消、待处理)。选择 "下一步"
5. 在 "配置堆栈选项" 中,保留默认值。选择
6. 在 "查看并创建" 页面上,选择
清理
为避免持续收费,请清理您的环境,如果不再需要这些资源,请按照以下步骤删除您在关注本博客时创建的资源:
如果您遵循了亚马逊云科技控制台的设置,请按照以下步骤操作:
- 删除 Amazon EventBridge 规则
- 导航到 Amazon EventBridge 控制台,然后从左侧窗格中选择规则。
- 选择您之前创建的规则,然后单击 "删除"。
- 在确认对话框中单击 "删除" 以确认删除。
- 删除 Amazon SNS 主题和订阅
- 导航到 Amazon SNS 控制台,然后从左侧窗格导航到主题。
- 选择您之前创建的主题,然后单击 "删除"。
- 在确认对话框中单击 "删除" 以确认删除。
如果您为该主题创建了任何订阅(例如电子邮件或短信),这些订阅将与该主题一起自动删除。
如果您部署了 CloudFormation 模板,请按照以下步骤操作:
- 导航到 Amazon CloudFormation 控制台
- 在堆栈页面上,选择您创建的堆栈。选择 "删除"。
结论
在这篇博客文章中,我们引导您设置 EventBridge 规则,以捕获未来的 CR 的状态变更事件,并配置 SNS 向指定收件人发送通知。这种自动化方法无需手动监控,并确保您随时了解容量预留的状态。
通过自动通知主动管理未来的 CR,您可以做出明智的决策,根据需要调整预订计划,并采取纠正措施,确保为关键活动提供必要的资源。
该解决方案可提高您的运营效率,降低容量短缺的风险,并允许您专注于业务的其他重要方面。
我们鼓励您为未来的 Amazon EC2 按需容量预留实施此自动通知系统,体验简化监控和主动容量管理的好处。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。