Q63 — AWS SAP-C02 第2章
第 63/75 题 | ← 返回第2章
Q213. 一家公司有一个在 Amazon EC2 Auto Scaling 组中的 Amazon EC2 实例上运行的应用程序。该公司使用 AWS CodePipeline 部署应用程序。由于扩展事件,在 Auto Scaling 组中运行的实例不断变化。 当公司部署新的应用程序代码版本时,该公司在任何新的目标 EC2 实例上安装 AWS CodeDeploy 代理,并将实例与 CodeDeploy 部署组关联。该应用程序计划在未来 24 小时内上线。 解决方案架构师应推荐什么来以最少的运营开销自动化应用程序部署过程?
- A. 配置 Amazon EventBridge (Amazon CloudWatch Events) 在新 EC2 实例启动到 Auto Scaling 组时调用 AWS Lambda 函数。编写 Lambda 函数将 EC2 实例与 CodeDeploy 部署组关联
- B. 编写脚本在部署新代码之前暂停 Amazon EC2 Auto Scaling 操作。当部署完成后,创建新的 AMI 并配置 Auto Scaling 组的启动模板使用新 AMI 进行新启动。恢复 Amazon EC2 Auto Scaling 操作
- C. 创建一个新的 AWS CodeBuild 项目,创建包含新代码的新 AMI。配置 CodeBuild 将 Auto Scaling 组的启动模板更新为新 AMI。运行 Amazon EC2 Auto Scaling 实例刷新操作
- D. 创建一个已安装 CodeDeploy 代理的新 AMI。配置 Auto Scaling 组的启动模板使用新 AMI。将 CodeDeploy 部署组与 Auto Scaling 组而不是 EC2 实例关联 ✓
正确答案: D. 创建一个已安装 CodeDeploy 代理的新 AMI。配置 Auto Scaling 组的启动模板使用新 AMI。将 CodeDeploy 部署组与 Auto Scaling 组而不是 EC2 实例关联
解析
选项 A 建议配置 Amazon EventBridge 在新 EC2 实例启动时调用 AWS Lambda 函数。此方法增加了部署过程的复杂性和运营开销。 选项 B 建议在部署新代码之前暂停 Auto Scaling 操作,创建新 AMI 并更新启动模板。此方法不适合频繁扩展事件的环境,每次部署新代码都需要手动干预。 选项 C 建议创建新的 AWS CodeBuild 项目来创建包含新代码的新 AMI。此方法需要额外的管理开销。 因此,选项 D 提供了最合适的解决方案,通过创建已安装 CodeDeploy 代理的新 AMI,配置 Auto Scaling 组的启动模板使用新 AMI,并将 CodeDeploy 部署组与 Auto Scaling 组而不是 EC2 实例关联。此方法简化了部署过程,减少了运营开销,并确保所有新启动的实例都预装了 CodeDeploy 代理并与正确的部署组关联。