SAP-C02 · LESSON 2

为新解决方案设计29% · 6 个主题

学习为新解决方案设计部署策略、业务连续性、安全性、可靠性、性能和成本。

2.1设计满足业务要求的部署策略

2.1 设计满足业务要求的部署策略。

概念

部署策略有就地、滚动、蓝/绿、金丝雀和线性。要消除停机并快速回退,使用蓝/绿部署(Route 53、ALB 加权、CodeDeploy);要在有限影响下验证,使用金丝雀部署。向多个账户和区域部署相同的基础设施用 CloudFormation StackSets,应用的管道用 CodePipeline。

原理、步骤

  1. 确认可接受的停机时间和回退速度要求
  2. 选择符合要求的部署方式
  3. 用 IaC 定义基础设施,并用 StackSets 部署到组织的所有账户
  4. 用 CodeDeploy、Lambda 别名或 ECS 蓝/绿部署逐步切换
  5. CloudWatch 告警检测到异常时自动回滚

工作中的示例

把支付 API 的新版本通过 Lambda 别名设为 10% 的金丝雀,监控错误率 10 分钟,没有问题就全面切换。

易混淆点、考试注意事项

小测验

Q1. 用 CodeDeploy 对 ECS 服务进行蓝/绿部署。新版本错误增加时,希望无需人工干预就回退到旧版本。最合适的方法是哪一项?

  1. 停止蓝/绿部署改为一次性部署,出现错误时立即重新发布修正版
  2. 大幅增加客户端的重试次数,使错误被重试吸收
  3. 部署后由负责人每小时查看日志,错误多时用旧版任务定义重新部署
  4. 把 CloudWatch 告警关联到部署组,并启用告警时的自动回滚
查看答案和解析

正确答案:D 把 CloudWatch 告警关联到部署组,并启用告警时的自动回滚

部署期间或等待期间发生告警时,CodeDeploy 可以自动回滚,把流量切回原来的任务集。

Q2. 蓝/绿部署把流量切换到新版本后,错误率告警立即响起。旧环境仍然保留。首先最应该做的是哪一项?

  1. 把流量切回旧环境(蓝)止住影响,然后调查新版本的原因
  2. 删除旧环境降低费用,然后着手修正新版本并重新发布
  3. 在收集并分析完出错新版本的全部日志之前,保持切换状态
  4. 增加新环境的实例,观察一段时间看错误是否减少
查看答案和解析

正确答案:A 把流量切回旧环境(蓝)止住影响,然后调查新版本的原因

蓝/绿部署的优点是能立即回退。先止住对用户的影响,再调查原因。旧环境要保留到稳定为止。

参考链接

2.2设计确保业务连续性的解决方案

2.2 设计确保业务连续性的解决方案。

概念

业务连续性通过备份(AWS Backup 的跨区域、跨账户复制和 Vault Lock)和多区域架构来确保。Aurora Global Database 可以把 RPO 目标定为 1 秒以内、RTO 约 1 分钟,DynamoDB 全局表可以进行多区域主动/主动写入。

原理、步骤

  1. 把重要数据的备份复制到其他账户和区域
  2. 作为勒索软件对策,用 AWS Backup Vault Lock 防止删除
  3. 需要短 RPO 的数据库使用 Aurora Global Database
  4. 需要多区域写入时使用 DynamoDB 全局表
  5. 自动化切换步骤并进行演练

工作中的示例

把电商网站的订单数据库改为 Aurora Global Database,主区域故障时提升辅助集群,大约 1 分钟恢复写入。

易混淆点、考试注意事项

小测验

Q1. 运维团队每月要花大量时间为 EC2 上自行运维的 MySQL 打补丁和备份。希望在新系统中减轻运维负担。最合适的选择是哪一项?

  1. 把 MySQL 迁移到 Windows Server 上,让 Windows Update 的自动更新也负责数据库补丁
  2. 停止打补丁,只在发现问题时一并更新操作系统和数据库
  3. 增加 EC2 实例数量部署多台 MySQL,逐台手动打补丁
  4. 使用 Amazon Aurora MySQL 等托管数据库,把补丁和备份交给 AWS
查看答案和解析

正确答案:D 使用 Amazon Aurora MySQL 等托管数据库,把补丁和备份交给 AWS

要减轻基础设施准备和打补丁的负担,应采用托管服务。Aurora 和 RDS 可以在维护时段打补丁并自动备份。

Q2. 希望自动备份多个账户中的 EBS、RDS 和 DynamoDB,在控制费用的同时能在其他区域还原,并防止勒索软件删除备份。最合适的配置是哪一项?

  1. 不做备份,仅靠数据库多可用区部署和 EBS 加密来应对勒索软件的删除
  2. 在 AWS Backup 计划中设置复制到其他区域和转入冷存储,并启用 Vault Lock
  3. 把所有备份保存在与生产相同的账户和区域,以还原速度为最优先
  4. 由负责人每天在各服务控制台手动创建快照,在名称中加上日期来管理
查看答案和解析

正确答案:B 在 AWS Backup 计划中设置复制到其他区域和转入冷存储,并启用 Vault Lock

AWS Backup 集中管理备份的创建、保留和复制,并可通过生命周期降低费用。Vault Lock 可防止删除已保存的备份或缩短保留期限。

参考链接

2.3根据要求确定安全控制

2.3 根据要求确定安全控制。

概念

新系统的安全要根据要求(法规、数据敏感度、公开范围)选择控制。边界防御使用 WAF、Shield Advanced(DDoS 响应团队和成本保护)、AWS Network Firewall(对 VPC 流量的有状态检查和域名过滤);数据使用 KMS 或 CloudHSM(需要专用 HSM 时);补丁使用 Systems Manager Patch Manager;身份验证使用 Cognito(终端用户)或 IAM Identity Center(员工)。

原理、步骤

  1. 根据法规和数据分类找出所需的控制
  2. 在公开边界放置 WAF 和 Shield,在 VPC 进出流量上放置 Network Firewall
  3. 需要 FIPS 140 第 3 级专用密钥时用 CloudHSM,其他情况用 KMS
  4. 用 Patch Manager 确定补丁基准和打补丁的时段
  5. 用 Cognito 进行用户身份验证并强制 MFA

工作中的示例

为了让内部服务器的对外通信只能访问允许的域名,用 Network Firewall 的域名列表进行限制,拒绝其他所有流量。

易混淆点、考试注意事项

小测验

Q1. 对于全球使用的大型 Web 应用,希望在边缘阻止大部分攻击,并防止直接访问源站 ALB。最合适的配置是哪一项?

  1. 把 ALB 直接公开到互联网,把 ALB 的 DNS 名称设得又长又难猜来避免攻击
  2. 把 WAF 关联到 CloudFront,ALB 的安全组只允许来自 CloudFront 托管前缀列表的流量
  3. 要求所有用户事先申请访问来源 IP 地址,在 ALB 上手动管理允许列表
  4. 不使用 CloudFront,始终在 ALB 后面保留数倍于高峰的 EC2,承受攻击带来的全部大量请求负载
查看答案和解析

正确答案:B 把 WAF 关联到 CloudFront,ALB 的安全组只允许来自 CloudFront 托管前缀列表的流量

用 CloudFront 和 WAF 在边缘阻止攻击,用安全组把对源站的直接访问限制为 CloudFront 前缀列表(有时还会结合自定义标头验证)。

Q2. 正在设计大型网站的攻击防护。特定 IP 地址在 5 分钟内反复进行数千次登录尝试。最合适的是哪一项?

  1. AWS WAF 托管规则组
  2. AWS WAF 基于速率的规则
  3. AWS Shield Advanced
  4. CloudFront 地理限制
查看答案和解析

正确答案:B AWS WAF 基于速率的规则

基于速率的规则按来源 IP 等统计请求数,在一段时间内阻止超过阈值的来源。

参考链接

2.4制定满足可靠性要求的策略

2.4 制定满足可靠性要求的策略。

概念

可靠性设计结合了缩小故障影响范围(基于单元的架构、随机分片)、松耦合依赖(SQS、EventBridge)、重试(指数退避和抖动)与超时、断路器,以及监控和提高配额(Service Quotas)。

原理、步骤

  1. 找出单点故障,在多个可用区实现冗余
  2. 加入超时和异步化,使依赖方变慢时整体不会停止
  3. 用指数退避和抖动进行重试,并使操作幂等
  4. 接近 Service Quotas 上限时用告警通知,并提前提高
  5. 用运行状况检查自动移除异常资源

工作中的示例

外部支付 API 变慢时,用超时和断路器保持订单受理,支付放入 SQS 稍后处理。

易混淆点、考试注意事项

小测验

Q1. 关于灾难恢复(DR)演练,错误的说法是哪一项?

  1. 把演练中发现的步骤缺陷以及配额、权限不足反映到改进中
  2. 选择不影响生产的方法(如在隔离的网络中启动恢复环境)进行演练
  3. 演练可能影响生产,因此最好一次也不实施,只整理操作手册
  4. 定期演练,测量实际的 RTO 和 RPO 是否达到目标
查看答案和解析

正确答案:C 演练可能影响生产,因此最好一次也不实施,只整理操作手册

未经测试的灾难恢复步骤在灾难时常常无法运作。应以不影响生产的方法定期演练,确认是否达到目标。

Q2. 在向全公司发布新服务之前,希望防止因使用量突增触及上限而停止。最合适的措施是哪一项?

  1. 服务配额会随用量自动无限增加,因此不需要特别准备
  2. 估算所需的服务配额并提前申请提高,用 CloudWatch 告警监控使用率
  3. 发布后出现上限错误时,每次联系 AWS Support 提高配额
  4. 为避免触及上限,一直只让少数部门使用,无限期推迟全公司发布
查看答案和解析

正确答案:B 估算所需的服务配额并提前申请提高,用 CloudWatch 告警监控使用率

服务配额有上限,很多可以通过申请提高。应提前估算并提高,用 Service Quotas 和 CloudWatch 监控使用率。

参考链接

2.5设计满足性能目标的解决方案

2.5 设计满足性能目标的解决方案。

概念

性能目标(延迟、吞吐量)通过缓存(CloudFront、ElastiCache、DAX、API Gateway 缓存)、数据库选择(专用数据库)、计算资源选择(实例类型、GPU、Graviton)、异步化和全球部署(边缘、多区域)来满足。用负载测试确认目标。

原理、步骤

  1. 用数值确定性能目标(如 p99 延迟)
  2. 选择适合访问模式的专用数据库
  3. 缓存反复读取的数据
  4. 把繁重的处理异步化以加快响应
  5. 用负载测试确认是否达到目标

工作中的示例

为了在 p99 200 毫秒以内响应全球用户,静态内容用 CloudFront,API 读取用 DynamoDB 全局表和 DAX 从各区域返回。

易混淆点、考试注意事项

小测验

Q1. 在 Aurora 故障转移演练中,数据库切换 30 秒就完成了,但应用的连接错误持续了几分钟。应用长时间缓存了 DNS 结果。接下来最合适的做法是哪一项?

  1. 把应用的连接目标改为读取器端点
  2. 使用集群端点并缩短 DNS 缓存(或使用 RDS Proxy)
  3. 把应用固定连接到主实例的端点
  4. 重新审视 Aurora 的故障转移优先级(层级)
查看答案和解析

正确答案:B 使用集群端点并缩短 DNS 缓存(或使用 RDS Proxy)

故障转移时,集群终端节点的 DNS 会指向新的主实例。如果应用的 DNS 缓存时间长,就会继续使用旧的连接目标,因此要缩短 TTL 或用 RDS Proxy 管理连接。【其他选项】读取器端点只用于读取,不能写入。固定到实例端点,故障转移后会指向旧实例。层级决定切换顺序,不能解决应用的 DNS 缓存问题。

Q2. 作为这个门户的配置,最符合要求的是哪一项?

  1. 在两个区域始终运行同等规模的环境,每次同时写入两个数据库
  2. 在 EC2 上按与本地相同的配置自行构建 Web、应用和数据库,操作系统和中间件也自行运维
  3. 跨多个可用区配置 CloudFront、ALB、ECS on Fargate 和 Aurora Serverless v2
  4. 把 Web 服务器和数据库集中在一台大型 EC2 上,每晚创建 EBS 快照
查看答案和解析

正确答案:C 跨多个可用区配置 CloudFront、ALB、ECS on Fargate 和 Aurora Serverless v2

采用托管、偏无服务器的配置,2 人也能运维,费用随负载增减。用多个可用区确保可用性。单台配置是单点故障,多区域始终运行不符合首年费用要求。

参考链接

2.6确定成本优化策略

2.6 确定实现解决方案目标和目的的成本优化策略。

概念

在新系统中,通过采用托管和无服务器服务降低运维成本,并在设计阶段纳入购买选项(Savings Plans、竞价型)、存储类别、数据传输少的架构以及合适的规格选择。按要求比较成本估算,以便说明权衡。

原理、步骤

  1. 确定满足要求所需的最小配置
  2. 用托管和无服务器服务减少运维工作和闲置费用
  3. 稳定部分用 Savings Plans,可中断的处理用竞价型实例
  4. 审查数据传输路径(NAT、跨区域)
  5. 从一开始就设置标签和预算

工作中的示例

把每月只使用几次的内部申请系统,从始终运行的 EC2 改为采用 API Gateway、Lambda 和 DynamoDB 的无服务器设计,把费用降低九成。

易混淆点、考试注意事项

小测验

Q1. 上线 3 个月后,Fargate 的用量趋于稳定。进一步降低首年费用最合适的方法是哪一项?

  1. 追溯到上线首日,按高峰用量重新购买 3 年期 Savings Plans
  2. 不使用折扣,把分配给任务的 CPU 和内存固定为最小值
  3. 停用 Fargate,改为让所有任务在竞价型 EC2 上运行
  4. 根据使用实绩确定始终使用的量,只购买相应数量的 Compute Savings Plans
查看答案和解析

正确答案:D 根据使用实绩确定始终使用的量,只购买相应数量的 Compute Savings Plans

根据实绩只对始终使用的基准量做承诺,可以毫无浪费地获得折扣。Compute Savings Plans 也适用于 Fargate。

Q2. 正在设计大型网站的攻击防护。为应对大规模 DDoS 攻击,希望获得 24 小时专业团队的支持,以及对因攻击而增加的使用费的保障。最合适的是哪一项?

  1. AWS WAF 托管规则组
  2. AWS WAF 基于速率的规则
  3. AWS Shield Advanced
  4. CloudFront 地理限制
查看答案和解析

正确答案:C AWS Shield Advanced

Shield Advanced 是付费服务,除了高级 DDoS 防护,还提供 Shield Response Team 的支持以及针对攻击导致使用费增加的保护等。

参考链接

课程由本站根据公开信息独立编写,不保证与考试内容一致。产品规格可能变化,请在参考链接中确认最新信息。

使用须知(非官方、原创题目、不保证合格)