Q30 — AWS SOA-C02 第1章
第 30/100 题 | ← 返回第1章
某公司决定在夜间停止非生产环境的 Amazon EC2 实例。该公司 IT 经理必须在近实时范围内收到通知,每当具有 environment type 标签值为 non-production 的 EC2 实例在夜间启动时。 以下哪种解决方案能以最高运营效率满足此要求?
- A. 配置一个使用 SMTP 客户端库的 AWS Lambda 函数。将该 Lambda 函数订阅到 AWS Health Dashboard,以便在 EC2 实例处于运行状态时接收通知。配置该 Lambda 函数使用 Amazon Pinpoint 向 IT 经理发送电子邮件通知。部署第二个 Lambda 函数,在白天限制第一个 Lambda 函数的调用。
- B. 部署一个 AWS Lambda 函数,查询 Amazon EC2 API 以确定每个 EC2 实例的状态。使用 EC2 实例调度器配置该 Lambda 函数在夜间每分钟运行一次,并向 IT 经理发送电子邮件通知,通知每个处于运行状态的非生产 EC2 实例。
- C. 创建一个 Amazon EventBridge 规则,包含 EC2 实例状态变更通知事件类型。过滤该事件以仅捕获运行状态。将 AWS Lambda 函数设为该规则的目标。配置该 Lambda 函数检查当前时间和 EC2 实例的标签以确定环境类型。将 Amazon Simple Notification Service(Amazon SNS)主题设为该 Lambda 函数的目标以发送通知。将 IT 经理的电子邮件地址订阅到该 SNS 主题。 ✓
- D. 将 EC2 实例元数据(包括环境类型)存储在 Amazon DynamoDB 表中。将自定义应用程序部署到 EC2 实例。配置该自定义应用程序在夜间每分钟轮询 DynamoDB 数据,并查询 Amazon EC2 API 以确定每个实例的状态。此外,配置该自定义应用程序向 IT 经理发送电子邮件通知,通知每个处于运行状态的非生产 EC2 实例。
正确答案: C. 创建一个 Amazon EventBridge 规则,包含 EC2 实例状态变更通知事件类型。过滤该事件以仅捕获运行状态。将 AWS Lambda 函数设为该规则的目标。配置该 Lambda 函数检查当前时间和 EC2 实例的标签以确定环境类型。将 Amazon Simple Notification Service(Amazon SNS)主题设为该 Lambda 函数的目标以发送通知。将 IT 经理的电子邮件地址订阅到该 SNS 主题。
解析
这道题考察有效监控 EC2 实例状态变化并触发通知的架构设计,涉及 AWS 事件驱动服务的使用。根据 AWS 架构最佳实践文档,事件驱动的无服务器模式在实时性和资源效率上优于轮询方案。EventBridge 可直接捕获 EC2 状态变化事件,避免了轮询 API 的开销(排除选项 B/D)。Lambda 函数仅在事件触发时运行,结合时间判断和标签过滤,确保仅处理夜间启动的非生产实例,减少无效执行。SNS 作为托管服务处理通知逻辑,比 SMTP 库(选项 A)或自定义应用(选项 D)更可靠。选项 C 通过集成多个托管服务,在事件响应、资源利用和维护成本上达到最优。