AWS面试有两种类型。一种考察你是否了解各项服务的功能以及何时选择哪一种。另一种是给你一个场景,比如一个必须经受故障考验的Web应用,或者一张翻倍了的账单,然后观察你如何从可靠性、安全性和成本角度进行推理。本指南包含25道题,两种风格都有答案。
服务细节和限制经常变化,所以具体数字请查阅AWS文档。面试官主要想听的是你的推理过程。
核心服务
1. EC2、Lambda和容器(ECS或EKS)之间有什么区别?
EC2提供由你管理的虚拟服务器。Lambda在响应事件时运行代码,无需管理服务器,按调用次数和运行时长付费,但对运行时间和大小有限制。ECS或EKS上的容器介于两者之间:你打包应用,服务负责调度,既可以运行在你管理的服务器上,也可以运行在Fargate上,后者免去了服务器管理。
事件驱动或突发性工作选Lambda,长时间运行的服务和可移植性选容器,需要完全控制机器时选EC2。
2. S3有哪些存储类别?
S3针对不同的访问模式提供了多种类别:Standard用于频繁访问,Intelligent-Tiering用于访问模式未知或变化的情况,Standard-IA和One Zone-IA用于不频繁访问,Glacier系列用于归档,检索时间各不相同。生命周期规则会自动在类别之间移动对象。
3. 如何保护S3存储桶的安全?
在账户和存储桶级别阻止公开访问,使用仅授予所需权限的存储桶策略和IAM角色,启用加密(SSE-S3或KMS),开启版本控制以便恢复,启用访问日志记录,当流量不应经过互联网时使用VPC终端节点。
4. EBS、EFS和S3有什么区别?
EBS是挂载到单个EC2实例的块存储,类似磁盘。EFS是共享网络文件系统,多个实例可以挂载。S3是通过API访问的对象存储,适合文件、备份和静态资源。
5. RDS、Aurora和DynamoDB有什么区别?
RDS运行托管的关系型数据库,如MySQL和PostgreSQL。Aurora是AWS自研的关系型引擎,兼容MySQL和PostgreSQL,为更高的可用性和性能而构建。DynamoDB是托管的NoSQL键值和文档数据库,可水平扩展,需要围绕访问模式进行设计。需要跨多表连接和事务时选关系型,需要大规模已知键值访问时选DynamoDB。
网络
6. 什么是VPC,它的主要组成部分有哪些?
VPC是你在AWS中的私有网络。它包含子网(公有和私有)、路由表、用于公网流量的互联网网关、让私有子网能够出站访问互联网的NAT网关,以及用于流量控制的安全组和网络ACL。
7. 安全组和网络ACL有什么区别?
安全组是有状态的防火墙,挂载在实例或网络接口上,只有允许规则。网络ACL是无状态的防火墙,作用于子网级别,支持允许和拒绝规则。返回流量必须在ACL中显式允许。
8. 公有子网和私有子网有什么区别?
公有子网有通往互联网网关的路由,因此其中的资源如果有公有地址并允许访问,就可以从互联网访问。私有子网没有直接路由,所以你把数据库和应用服务器放在那里,让它们通过NAT网关向外访问。
9. 你会如何将本地系统连接到AWS?
站点到站点VPN可以通过互联网快速建立加密连接,Direct Connect则提供专用网络连接,性能更稳定。很多架构两者兼用,以VPN作为备份。
10. Route 53是做什么的?
它是AWS的DNS服务。它还支持健康检查和路由策略,如加权路由、基于延迟的路由、地理位置路由和故障转移路由。
安全与身份
11. 什么是 IAM?什么是最小权限原则?
IAM 控制谁能在 AWS 中做什么。最小权限原则意味着只给每个用户、角色或服务分配它真正需要的权限。优先使用带临时凭证的角色,而不是长期访问密钥,并在合适的地方使用策略条件和权限边界。
12. IAM 用户、组、角色和策略之间有什么区别?
用户是拥有长期凭证的身份。组是一组用户。角色是可以被个人、服务或其他账户临时承担的身份。策略是定义权限的文档,可以附加到上述任何一种身份上。
13. 你如何管理密钥?
把它们存放在 Secrets Manager 或 Systems Manager Parameter Store 中,而不是代码或仓库里的环境文件中。通过 IAM 角色授予访问权限,定期轮换,并用 KMS 加密。
14. KMS 是做什么的?
AWS Key Management Service 用于创建和控制加密密钥。许多服务用它来实现静态加密,你可以通过密钥策略和 IAM 控制谁可以使用每个密钥。
可靠性与扩展
15. 你如何让应用具备高可用性?
把它分布在至少两个可用区。在前面放一个负载均衡器,用 Auto Scaling 组替换故障实例,使用多可用区数据库,并避免把状态存在单台服务器上。如果要应对区域级故障,就增加第二个区域,配合数据复制和 DNS 故障转移,并判断这个成本是否值得。
16. 应用负载均衡器和网络负载均衡器有什么区别?
ALB 工作在第七层,处理 HTTP 和 HTTPS,支持基于路径和主机的路由。NLB 工作在第四层,处理 TCP 和 UDP,能应对极高吞吐量和低延迟,并提供静态 IP 地址。
17. 自动扩展是如何工作的?
Auto Scaling 组让实例数量保持在最小值和最大值之间。扩展策略根据 CPU、请求数等指标或时间计划来增加或减少实例。健康检查会替换不健康的实例。
18. 什么是 RTO 和 RPO?主要的灾难恢复策略有哪些?
RTO 是你能承受多长的停机时间,RPO 是你能承受丢失多少数据。常见的策略从最便宜、最慢到最贵、最快依次是:备份与恢复、指示灯、温备、多站点双活。
19. 什么时候会用 SQS、SNS 或 EventBridge?
SQS 是队列,用于解耦生产者和消费者并平滑负载。SNS 是发布-订阅,把消息推送给多个订阅者。EventBridge 根据规则在服务之间以及 SaaS 来源之间路由事件。一个常见模式是 SNS 分发到多个 SQS 队列,让每个消费者按自己的节奏处理。
运维与成本
20. 你如何监控 AWS 应用?
用 CloudWatch 收集指标、日志和告警,用 X-Ray 或类似的追踪工具查看请求链路,用 CloudTrail 记录 API 活动和审计。告警应该发送给某个人或某个自动化流程,仪表盘应该展示真正重要的信号,比如错误率和延迟。
21. 什么是基础设施即代码?你用哪些工具?
把基础设施定义在文件中,进行版本控制和评审。在 AWS 上,主要工具是 CloudFormation 和 CDK,Terraform 作为第三方选项也被广泛使用。好处是可重复、可评审、易于重建。
22. 你的 AWS 账单翻倍了,你会怎么做?
- 打开 Cost Explorer,按服务、账户和标签分组,找出变化在哪里。
- 检查是否有新增或调整规格的资源、数据传输,以及未挂载的卷或闲置实例。
- 检查是否有流量激增或失控的进程。
- 修复原因,然后设置预算和告警,以便更早发现问题。
- 寻找长期节省空间,比如合理调整规格、Savings Plans 或预留容量、对灵活的工作负载使用 Spot 实例,以及存储生命周期规则。
23. 你如何降低数据传输成本?
尽量让流量保持在同一个区域和可用区内,对 AWS 服务使用 VPC 端点而不是 NAT 网关,用 CloudFront 等 CDN 分发内容,并对数据进行压缩。
场景题
24. 在 AWS 上设计一个高可用的 Web 应用。
“我会把应用放在 Auto Scaling 组里,跨两到三个 AZ,部署在私有子网中,前面用公有子网里的 Application Load Balancer 做入口。数据库用 Multi-AZ 的 RDS 或 Aurora,如果需要扛大量读请求,就加上备份和只读副本。静态内容放到 S3,前面挂 CloudFront。会话数据放 ElastiCache 或数据库里,不要放在实例上。部署用基础设施即代码,监控用 CloudWatch 告警,密钥统一放 Secrets Manager。”
然后聊权衡:成本、恢复时间,以及是否真的需要多区域。
25. 一个 Lambda 函数超时了,你会怎么排查?
先看 CloudWatch 日志和 duration 指标,找有没有慢的下游调用,比如数据库或 API;再看冷启动的影响和内存设置(内存给得多,CPU 也会跟着多);还要确认它是不是卡在 VPC 连接或配额限制上。修复手段包括设置超时和重试、加缓存、调大内存,或者把耗时长的任务挪到队列或容器里。
如何准备
做一个小项目,把 VPC、负载均衡、数据库和存储桶都用上,然后练习把每个选择讲清楚。学一下 Well-Architected 的六大支柱(卓越运营、安全性、可靠性、性能效率、成本优化和可持续性),因为很多场景题的答案都能对应到这些框架上。想练相关的设计题,可以看我们的系统设计面试指南;想练编码环节,可以看编程面试助手指南。
练习把设计方案大声讲出来,然后回看文字记录,找出那些你直接蹦出一个服务名、却没给理由的地方。线上面试时,使用 AI 工具要遵守雇主的规定。
使用 YesToTheOffer 练习 AWS 面试答案
进行模拟技术面试,大声讨论设计,并在之后查看您的记录。30 分钟免费,无需订阅。



