从EC2实例组收集内存、磁盘和进程指标。默认的CloudWatch指标不包含这些信息。
通过SSM Distributor或`AmazonCloudWatch-ManageAgent`运行命令安装CloudWatch代理。从Parameter Store推送代理配置。
原因: 内存和磁盘是客户操作系统指标——管理程序无法看到它们。默认的CW指标仅限于EBS层的CPU/网络/磁盘I/O。
AWS Certified CloudOps Engineer Associate
最后审核:2026年5月
SOA-C03 考试涉及的架构模式快速参考。从头到尾阅读,或跳转到任意章节。
从EC2实例组收集内存、磁盘和进程指标。默认的CloudWatch指标不包含这些信息。
通过SSM Distributor或`AmazonCloudWatch-ManageAgent`运行命令安装CloudWatch代理。从Parameter Store推送代理配置。
原因: 内存和磁盘是客户操作系统指标——管理程序无法看到它们。默认的CW指标仅限于EBS层的CPU/网络/磁盘I/O。
应用程序需要将业务KPI(例如每分钟订单数)发布到CloudWatch。
使用自定义命名空间+维度调用`PutMetricData` API。对于大容量使用嵌入式指标格式(EMF)——将结构化JSON写入日志,CloudWatch会自动提取指标。
降低高基数自定义指标的成本。
嵌入式指标格式(EMF)。只需记录一次结构化事件;CloudWatch会从中提取指标。一个日志+一个指标比每个维度组合单独调用`PutMetricData`更便宜。
由于流量存在每日/每周季节性,静态阈值警报会产生误报。
CloudWatch异常检测警报。波段会适应学习到的季节性;当指标超出波段时,警报会触发。
原因: 季节性工作负载具有可变的正常范围——固定阈值有一半时间是错误的。
仅当高错误率和低流量同时发生时才通知待命人员——而不是单独触发时。
复合警报,使用规则表达式`ALARM(errors) AND ALARM(low_traffic)`。底层警报仍会单独触发,但只有复合警报会通知SNS。
将`ERROR uid=123`之类的日志行转换为CloudWatch指标以进行警报。
CloudWatch Logs指标过滤器——模式`ERROR`会使指标递增。然后基于该指标创建警报。
原因: 过滤器在日志摄取时进行评估;不需要单独的解析管道。
在过去一小时内,跨多个日志流查找导致5xx错误的IP前10名。
CloudWatch Logs Insights查询:`fields @timestamp, @message | filter @message like /5\d\d/ | stats count() by clientIp | sort count desc | limit 10`。
日志组保留策略默认为“永不失效”——账单正在增长。
为每个日志组设置保留期(1天–10年)。通过`aws logs put-retention-policy`或自动修复新组的AWS Config规则应用。
将50个账户的日志集中到一个安全账户。
在每个源日志组上设置订阅过滤器 → 中央账户中的Kinesis Data Streams或Firehose。使用CloudWatch跨账户可观测性进行指标+追踪。
以低成本进行长期日志归档。
将日志组订阅到Kinesis Firehose → S3,并设置Glacier转换生命周期。或者直接定期`CreateExportTask`到S3。
原因: Firehose是持续的;ExportTask是按需的批量导出。S3 + Glacier比CW Logs存储便宜100倍。
与没有IAM访问权限的非AWS承包商共享操作仪表板。
CloudWatch仪表板共享——公共共享链接(通过Cognito提供身份验证)或匿名(锁定到特定仪表板)。
当EC2实例进入`stopped`状态时触发Lambda。
EventBridge规则,使用事件模式`{"source":["aws.ec2"],"detail-type":["EC2 Instance State-change Notification"],"detail":{"state":["stopped"]}}` → Lambda目标。
当AWS宣布对您的某个RDS实例进行计划维护时,自动创建工单。
AWS Health → EventBridge默认总线 → Lambda或SNS → 工单系统。根据`source: aws.health`和受影响的资源进行筛选。
在客户抱怨之前检测公共网站何时出现404错误。
CloudWatch Synthetics Canary——每分钟脚本化浏览器访问,失败时截图,失败运行触发警报。
测量真实用户的浏览器端页面加载时间和JavaScript错误。
CloudWatch RUM。页面上的代码片段发送性能+错误数据。与X-Ray结合用于后端关联。
无需手动检查每个实例的CloudWatch即可调整EC2实例组的大小。
AWS Compute Optimizer——分析CloudWatch指标+内存数据(带代理)并推荐实例类型更改。涵盖EC2、ASG、EBS、Lambda、ECS Fargate。
查看200个账户中“每个EBS卷是否启用了静态加密”。
AWS Config聚合器,具有多账户多区域授权。聚合器仪表板+高级查询(SQL)。
自动修复不合规资源(例如未加密的EBS卷→快照+重新创建加密卷)。
AWS Config规则+通过SSM Automation Runbook进行自动修复操作。指定重试次数+参数。
无需编写自定义脚本即可发现成本节约机会和安全风险。
AWS Trusted Advisor。成本/性能/安全/容错/服务限额检查。完整的检查集需要Business或Enterprise支持。
需要提高某个区域的EC2 vCPU配额以应对即将到来的发布。
Service Quotas控制台——请求配额增加。或使用Service Quotas API进行脚本化。某些配额是自动批准的;其他需要通过支持团队。
在月度账单到来之前捕获意外的成本激增。
AWS Cost Anomaly Detection——基于ML;为每个服务/关联账户/成本类别配置监控器。通过SNS或电子邮件发送警报。
如果月度预算超出阈值,自动停止非生产EC2。
AWS Budgets操作——在达到阈值时,运行SSM Automation,该自动化会停止带标签的实例或通过IAM应用deny-all SCP。
在ASG终止实例之前,排空连接+刷新日志。
在`EC2_INSTANCE_TERMINATING`上设置生命周期挂钩。实例进入`Terminating:Wait`状态;SSM文档运行排空脚本;完成后发出`CONTINUE`动作。
自动扩缩以将平均CPU保持在60%左右。
目标跟踪扩缩策略,`ASGAverageCPUUtilization`设置为60。ASG会自动创建步进警报。
原因: 比步进扩缩更简单。最适合对称指标。步进扩缩用于细粒度的扩缩和缩减规则。
流量每天上午9点激增;反应式扩缩滞后。
预测性扩缩。ASG根据CloudWatch历史提前48小时预测负载;在激增之前进行预扩缩。
实例启动需要8分钟;横向扩缩太慢。
ASG预热池——预初始化停止/休眠状态的实例。在横向扩缩时,将停止的实例转换为InService而不是冷启动。
主要在Spot实例上运行ASG以节省成本,但保留On-Demand实例作为稳定基线。
混合实例策略——启动模板+基本容量(On-Demand)+超出基线的部分使用Spot实例。使用多种实例类型以实现Spot多样化。
从启动配置迁移。
使用启动模板。AWS已弃用新ASG的启动配置;只有LT支持新功能(预热池、混合实例、IMDSv2强制执行、EBS gp3等)。
RDS数据库必须在可用区中断时以最小停机时间存活。
多可用区部署。在另一个可用区中进行同步备用;由主机/存储故障或可用区中断触发故障转移。端点保持不变。
原因: Multi-AZ用于高可用性,而非读扩展。对于读扩展,请添加只读副本。
跨区域灾难:将只读副本提升为主实例。
`PromoteReadReplica` API或控制台操作。新副本成为独立的读写实例;更新应用程序端点。
将EFS、RDS、EBS、DynamoDB、FSx备份集中在一个计划+保留策略下。
AWS Backup——包含规则(频率、保留期、到冷存储的生命周期)、备份选择(资源ARN或标签过滤器)的备份计划。
遵守监管机构的不可变备份要求(WORM)。
AWS Backup Vault Lock,采用合规模式。一旦强制执行,备份在保留期到期前无法删除——即使是root用户也无法删除。
每天对每个带标签的EBS卷进行快照,保留30天。
Amazon Data Lifecycle Manager (DLM)策略——计划+标签过滤器+保留期。无需代码,无需计划的Lambda。
主动-被动灾难恢复:当主区域失败时,Route53必须将流量发送到备用区域。
Route 53故障转移路由策略,对主端点进行健康检查。健康检查失败时,DNS解析到备用区域。
比默认的30秒更快地检测端点故障。
Route 53健康检查,快速间隔(10秒)和3次失败阈值。通过计算检查组合多个健康检查。
在部署期间ALB移除目标时,长连接会中断。
目标组注销延迟(默认为300秒,根据需要增加)。新请求立即停止流向;进行中的连接在延迟期满前排空。
配置ALB在目标注销期间等待进行中请求的时间。
与注销延迟相同。按目标组设置。NLB有一个单独但并行的机制。
EFS在突发负载下变慢。
切换到弹性吞吐量模式(自动扩缩)。或针对可预测的工作负载使用预置吞吐量。默认的突发模式基于信用,在持续负载下会耗尽。
根据RPO/RTO预算选择灾难恢复策略。
备份与恢复(RTO数小时,RPO数小时,成本最低)。试点灯(RTO数分钟,RPO数分钟)。温备(RTO数分钟,RPO数秒,运行缩减的备用)。多站点主动-主动(RTO约0,RPO约0,成本最高)。
将S3对象复制到第二个区域以满足合规性+灾难恢复。
S3跨区域复制(CRR)。源+目标桶,IAM角色,复制规则。使用复制时间控制(RTC)实现15分钟SLA。
保护对象免受意外或恶意删除。
在桶上启用版本控制+MFA删除。MFA删除需要root凭证+MFA代码才能永久删除版本或禁用版本控制。
TCP/UDP应用程序需要静态IP和跨区域的快速故障转移。
AWS Global Accelerator——2个任播IP,通过AWS骨干网路由到最近的健康区域端点。不到30秒的故障转移。
原因: 对于非HTTP流量,优于Route 53故障转移;客户端保持相同的IP。
有人在控制台中修改了资源;检查哪些与CloudFormation模板发生偏离。
对堆栈进行CloudFormation漂移检测。报告每个资源的漂移状态,包括属性级别的差异。
在应用模板更改之前,准确查看CloudFormation将修改什么。
首先创建变更集;审查提议的更改;只有在安全的情况下才执行。变更集支持嵌套堆栈和跨堆栈引用。
防止堆栈内关键资源(例如生产RDS)的意外更新。
CloudFormation堆栈策略——IAM风格的文档,允许或拒绝特定逻辑资源ID上的`Update:*`。应用于堆栈,与IAM分离。
将相同的基线(例如CloudTrail、Config、GuardDuty)部署到组织中的所有账户。
带有服务管理权限+自动部署到目标OU中新账户的CloudFormation StackSets。
从EC2用户数据运行配置+向CloudFormation发出完成信号。
cfn-init(配置)、cfn-signal(信号CreationPolicy)、cfn-hup(应用元数据更改)。CreationPolicy使堆栈等待信号,然后才标记CREATE_COMPLETE。
如果部署后CloudWatch警报触发,自动回滚堆栈。
CloudFormation回滚配置——CloudWatch警报列表+监控时间。如果在窗口期内任何警报触发,堆栈将自动回滚。
通过标签向500个EC2实例推送一次性shell命令。
SSM Run Command,使用`AWS-RunShellScript`文档,按标签定位。无需SSH。日志记录到S3 / CloudWatch Logs。
在所有实例上持续强制执行配置(例如CloudWatch代理已安装)。
SSM State Manager关联——计划+文档+目标。SSM按计划应用所需状态并报告合规性。
按计划对实例组应用操作系统补丁,并具有回滚安全性。
SSM Patch Manager——补丁基线(规则:严重性、分类、批准延迟)+补丁组(标签)+用于运行的维护窗口。
无需堡垒主机或开放入站端口即可SSH到私有子网实例。
SSM Session Manager——代理+IAM角色通过SSM Messages API打开会话。没有公共IP,没有SSH密钥,完整的会话日志记录。
存储数据库连接字符串供应用程序在运行时获取——不将密钥检入代码。
SSM Parameter Store SecureString (KMS加密) 或 Secrets Manager (轮换)。应用程序使用IAM角色调用`GetParameter`。
原因: Parameter Store在标准层是免费的;Secrets Manager为RDS/DocumentDB/Redshift提供了内置轮换功能。
自动修复合规性发现(例如,开放到世界的安全组 → 限制)。
SSM Automation Runbook(自定义YAML或AWS拥有)。由EventBridge / Config / 手动触发。步骤:分支、并行、重试、中止。
仅在周日02:00–04:00期间运行补丁。
SSM维护窗口——计划(cron)、目标、任务。封装Run Command / Automation / Lambda / Step Functions调用。
按计划构建预安装代理的强化Linux/Windows AMI。
EC2 Image Builder——管道(镜像配方+组件+基础设施配置+分发)。将AMI输出到多个区域/账户。
在完全发布之前,将新应用程序版本部署到一小部分EC2/ECS/Lambda。
CodeDeploy,使用Canary或线性部署配置。Lambda Canary `Lambda10Percent5Minutes`通过别名权重转移流量。
在ALB后面的ASG上进行蓝/绿部署。
CodeDeploy蓝/绿部署组——配置新的ASG,向ALB目标组注册,等待健康检查,交换流量,终止旧的。
工具账户中的管道部署到开发/预发布/生产账户。
跨账户CodePipeline——部署阶段使用目标账户的跨账户角色。工具账户中的KMS密钥与目标账户共享。
允许开发团队自助服务经批准的基础设施(例如VPC、S3桶),而无需授予完整的IAM权限。
AWS Service Catalog——管理员发布产品(CFN模板),用户通过启动产品角色的IAM权限(而非底层资源)来启动。
在整个组织中强制所有资源都具有`Environment`和`CostCenter`标签。
AWS Organizations标签策略。定义允许的标签键+值;不合规的标签会在Resource Groups Tag Editor + Config中显示。
从OpsWorks Stacks迁移(2024年5月生命周期结束)。
OpsWorks Stacks已到生命周期结束。迁移到AWS Systems Manager + EC2上的原生Chef/Puppet,或转换为ECS/EKS,或通过SSM Automation + CFN重建。
在嵌套堆栈和跨堆栈引用之间进行选择。
嵌套堆栈:紧密耦合,生命周期一起管理(单次更新)。跨堆栈`Export`/`ImportValue`:松散耦合,独立生命周期,导出项在被导入时不可变。
识别访问密钥超过90天的IAM用户。
生成凭证报告(`generate-credential-report` + `get-credential-report`)。CSV文件包含每个用户的最后使用时间+密钥年龄。结合Access Analyzer进行最小权限审查。
查找可从账户/组织外部访问的IAM角色、S3桶、KMS密钥。
IAM Access Analyzer——信任区域扫描报告外部访问发现。外部访问分析器是免费的;未使用访问分析器是付费的。
修剪过度授权的IAM策略——移除主体从未使用过的服务。
每个角色/用户的IAM上次访问信息。列出服务级别+(对于某些服务)操作级别的最后使用时间。移除未使用的权限。
在集中存储的情况下,审计组织中所有账户的所有API调用。
管理账户或委托管理员账户中的组织跟踪。单个S3桶;涵盖所有当前+未来的成员账户;成员无法禁用。
记录敏感桶中每次S3对象读取。
为S3启用CloudTrail数据事件(每个桶或所有桶)。标准跟踪仅捕获管理事件;数据事件单独计费。
检测被泄露的凭证、端口扫描、加密货币挖矿、异常API活动。
在每个区域启用GuardDuty。安全账户中的委托管理员聚合组织范围内的发现。EventBridge规则→SNS用于高严重性警报。
对EC2 AMI和ECR镜像进行持续的CVE扫描。
Amazon Inspector v2。自动发现EC2+ECR+Lambda;结果显示在Security Hub中。具有严重性评分的CVE。
GuardDuty、Inspector、Macie、IAM Access Analyzer和第三方工具发现的单一仪表板。
AWS Security Hub。标准(CIS AWS Foundations、AWS Foundational Security Best Practices、PCI DSS)。跨区域聚合+委托管理员。
在S3中发现和分类PII / 信用卡数据。
Amazon Macie。对桶进行自动发现作业;托管数据标识符+自定义正则表达式。将发现结果发送到Security Hub / EventBridge。
无需重新加密数据即可轮换KMS加密密钥。
对客户管理的CMK启用自动密钥轮换(每年)。KMS保留旧密钥材料以解密现有密文;新加密使用最新材料。
每30天自动轮换RDS主密码。
Secrets Manager轮换,使用AWS提供的RDS引擎Lambda。单用户或交替用户轮换策略。
在整个组织中应用CIS基准。
AWS Config Conformance Pack——Config规则+修复操作的捆绑包。通过聚合器将Config部署到所有账户;通过管理账户进行组织级别部署。
阻止读取EC2实例元数据的SSRF攻击。
在每个实例上要求IMDSv2 (`HttpTokens=required`)。基于令牌;阻止未经身份验证的SSRF读取实例角色凭证。
账户范围内的保证,任何S3桶永远不会公开可读。
在账户级别启用S3 Block Public Access。这将覆盖每个桶的策略。结合`aws:SecureTransport` SCP以强制仅使用HTTPS。
自动化SOC 2 / HIPAA / PCI审计的证据收集。
AWS Audit Manager——框架将控制措施映射到证据源(Config、CloudTrail、Security Hub)。自动收集并整理成可供评估者使用的报告。
调查子网之间可疑的横向移动流量。
将VPC流日志发送到CloudWatch Logs / S3 / Firehose。使用`pkt-srcaddr` + `pkt-dstaddr`的自定义格式会暴露实际的数据包源/目标(而非ENI源/目标)。
廉价查询数TB的VPC流日志。
将流日志以Parquet格式流式传输到S3;使用Athena按年/月/日分区进行查询。比CW Logs Insights进行存档分析更便宜。
确定ECS任务无法访问RDS的原因——是SG、NACL、路由表还是NAT?
VPC Reachability Analyzer——源ENI → 目标ENI;报告可达/被阻止+哪个组件阻止(例如入站SG规则)。
在整个组织中查找从互联网到数据库子网的所有路径。
Network Access Analyzer,带有网络访问范围(例如`Source: internet, Destination: db-subnet-tag`)。返回匹配的网络路径以供审查。
私有子网中的EC2必须访问S3 / DynamoDB,且不产生NAT出站费用。
用于S3 / DynamoDB的Gateway VPC端点。免费;路由表前缀列表。避免NAT字节费用。
从VPC到大多数其他AWS服务(KMS、SSM、ECR等)的私有连接。
接口VPC端点(PowerLink)。在您的子网中创建ENI,按可用区+每GB计费。使用端点策略限制对特定资源的访问。
NAT Gateway数据处理费在账单中占主导地位。
将S3/DynamoDB流量转移到网关端点(免费)。将其他AWS服务流量转移到接口端点。对于VPC间通信,使用Transit Gateway / VPC对等连接而不是通过NAT路由。
40个VPC需要任意到任意的连接,而无需N×N对等连接。
Transit Gateway作为中心。VPC连接到TGW;路由表控制哪些VPC可以通信。单个托管中心而非O(N²)个对等连接。
本地DNS必须将`internal.company.com`解析到私有VPC资源,反之亦然。
Route 53 Resolver入站+出站端点+转发规则。入站=本地查询AWS;出站=AWS查询本地。
审计从VPC解析了哪些DNS名称。
Route 53 Resolver查询日志记录到CloudWatch Logs / S3 / Firehose。按VPC配置日志记录。
CloudFront源返回5xx;需要自动故障转移到辅助源。
源组,包含主源+辅助源和故障转移标准(状态码500/502/503/504/404)。缓存行为指向该组。
最大化主要静态内容的缓存命中率。
在源响应上设置`Cache-Control: max-age=...`;配置CloudFront仅转发所需的缓存键(避免转发所有请求头/Cookie/查询字符串,这会破坏缓存效率)。
CloudFront位于S3前方——阻止直接S3访问。
源访问控制(OAC)。取代旧版源访问身份(OAI)——支持SigV4、KMS加密桶、所有区域。桶策略拒绝非OAC主体。
在ALB上阻止SQL注入+限制攻击性客户端的速率。
AWS WAFv2 Web ACL:AWS托管规则组`AWSManagedRulesSQLiRuleSet` + 基于速率的规则(例如每IP 5分钟内2000个请求)。关联到ALB / API Gateway / CloudFront / AppSync。
通过成本保护保证缓解持续的七层DDoS攻击。
AWS Shield Advanced——主动参与、应用层DDoS检测、24×7 SRT访问、攻击期间扩缩激增的成本补偿。在Route 53 / CloudFront / ALB / EIP / Global Accelerator上激活。
在所有组织账户中集中管理WAF / Shield / SG / Network Firewall策略。
AWS Firewall Manager(委托管理员)。策略自动应用于范围内的账户/资源;报告不合规。
Direct Connect中断导致混合连接中断。
站点到站点VPN作为互联网上的备份。BGP选择DX作为首选(较低的MED / 较短的AS-PATH);自动故障转移到VPN。