DOP-C02 题库 · 最新 50 题免费预览(第 5/5 页)
DOP-C02(AWS Certified DevOps Engineer Professional (DOP-C02))最新题库第 41–50 题,共 5 页 50 题,含答案与中英解析,无需登录。点此进入在线题库练习全部 951 题。
第 41 题 · 题号 942 · 单选
一家公司在AWS Fargate启动类型的Amazon Elastic Container Service (Amazon ECS) 服务上运行应用程序。该应用程序从Amazon Simple Queue Service (Amazon SQS) 队列中消费消息。该应用程序处理队列中的每条消息可能需要几分钟的时间。当应用程序处理消息时,它会从Amazon S3存储桶中读取一个文件并处理该文件中的数据。应用程序将处理后的输出写入另一个S3存储桶。该公司使用Amazon CloudWatch Logs来监控处理错误,并确保应用程序成功处理消息。该SQS队列通常接收少量消息。然而,偶尔该队列会接收较大量的消息。一名DevOps工程师需要实施一个解决方案来减少消息突发时的处理时间。哪种解决方案能以最具成本效益的方式满足此要求?
- A. 将 ECS 服务注册为 AWS Application Auto Scaling 中的可扩展目标。配置目标跟踪扩展策略,以便根据队列大小来扩展该服务。
- B. 增加 Amazon SQS 请求批量处理消息的最大数量。使用长轮询以减少在低流量期间对 Amazon SQS 的 API 调用次数。
- C. 将消息发送到 Amazon EventBridge 事件总线,而不是 SQS 队列。将 ECS 服务替换为 EventBridge 规则,该规则在匹配事件时启动 ECS 任务。
- D. 创建一个 EC2 实例的自动扩展组。通过使用该自动扩展组在 ECS 集群中创建容量提供程序。将 ECS 服务更改为使用 EC2 启动类型。
答案: A
解析: 选项 A 是最具成本效益的解决方案,因为它使用 AWS Application Auto Scaling 根据 SQS 队列大小动态扩展 Fargate ECS 服务。这允许服务在消息突发期间进行扩展(减少处理时间),并在低流量期间缩减(最小化成本)。由于 Fargate 是一种无服务器启动类型,您只需在任务运行时为计算资源付费,因此这既具有弹性又具有成本效益。选项 B 仅优化 API 调用,但无法解决突发期间的 processing 瓶颈。选项 C 不合适,因为 EventBridge 专为短生命周期的事件驱动任务而设计,不适用于长时间运行的 messaging processing(每条消息需要几分钟)。选项 D 不具有成本效益,因为 EC2 实例通常需要持续运行的容量,而 Fargate 在低流量期间可以缩减至零。
第 42 题 · 题号 943 · 单选
一家全球性公司使用 Amazon S3 在 us-east-1 区域托管其产品目录网站。该公司必须提升不同地理区域用户的网站性能,并必须降低源服务器的负载。该公司必须实施一个使用 Amazon CloudFront 的高可用跨区域解决方案。哪种解决方案能够以最少的运维工作量满足这些要求?
- A. 设置多个 CloudFront 分配。将每个分配指向不同区域中的另一个 S3 存储桶。使用 Amazon Route 53 基于延迟的路由,将用户引导至最近的分配。在 us-east-1 的 S3 存储桶与不同区域中的 S3 存储桶之间启用 S3 复制。
- B. 在美国东部(弗吉尼亚州北部)区域启用带有 Origin Shield 的 CloudFront。配置全局边缘节点。为静态内容和动态内容设置具有最佳 TTL 的缓存行为。配置指向另一个区域中 S3 存储桶的源站故障转移。在美国东部(弗吉尼亚州北部)区域的 S3 存储桶与另一个区域的 S3 存储桶之间启用 S3 复制。
- C. 在 us-east-1 区域启用带有 Origin Shield 的 CloudFront。在多个区域配置 Amazon ElastiCache 集群,作为 CloudFront 和 S3 源之间的分布式缓存层。设置复制脚本,将 us-east-1 中的 S3 存储桶同步到另一个区域的 S3 存储桶。使用 Amazon EventBridge 调度该脚本每天运行一次。
- D. 在 eu-west-1 区域启用带有 Origin Shield 的 CloudFront。配置区域边缘缓存。实施 AWS Global Accelerator 以将请求路由到最近的区域边缘位置。在 us-east-1 的 S3 存储桶和另一个区域的 S3 存储桶之间启用 S3 复制。
答案: B
解析: 选项B是最佳选择,因为它提供了高可用性的跨区域解决方案,且运维工作量最小。CloudFront结合全局边缘位置可自动将用户路由到最近的边缘节点,从而提升各地区的访问性能。在us-east-1(与源S3存储桶相同的区域)启用Origin Shield可通过额外的缓存层有效降低源站负载。通过配置合理的TTL缓存行为,可以提高静态和动态内容的缓存命中率。源站故障转移至另一区域的S3存储桶提供了高可用性,而S3跨区域复制是一项完全托管的服务,无需任何运维开销。相比之下,选项A(多个分发需要高管理成本)、选项C(管理ElastiCache和自定义复制脚本工作量较大)以及选项D(在eu-west-1启用Origin Shield无法帮助降低us-east-1源站的负载,且Global Accelerator增加了不必要的复杂性),选项B在性能、可用性和低运维负担之间实现了最佳平衡。
第 43 题 · 题号 944 · 单选
某公司正在使用 AWS CodeDeploy 将应用程序部署到一组 Amazon EC2 实例中。在最近一次部署中,若干 EC2 实例未能成功更新。DevOps 工程师必须调查失败的根本原因,并确定是哪些特定的部署生命周期事件发生了错误。访问和分析详细部署日志以进行故障排除的最高效运维方式是什么?
- A. 使用 SSH 连接到每台未能成功更新的 EC2 实例,并读取 CodeDeploy 代理的日志。
- B. 使用 AWS Systems Manager Session Manager 连接到每台未能成功更新的 EC2 实例。从 CodeDeploy 代理中读取日志。
- C. 创建一个 Amazon S3 存储桶来存储 CodeDeploy 日志。更新 appspec.yml 文件以将日志复制到该 S3 存储桶。使用 Amazon Athena 查询该 S3 存储桶。
- D. 通过使用 CloudWatch 代理将 CodeDeploy 代理日志发送到 Amazon CloudWatch Logs。使用 CloudWatch Logs Insights 分析日志。
答案: D
解析: 将 CodeDeploy 代理日志发送到 Amazon CloudWatch Logs,并使用 CloudWatch Logs Insights 进行查询,可以集中且可扩展地分析日志。这样无需逐台连接失败的 EC2 实例,比使用 SSH、Session Manager 或不可行的 S3 日志方案更具运维效率。
第 44 题 · 题号 945 · 单选
一家公司在 AWS 上构建了其无服务器基础设施。该基础设施包括一个 Amazon API Gateway REST API、多个 AWS Lambda 函数以及 Amazon EventBridge。该公司希望能够发现其 CI/CD 流水线未能捕获的任何新的供应链攻击。该公司需要一个解决方案来检测已部署应用程序中的恶意活动。哪种解决方案符合这些要求?
- A. 为 API Gateway REST API 启用 AWS WAF。配置 AWS WAF ACL。添加已知不良输入托管规则组。
- B. 启用 Amazon GuardDuty。启用 Lambda 保护。使用 EventBridge 进行事件通知。
- C. 在 CI/CD 流水线中部署 AWS CloudFormation Guard。编写规则以捕获供应链攻击。
- D. 在 AWS 网络防火墙中创建防火墙。配置策略。为 Emerging Threats 规则组添加托管规则。
答案: B
解析: 选择B选项(启用Amazon GuardDuty并启用Lambda Protection,使用EventBridge进行事件通知),因为GuardDuty的Lambda Protection功能专门监控Lambda函数的执行环境,能够检测已部署Lambda函数中的恶意活动,包括来自供应链攻击的可疑代码。它可以识别加密货币挖矿、后门程序、数据窃取等恶意行为。EventBridge可以将这些安全发现路由到通知或修复工作流中。 其他选项分析:
- 选项A(AWS WAF)仅保护API端点免受Web攻击,无法检测Lambda函数内部的恶意代码。
- 选项C(CloudFormation Guard)用于在CI/CD管道中验证基础设施模板,但不能解决已部署应用中的攻击问题。
- 选项D(AWS Network Firewall)在网络层面运行,无法检查无服务器函数中的应用行为。
第 45 题 · 题号 946 · 单选
一家公司拥有一个部署在 Amazon EC2 实例上的无状态 Web 应用程序。这些 EC2 实例位于一个应用程序负载均衡器(ALB)后面的目标组中。Amazon Route 53 管理着该应用程序的域名。该公司更新了应用程序的用户界面,并开发了该应用程序的一个测试(beta)版本。该公司希望在其流量的 10% 上测试该 beta 版本。哪种解决方案能够以最少的配置更改来满足这些要求?
- A. 将测试版部署到新目标组中的新 EC2 实例。将新目标组与新的 ALB 相关联。更新现有的 Route 53 记录以使用加权路由策略。添加一个指向新 ALB 的新 Route 53 记录,并使用相同的路由策略。为现有记录分配 90 的权重。为新记录分配 10 的权重。
- B. 将测试版本部署到新目标组中的新 EC2 实例。将新目标组与同一个 ALB 监听器规则关联。为现有目标组分配权重 90。为新目标组分配权重 10。
- C. 重构应用程序,通过使用 AWS AppConfig 实现一个用于测试版的特性开关。使用该特性开关为 10% 的 EC2 实例启用测试版。
- D. 将应用程序容器化并在 Amazon 弹性容器服务(Amazon ECS)上部署。使用 AWS CodeDeploy 通过 CodeDeployDefault.ECSCanary10Percent15Minutes 部署配置来部署 beta 版本。
答案: B
解析: 选项 B 是最佳选择,因为它需要的配置更改最少。它仅涉及将测试版部署到新 EC2 实例的新目标组,并将该新目标组与现有的 ALB 监听器规则相关联,为现有目标组分配 90% 的权重,为测试版分配 10% 的权重。现有的 ALB 和 Route 53 设置保持不变。选项 A 需要创建新的 ALB 并更改 Route 53 记录(更改较多)。选项 C 需要重构代码以实现功能标志(重大更改)。选项 D 需要容器化并迁移到 ECS(重大更改)。
第 46 题 · 题号 947 · 单选
一家公司经常为其应用程序创建 Docker 镜像。该公司将镜像存储在 Amazon Elastic Container Registry(Amazon ECR)中。公司既会创建带标签的镜像,也会创建不带标签的镜像。公司希望实施一种解决方案,自动删除长时间未更新且不常用的镜像。该解决方案必须保留至少指定数量的镜像。哪种解决方案能够以最少的运营开销满足这些要求?
- A. 对 ECR 存储库使用 Amazon S3 生命周期策略,以便根据镜像的使用期限或镜像是否缺少标签自动删除镜像。
- B. 使用 Amazon ECR 生命周期策略,根据镜像的存在时间或仓库中需要保留的镜像数量来删除镜像。
- C. 配置一个 AWS Lambda 函数,使其按计划运行,以根据镜像的存放时间或需要在代码仓库中保留的镜像数量来删除镜像。
- D. 使用 AWS Systems Manager 通过 aws:executeScript 操作运行脚本,根据镜像的创建时间或镜像上缺少标签来自动删除镜像。
答案: B
解析: Amazon ECR 提供了原生的生命周期策略支持,允许根据镜像的年龄(对于未标记的镜像)或镜像数量自动删除镜像,并可以设置要保留的最小镜像数量。这是专门为 ECR 镜像管理设计的内置解决方案,需要最少的运维开销,因为它不需要管理额外的 AWS 服务(如 Lambda 函数或 Systems Manager 脚本)。ECR 生命周期策略直接配置在存储库上,无需任何自定义代码或额外基础设施即可自动运行。
第 47 题 · 题号 948 · 单选
一家公司在其 AWS 账户的主要运营 AWS 区域中使用 AWS Lambda 函数。这些 Lambda 函数是手动创建的。该公司需要使用基于 Python 的 AWS Cloud Development Kit(AWS CDK)应用程序来管理这些 Lambda 函数。哪种解决方案能够以最少的实施工作量满足这些要求?
- A. 使用 AWS CloudFormation 基础设施即代码(IaC)生成器启动部分扫描。按 Lambda 资源类型进行筛选。从扫描的资源创建 AWS CDK 应用程序。下载 AWS CDK 应用程序。为每个 Lambda 函数设置 Lambda 处理程序代码对象的 from_asset 参数。
- B. 使用 AWS CloudFormation 基础设施即代码(IaC)生成器启动部分扫描。按 Lambda 资源类型进行筛选。从扫描的资源创建 CloudFormation 模板。下载 CloudFormation 模板。对于每个 Lambda 函数,将 Code/S3Bucket 属性和 Code/S3Key 属性替换为 Code/ZipFile 属性。将 CloudFormation 模板转换为 AWS CDK 应用程序。
- C. 使用 AWS CloudFormation 基础设施即代码 (IaC) 生成器启动部分扫描。按 Lambda 资源类型进行筛选。从扫描的资源创建 CloudFormation 模板。下载 CloudFormation 模板。对于每个 Lambda 函数,将 Code/S3Bucket 属性和 Code/S3Key 属性替换为 Code/ImageUri 属性。将 CloudFormation 模板转换为 AWS CDK 应用程序。
- D. 使用 AWS Config 创建资源清单。按 Lambda 资源类型进行筛选。将清单导出为 .csv 文件。编写一个 AWS CDK 应用程序,从 .csv 文件中引用 Lambda 函数。对于每个 Lambda 函数,为 Lambda 处理程序代码对象设置 from_asset 参数。
答案: A
解析: 选择 A 是因为 AWS CloudFormation IaC 生成器可以直接从扫描的资源创建 AWS CDK 应用程序,无需中间 CloudFormation 模板转换步骤。此外,使用 from_asset 参数处理 Lambda 处理程序代码对象会将 Lambda 代码直接打包到 CDK 应用程序中,从而消除了对 S3 存储桶(Code/S3Bucket 和 Code/S3Key)存储部署包的依赖。与其他选项相比,这种方法所需的实施工作量最少,因为其他选项涉及额外的步骤,例如模板转换、手动替换属性或设置 AWS Config 清单和 CSV 导出。
第 48 题 · 题号 949 · 单选
一家公司每天为开源项目构建制品。该公司将开源项目托管在其支持的公共代码仓库中。该公司在 AWS CodePipeline 中手动调用管道来为该项目构建制品。该公司希望将构建制品公开提供在其托管于 Amazon S3 存储桶中的网站上。哪种解决方案将以最小的运营开销满足这些要求?
- A. 创建一个 AWS CodeBuild 项目。将公共仓库设置为源代码。使用 webhook 在公司推送代码更改时触发重新构建。配置项目的构件部分,使用 S3 存储桶作为目标。设置合适的路径以在存储桶中存储构建输出。禁用构件加密。
- B. 创建一个 AWS CodeBuild 项目。将公共仓库设置为源。配置项目的构件部分,以使用 S3 存储桶作为目标。确保在构件配置中启用了构件加密。配置一个 Amazon EventBridge 规则,以按每日计划启动 CodeBuild 项目。
- C. 在管道末尾添加一个新的阶段。配置该阶段以包含一个操作,将构件发布到 S3 存储桶。更新管道,使其在响应公共存储库的拉取请求时运行。
- D. 在管道的末尾添加一个新阶段。配置该阶段以包含将构件发布到S3存储桶的操作。创建一个Amazon EventBridge规则,以便按每日计划启动管道。
答案: A
第 49 题 · 题号 950 · 单选
一家电子商务公司在 Amazon EC2 实例上的自动扩缩组中托管了一个 Web 应用程序。该公司在多个可用区中部署该应用程序。应用程序用户报告该应用程序存在间歇性的性能问题。该公司为 EC2 实例启用了基本的 Amazon CloudWatch 监控。该公司识别并实施了该性能问题的修复方案。在解决问题后,该公司希望实施一个监控解决方案,以便在未来的性能问题出现时快速发出告警。哪种解决方案能满足此需求?
- A. 为 EC2 实例启用详细监控。为特定于应用程序的性能指标创建自定义 CloudWatch 指标。基于自定义指标设置 CloudWatch 警报。使用 CloudWatch Logs Insights 分析应用程序日志中的错误模式。
- B. 使用 AWS X-Ray 实现分布式追踪。将 X-Ray 与 Amazon CloudWatch RUM 集成。使用 Amazon EventBridge 根据自定义事件触发自动扩缩容操作。
- C. 使用 Amazon CloudFront 来分发应用程序。使用 AWS CloudTrail 来监控 API 调用。使用 AWS Trusted Advisor 生成建议以优化性能。使用 Amazon GuardDuty 来检测潜在的性能问题。
- D. 启用 VPC 流日志。使用 Amazon Data Firehose 将流日志传输到 Amazon S3。使用 Amazon Athena 分析日志并向公司发送告警。
答案: A
解析: 选项A是正确答案,因为它提供了一个专门用于针对应用程序性能问题发出警报的综合监控解决方案。详细监控可将指标粒度提高到1分钟间隔(相比之下,基本监控为5分钟),从而能够更快地检测性能异常。自定义CloudWatch指标允许跟踪应用程序特定的性能指标(而不仅仅是基础设施指标),当阈值被突破时,CloudWatch警报会立即触发通知。CloudWatch Logs Insights进一步增强了识别错误模式的能力。选项B、C和D分别侧重于分布式追踪/CDN分发/安全/网络流日志,对于直接针对应用程序性能问题发出警报而言并非最佳选择。
第 50 题 · 题号 951 · 多选
一家公司在位于应用程序负载均衡器(ALB)后面的 Amazon EC2 实例上部署了一个 Web 应用程序。该公司将应用程序代码存储在与 AWS CodeConnections 兼容的 Git 仓库中。当公司把代码合并到主分支时,会启动一个 AWS CodeBuild 项目。CodeBuild 项目编译代码,将打包后的代码存储在 AWS CodeArtifact 中,并调用 AWS Systems Manager Run Command 将打包后的代码部署到 EC2 实例上。此前的部署导致了缺陷、部分 EC2 实例未运行最新版本的打包代码,以及实例之间不一致的问题。DevOps 工程师需要提高部署解决方案的可靠性。下列哪些操作组合能够满足此要求?(请选择两项)
- A. 在 AWS CodePipeline 中创建一个使用 Git 仓库作为源代码提供者的流水线。配置流水线,使其具有并行的构建和测试阶段。在流水线中,将 CodeBuild 项目的输出构件传递给 AWS CodeDeploy 操作。
- B. 在 AWS CodePipeline 中创建一个管道,使用 Git 仓库作为源提供程序。将该管道配置为包含一个构建阶段,后跟一个测试阶段。在该管道中,将 CodeBuild 项目的输出构件传递给 AWS CodeDeploy 操作。
- C. 创建一个 AWS CodeDeploy 应用程序和一个部署组,以便将打包的代码部署到 EC2 实例。为部署组配置 ALB。
- D. 创建使用 AWS CodeDeploy 而非 Systems Manager 来运行构建、测试和部署操作的各个 AWS Lambda 函数。
- E. 创建一个 Amazon S3 存储桶。修改 CodeBuild 项目,将包存储在 S3 存储桶中,而不是存储在 CodeArtifact 中。使用 CodeDeploy 中的部署操作将构件部署到 EC2 实例。
答案: B, C
解析: 正确答案是B和C的组合。选项B建立了一个使用AWS CodePipeline的正确CI/CD流程,包括顺序的构建阶段和测试阶段,通过在编译后测试代码来解决缺陷问题。该流程使用CodeDeploy进行部署,比Systems Manager Run Command更可靠。选项C创建了必要的CodeDeploy应用程序和部署组,并配置了ALB,这确保了EC2实例之间的一致部署,并处理了实例运行不一致代码版本的问题。选项A不正确,因为并行的构建和测试阶段不合逻辑(测试依赖于构建输出)。选项D错误地引入了不必要的Lambda函数,因为CodeDeploy本身就可以处理部署。选项E不必要地用S3替换CodeArtifact,这并不能解决核心的可靠性问题——CodeArtifact在存储方面运行良好,问题出在部署机制上。