DOP-C02 练习题 — DOP-C02:DevOps工程师 - 专业级

1、题库联网,会自动更新,无需重新获取;

2、激活题库,可同时拥有中英文的访问权限;

3、包含在线练习,模拟测试,PDF下载,视频课程;

4、可使用小程序,或电脑网页端刷题学习,有效期一年;

5、激活码可直接购买,或通过天猫旗舰店购买;

6、有问题可通过微信,whatsapp,Line联系客服;

考试信息

DevOps工程师 - 专业级 考试代码:DOP-C02


·报名链接:https://aws.amazon.com/cn/certification/certification-prep/testing/

·考试费用:300美金。可以购买考试券,价格在1550RMB左右(考试券购买: https://item.taobao.com/item.htm?id=991899961156 )。

·考试语言:简体中文、英文,日语等。不同语言证书含金量一样,用中文考,也可以下载英文证书。

·考试地点:可在对应城市的线下Pearson VUE考点,也可以使用自己的电脑线上考试(考试全程开摄像头,不要想着作弊哦)。

·考试环境:在线考试时需要背景简洁,不能有噪音,有条件可申请公司会议室,并多备一个网络(不一定需要VPN)。

·考试时长:180分钟。考完一个工作日内会通过邮件发送成绩单。

·考试题型:75道选择题(单选+多选 ),总分1000分,成绩750分以上即可通过。


样题

DOP-C02 · Q1
Topic 1 Question #1 一家公司有一个移动应用程序,该应用程序通过 HTTP API 调用应用程序负载均衡器 (ALB)。ALB 将请求路由到 AWS Lambda 函数。在任何给定时间,都有多个不同版本的应用程序在使用,包括部分用户正在测试的版本。应用程序版本信息定义在所有 API 请求中发送的用户代理标头中。 最近 API 进行了一系列更改后,该公司发现应用程序存在一些问题。该公司需要收集每个正在使用的应用程序版本中每次 API 操作的响应代码指标。一位 DevOps 工程师修改了 Lambda 函数,使其能够从用户代理标头中提取 API 操作名称、版本信息和响应代码。为了收集 所需的指标,这位 DevOps 工程师还需要采取哪些其他操作?
  • A.
    修改 Lambda 函数,将 API 操作名称、响应代码和版本号作为日志行写入 Amazon CloudWatch Logs 日志组。配置 CloudWatch Logs 指标筛选器,为每个 API 操作名称递增一个指标。将响应代码和应用程​​序版本指定为该指标的维度。
  • B.
    修改 Lambda 函数,将 API 操作名称、响应代码和版本号作为日志行写入 Amazon CloudWatch Logs 日志组。配置 CloudWatch Logs Insights 查询,以从日志行填充 CloudWatch 指标。将响应代码和应用程​​序版本指定为指标的维度。
  • C.
    配置 ALB 访问日志,使其写入 Amazon CloudWatch Logs 日志组。修改 Lambda 函数,使其向 ALB 发送响应,响应元数据包括 API 操作名称、响应代码和版本号。配置 CloudWatch Logs 指标筛选器,为每个 API 操作名称递增一个指标。将响应代码和应用程​​序版本指定为该指标的维度。
  • D.
    在 Lambda 函数上配置 AWS X-Ray 集成。修改 Lambda 函数,创建一个包含 API 操作名称、响应代码和版本号的 X-Ray 子段。配置 X-Ray Insights,为每个 API 操作名称提取聚合指标,并将该指标发布到 Amazon CloudWatch。将响应代码和应用程​​序版本指定为该指标的维度。

答案: A

本题要求为每个应用版本、每个API操作收集对应的响应代码指标,目前Lambda已成功提取出API操作名称、版本信息、响应代码三个核心字段。最优实现方案是将三个字段输出到CloudWatch Logs,通过CloudWatch Logs指标筛选器自动匹配日志,生成带有响应代码和应用版本维度的自定义指标,该方案无需额外服务集成,配置简单,可满足指标实时统计、按维度聚合筛选的需求,完全匹配题目要求。 各选项分析: A. 该选项正确。Lambda直接将提取到的三个关键字段写入CloudWatch Logs,通过指标筛选器可以定义匹配规则,每命中一条日志就对对应指标加1,同时将响应代码和应用版本设置为指标维度,可实现按API操作、版本、响应码灵活统计指标,符合成本最优、配置最简的要求。 B. 该选项错误。CloudWatch Logs Insights是用于交互式查询分析日志数据的工具,支持按需运行查询生成统计结果,但无法自动、持续将查询结果填充为CloudWatch常驻指标,无法满足长期指标收集的需求。 C. 该选项错误。首先ALB访问日志默认存储在S3,配置同步到CloudWatch Logs需要额外操作,其次ALB访问日志本身不包含Lambda内部提取的API操作名称、应用版本字段,需要额外修改Lambda响应元数据注入,流程冗余,相比直接从Lambda输出日志没有优势,不符合最优实践。 D. 该选项错误。AWS X-Ray是分布式链路追踪服务,核心用于请求链路排查、性能瓶颈定位,X-Ray Insights主要用于自动检测链路异常,无法直接自定义提取API操作、版本、响应码作为维度生成CloudWatch指标,且X-Ray集成会产生额外成本,不是指标收集场景的合适方案。 关键知识点: 1. CloudWatch Logs指标筛选器:可从CloudWatch Logs的日志内容中匹配指定模式,提取自定义字段作为维度,自动生成CloudWatch自定义指标,是应用日志转指标的标准实现方式。 2. CloudWatch指标维度:是指标的属性键值对,用于对指标数据进行分类、筛选和聚合,本题中通过设置响应代码和应用版本为维度,可实现按不同版本、不同响应码统计各API操作的调用情况。 3. 可观测性服务选型:日志类指标收集优先使用CloudWatch Logs指标筛选器,X-Ray适用于分布式链路追踪场景,ALB访问日志适用于负载均衡层的访问统计场景,不同服务有各自的适用边界。 参考资料: 1. 使用指标筛选器从日志数据创建指标, https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html 2. Amazon CloudWatch 概念 - 维度, https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension
DOP-C02 · Q2
Topic 1 Question #2 一家公司向客户提供一款应用程序。该应用程序使用 Amazon API Gateway REST API 调用 AWS Lambda 函数。初始化时,Lambda 函数会从 Amazon DynamoDB 表中加载大量数据。数据加载过程导致冷启动时间长达 8-10 秒。DynamoDB 表已配置 DynamoDB Accelerator (DAX)。 客户反馈该应用程序偶尔会出现响应时间过长的情况。该应用程序全天会收到数千个请求。在中午时段,应用程序的请求量是其他任何时段的 10 倍。临近傍晚,应用程序的请求量会下降到正常总量的 10%。DevOps 工程师需要降低 Lambda 函数在全天任何时段的延迟。 哪种解决方案能够满足这些要求?
  • A.
    将 Lambda 函数的预置并发性配置为并发值为 1。删除 DynamoDB 表的 DAX 集群。
  • B.
    将 Lambda 函数的保留并发性配置为并发值为 0。
  • C.
    配置 Lambda 函数的预置并发数。在 Lambda 函数上配置 AWS 应用程序自动扩展,将预置并发数的值设置为最小值 1 到最大值 100。
  • D.
    配置 Lambda 函数的预留并发数。在 API Gateway API 上配置 AWS 应用程序自动扩展,将预留并发数最大值设置为 100。

答案: C

本题的核心痛点是Lambda函数冷启动时需要加载大量DynamoDB数据,导致8-10秒的初始化延迟,同时业务流量存在明显的峰谷波动,午间流量是平时的10倍,傍晚回落至平时的10%,需要在全天所有时段降低响应延迟。选择选项C的原因是,Lambda预置并发可以提前初始化函数运行环境,完成包括加载DynamoDB数据在内的初始化操作,从根源上消除冷启动延迟。搭配AWS应用程序自动扩展调整预置并发的数量,最小1、最大100的配置既可以在低峰期保留至少1个预初始化的实例避免冷启动,又可以在午间高峰时自动扩容到足够的预置并发数承接10倍流量,完全适配业务的流量波动特征,同时无需修改现有DAX配置,在保障性能的同时平衡成本。 各选项分析: A. 错误。首先仅配置1个预置并发完全无法承接午间10倍于平时的流量,仍然会出现大量冷启动;其次删除DAX集群会降低DynamoDB的查询性能,进一步提升请求延迟,完全不符合需求。 B. 错误。Lambda保留并发的作用是限制函数可使用的最大并发执行数,设置为0意味着该Lambda函数无法执行任何请求,直接导致业务中断,完全不可行。 C. 正确。预置并发从根源上解决了冷启动导致的初始化延迟问题,搭配应用程序自动扩缩容调整预置并发数量,可适配业务的峰谷流量特征,在全天所有时段都能保障低延迟响应,同时平衡资源成本,完全满足题目要求。 D. 错误。首先预留并发的作用是限制函数并发上限,无法解决冷启动导致的延迟问题;其次API Gateway无法直接调整Lambda函数的预留并发数,自动扩缩配置的对象错误,无法实现需求。 关键知识点: 1. Lambda预置并发:是AWS Lambda提供的用于预初始化函数运行环境的功能,可提前完成函数代码加载、初始化逻辑执行等操作,完全消除冷启动延迟,适用于对响应延迟敏感的无服务器工作负载。 2. Lambda并发类型差异:预置并发用于解决冷启动延迟问题,预留并发用于限制单个函数的最大并发执行数,避免占用过多账户并发资源影响其他函数,两者功能定位完全不同,是DOP-C02认证的高频考点。 3. Lambda预置并发自动扩展:可通过AWS应用程序自动扩展服务,根据Lambda的请求吞吐量、延迟等指标自动调整预置并发的数量,适配业务流量波动,平衡性能与成本。 参考资料: 1. 配置Lambda预置并发, https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html 2. Lambda预置并发自动扩展, https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency-autoscaling.html
DOP-C02 · Q3
Topic 1 Question #3 一家公司正在采用 AWS CodeDeploy 来自动化其 Java-Apache Tomcat 应用(使用 Apache Web 服务器)的部署。开发团队首先进行了概念验证,创建了一个用于开发环境的部署组,并在应用中进行了功能测试。测试完成后,团队将创建额外的部署组用于预发布环境和生产环境。 当前的日志级别已在 Apache 设置中配置,但团队希望在部署时动态更改此配置,以便根据不同的部署组设置不同的日志级别,而无需为每个部署组创建不同的应用版本。 如何在管理开销最小且无需为每个部署组使用不同脚本版本的情况下满足这些要求?
  • A.
    根据部署组标记 Amazon EC2 实例。然后在应用程序版本中添加一个脚本,该脚本调用元数据服务和 EC2 API 来识别实例所属的部署组。使用此信息配置日志级别设置。在 appspec.yml 文件中,将该脚本作为 AfterInstall 生命周期钩子的一部分进行引用。
  • B.
    创建一个脚本,使用 CodeDeploy 环境变量 DEPLOYMENT_GROUP_NAME 来识别实例所属的部署组。使用此信息配置日志级别设置。在 appspec.yml 文件中,将此脚本作为 BeforeInstall 生命周期钩子的一部分进行引用。
  • C.
    为每个环境创建一个 CodeDeploy 自定义环境变量。然后在应用程序版本中添加一个脚本,该脚本会检查此环境变量以确定实例所属的部署组。使用此信息配置日志级别设置。在 appspec.yml 文件中,将此脚本作为 ValidateService 生命周期钩子的一部分进行引用。
  • D.
    创建一个脚本,该脚本使用 CodeDeploy 环境变量 DEPLOYMENT_GROUP_ID 来识别实例所属的部署组,以便配置日志级别设置。在 appspec.yml 文件中,将此脚本作为 Install 生命周期钩子的一部分进行引用。

答案: B

本题核心需求是不同CodeDeploy部署组(开发/预发布/生产)部署同一应用版本时动态修改Apache日志级别,且管理开销最小。CodeDeploy原生提供了内置环境变量,无需额外配置即可在部署生命周期钩子的执行环境中直接获取当前部署组的信息,无需为每个环境单独构建应用版本,也无需额外的资源配置和权限配置,完全满足低管理开销的要求。选择B方案可以直接读取内置的DEPLOYMENT_GROUP_NAME变量判断部署环境,对应调整日志级别,无需额外的标签配置、API调用或自定义变量配置,是最优方案。 各选项分析: A. 错误。该方案需要为EC2实例绑定部署组标签,还要为实例配置调用EC2 API的IAM权限,额外增加了标签管理、权限配置的开销,且CodeDeploy已经提供了原生的部署组识别能力,无需通过调用EC2 API的方式实现,方案复杂度更高,不符合最小管理开销的要求。 B. 正确。DEPLOYMENT_GROUP_NAME是CodeDeploy官方提供的内置环境变量,部署时会自动注入到生命周期钩子的执行上下文,无需任何额外配置即可直接读取,脚本可以通过该变量直接判断当前所属的部署组,对应调整日志级别。BeforeInstall钩子在应用文件安装到实例前执行,此时修改Apache配置可以在后续应用启动后直接生效,无需额外重启服务,整个方案无需额外资源配置,管理开销最低,也无需维护不同的应用版本,完全满足需求。 C. 错误。自定义环境变量需要为每个部署组单独配置,额外增加了配置管理的开销,且CodeDeploy已经提供了原生的部署组识别变量,无需自定义。此外ValidateService钩子是在应用服务启动后执行验证的阶段,此时修改日志配置还需要额外重启Apache服务才能生效,增加了不必要的操作步骤,方案不合理。 D. 错误。DEPLOYMENT_GROUP_ID是部署组的唯一标识符,可读性差,需要额外维护ID和环境的对应关系,增加管理开销。此外Install阶段是CodeDeploy代理自动执行应用文件复制的系统阶段,不支持用户挂载自定义脚本,无法在该阶段执行配置修改操作,方案不可行。 关键知识点: 1. AWS CodeDeploy内置环境变量:CodeDeploy执行生命周期钩子脚本时会自动注入一系列内置环境变量,包含部署组名称、部署ID等上下文信息,无需额外配置即可直接读取,用于适配不同部署环境的差异化需求。 2. AWS CodeDeploy生命周期钩子适用场景:BeforeInstall钩子适用于部署应用文件前的预配置操作,如服务参数调整、旧文件清理等,该阶段执行的配置修改可以在后续应用启动后直接生效。 3. DevOps最小管理开销原则:实现自动化部署需求时优先使用云平台原生能力,避免额外的标签、权限、自定义配置等管理成本,降低运维复杂度和故障风险。 参考资料: AWS CodeDeploy 钩子环境变量参考, https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-environment-variables AWS CodeDeploy AppSpec 文件钩子结构参考, https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
DOP-C02 · Q4
Topic 1 Question #4 一家公司要求其开发人员为账户中的所有 Amazon Elastic Block Store (Amazon EBS) 卷添加标签,以指示所需的备份频率。此要求也包括不需要备份的 EBS 卷。该公司使用名为 Backup_Frequency 的自定义标签,其值为 none、dally 或 weekly,分别对应所需的备份频率。审计发现开发人员偶尔会忘记为 EBS 卷添加标签。DevOps 工程师需要确保所有 EBS 卷始终具有 Backup_Frequency 标签,以便公司至少每周执行一次备份,除非指定了其他值。 哪种解决方案能够满足这些要求?
  • A.
    在账户中设置 AWS Config。创建一个自定义规则,对于所有未应用备份频率标签的 Amazon EC2 资源,返回合规性失败。配置一个补救操作,该操作使用自定义的 AWS Systems Manager Automation 运行手册来应用 Backup_Frequency 标签,并将其值设置为 weekly。
  • B.
    在账户中设置 AWS Config。使用一条托管规则,对未应用备份频率标签的 EC2::Volume 资源返回合规性失败。配置一个补救操作,该操作使用自定义的 AWS Systems Manager Automation 运行手册来应用 Backup_Frequency 标签,并将其值设置为 weekly。
  • C.
    在账户中启用 AWS CloudTrail。创建一个 Amazon EventBridge 规则,使其响应 EBS CreateVolume 事件。配置一个自定义的 AWS Systems Manager Automation 运行手册,使其应用​​ Backup_Frequency 标签,并将值设置为 weekly。将该运行手册指定为规则的目标。
  • D.
    在账户中启用 AWS CloudTrail。创建一个 Amazon EventBridge 规则,使其响应 EBS CreateVolume 事件或 EBS ModifyVolume 事件。配置一个自定义的 AWS Systems Manager Automation 运行手册,使其应用​​ Backup_Frequency 标签,并将值设置为 weekly。将该运行手册指定为规则的目标。

答案: B

题目要求所有EBS卷(包括存量和新增)必须携带Backup_Frequency标签,未指定值时默认设为weekly。AWS Config可实现全量资源的持续合规检测,同时支持自动补救,其中托管规则required-tags可直接指定资源类型为EC2::Volume(即EBS卷),检测是否存在指定标签,无需自定义开发规则,再配置自动补救动作通过SSM自动化为不合规的EBS卷打上默认值为weekly的标签,可同时覆盖存量和新增的所有EBS卷,完全满足需求,因此选择B选项。 各选项分析: A. 错误。该选项将检测范围设置为所有EC2资源,而题目仅要求管控EBS卷(EC2::Volume),EC2资源还包含实例、弹性网卡等其他资源,范围不符合要求;同时无需使用自定义规则,AWS提供了专门检查标签的托管规则,自定义规则会增加不必要的开发成本。 B. 正确。使用AWS Config托管的required-tags规则,指定资源类型为EC2::Volume,可精准检测所有未携带Backup_Frequency标签的EBS卷,标记为不合规后触发自动补救,通过SSM自动化为其打上值为weekly的标签,既覆盖审计发现的存量未打标签的EBS卷,也能持续监控后续新创建的卷,完全满足所有要求。 C. 错误。该方案仅能响应CreateVolume事件,只能处理规则配置后新创建的EBS卷,无法覆盖规则配置前已经存在的存量未打标签的EBS卷,不能满足所有EBS卷都需携带标签的要求。 D. 错误。即使增加了ModifyVolume事件,该方案依然属于事件驱动的增量管控,无法覆盖规则配置前已经存在的存量未打标签的EBS卷,无法满足全量EBS卷的合规要求。 关键知识点: 1. AWS Config合规管控能力:AWS Config可持续扫描全量AWS资源的配置状态,同时支持自动补救动作,可同时覆盖存量和增量资源的合规要求,适用于企业级全量资源合规管控场景。 2. AWS Config托管规则required-tags:该官方托管规则可指定目标资源类型,直接检查资源是否配置了要求的标签,无需自定义开发规则,是标签合规检测的首选方案。 3. EventBridge事件驱动管控的局限性:仅能响应规则配置后触发的资源操作事件,无法自动覆盖规则配置前的存量资源,仅适用于增量资源管控场景。 参考资料: AWS Config required-tags托管规则文档, https://docs.aws.amazon.com/config/latest/developerguide/required-tags.html AWS Config自动补救操作文档, https://docs.aws.amazon.com/config/latest/developerguide/remediation-actions.html
DOP-C02 · Q5
Topic 1 Question #5 一家公司使用 Amazon Aurora 集群作为其应用程序的数据存储。该 Aurora 集群配置了一个数据库实例。应用程序通过集群实例的端点对数据库执行读写操作。 该公司已安排在即将到来的维护窗口期间对集群进行更新。集群必须在维护窗口期间保持可用,且中断时间尽可能短。DevOps 工程师应该如何做才能满足这些要求?
  • A.
    向 Aurora 集群添加读取器实例。更新应用程序,使其使用 Aurora 集群端点进行写入操作。更新 Aurora 集群的读取器端点,使其支持读取操作。
  • B.
    向 Aurora 集群添加读取器实例。为集群创建一个自定义的 ANY 端点。更新应用程序,使其使用 Aurora 集群的自定义 ANY 端点进行读写操作。
  • C.
    在 Aurora 集群上启用多可用区 (Multi-AZ) 选项。更新应用程序,使其使用 Aurora 集群端点进行写入操作。更新 Aurora 集群的读取端点,使其用于读取操作。
  • D.
    在 Aurora 集群上启用多可用区 (Multi-AZ) 选项。为集群创建一个自定义的 ANY 端点。更新应用程序,使其使用 Aurora 集群的自定义 ANY 端点进行读写操作。

答案: A

本题中当前Aurora集群仅部署单个实例,维护窗口执行更新时单实例会出现较长时间的服务中断。要满足维护期间可用、中断尽可能短的需求,首先需要为集群添加读取器实例,构建多实例高可用架构。Aurora维护多实例集群时,会先对读取器实例执行更新,再自动将已完成更新的读取器提升为新的主实例,仅故障切换阶段存在秒级中断,之后再对原主实例执行更新。同时使用官方托管的集群端点处理写入、读取器端点处理读取的读写分离架构,可确保读写流量在维护期间自动路由到可用实例,进一步降低中断风险,完全符合需求。 各选项分析: A. 正确。添加读取器实例后,集群具备自动故障切换能力,维护时仅存在秒级的故障转移中断。Aurora集群端点默认始终指向主实例,专门用于写入流量,读取器端点会自动负载均衡所有可用的读取器实例,专门用于读取流量,两种端点均由AWS自动维护,实例故障或切换时会自动更新路由,可最大程度保障维护期间的可用性,符合所有要求。 B. 错误。自定义ANY端点虽然支持自动路由读写请求,但AWS官方推荐读写分离场景使用原生的集群端点和读取器端点,路由逻辑更稳定可靠。ANY端点未显式分离读写,可能出现读请求被路由到主实例增加主负载的情况,且自定义端点需要手动维护实例关联配置,相比原生端点在维护期间的可用性保障更弱,不是最优方案。 C. 错误。Amazon Aurora不存在单独的“启用多可用区选项”的操作,Aurora的存储默认已经是跨3个可用区冗余的,实例层面的多可用区高可用是通过在不同可用区部署读取器实例实现的,不需要额外启用多可用区配置,该选项的前提操作描述不符合Aurora的产品逻辑,因此错误。 D. 错误。首先该选项的“启用多可用区选项”操作不符合Aurora的产品逻辑,其次自定义ANY端点不是维护场景下的最优选择,因此错误。 关键知识点: 1. Amazon Aurora高可用机制:Aurora存储默认跨3个可用区冗余,实例层面通过添加跨可用区的读取器实例实现高可用,主实例故障或维护时会自动将读取器提升为新主,故障转移时间通常在30秒以内。 2. Aurora端点类型:集群端点始终指向当前主实例,适用于写入流量;读取器端点负载均衡所有可用读取器实例,适用于读取流量;两种原生端点均由AWS自动维护路由,实例切换时自动更新。 3. Aurora维护窗口行为:对于多实例Aurora集群,维护操作会先应用于读取器实例,再执行主实例故障转移到已完成维护的读取器,最后维护原主实例,最大程度降低服务中断时间。 参考资料: Amazon Aurora 高可用性, https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html Amazon Aurora 端点, https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html

常见问题

DOP-C02 有多少道练习题?

本题库收录 DOP-C02 练习题共 429 道,含单选、多选等题型,每题配有答案与解析。

DOP-C02 练习题支持中英文吗?

支持,DOP-C02 练习题为中英双语对照,便于对照原文理解。

DOP-C02 练习题可以免费试做吗?

可以,本页提供免费样题在线试做;完整题库可在掌学兔注册后获取。