AWS面试问题
作者 Aaron Cao · 更新于

AWS面试考察的是你是否真正在生产环境中运维过服务,而不是你能否背出服务目录。预计会遇到关于VPC网络、IAM、存储类型和高可用性的核心问题,随后是关于成本、故障和迁移的场景题——这些题目考验的是推理过程,而不是服务名称本身。
AWS面试官到底在考察什么?
你已经读过服务列表,却还是说不清面试到底会是什么样。这种落差很正常,这一节就是为了补上它:AWS的面试环节是为了搞清楚你是否真正运维过某项服务,而不是你能否叫出它的名字。
这个规律会在追问中显现。面试官问你会用哪个服务,你答对了,接下来的问题是为什么不用另一个。真正运维过该负载的人,会从账单、故障或迁移经历中给出答案;只读过文档的人则会卡壳。真正决定AWS面试结果的,是第二个问题,而不是第一个。
反复出现的环节有三种:考察网络、身份、存储和计算的基础环节;要求你在限制条件下进行架构设计的场景或设计环节;以及给你一个现象、问你会先排查什么的故障排除环节。深度要求会随资历提高而上升,但结构基本保持不变。其他岗位和主题题库见面试问题库。
最常出现的AWS核心问题有哪些?
以下是AWS面试中反复出现的基础问题,按面试环节通常的组织方式分类。
网络与VPC
- 什么是VPC?公有子网和私有子网有什么区别?
- 什么时候需要NAT网关?它会带来什么成本?
- 安全组和网络ACL有什么区别?
- 你会如何连接两个VPC?什么情况下对等连接(peering)是错误的选择?
身份与安全
- 解释IAM角色、策略和用户的区别,以及各自的使用场景。
- EC2实例如何在不存储密钥的情况下获取凭证?
- 最小权限原则在实际策略中是什么样子?
- 你会如何在AWS中轮换和审计密钥?
存储与数据库
- 比较S3的各个存储类型,并说明各自的使用场景。
- EBS和实例存储(instance store)有什么区别?
- 什么时候会选择DynamoDB而不是RDS?你会因此放弃什么?
- 只读副本(read replica)和多可用区(multi-AZ)部署有什么区别?
计算与可用性
- 解释自动扩展组(auto scaling group),以及你会依据哪些指标进行扩展。
- 什么情况下Lambda是错误的选择?
- 可用区(availability zone)和区域(region)有什么区别?
- 你会如何设计架构,以应对整个可用区失效的情况?
如何回答场景题?
场景题才是真正拉开候选人差距的部分,因为它没有可以死记硬背的标准答案。常见的题目包括:
- 我们的月度账单翻了一倍,但流量没有增加,你会如何排查原因?
- 设计一个能处理超大文件(单次请求无法承载)的文件上传流程。
- 某个服务只在一个可用区里变慢,你会先检查什么?
- 把一个本地数据库迁移到AWS,且要将停机时间降到最低,请说说你的思路。
- 你会如何让这个架构在区域级故障中仍能存活?这需要付出什么成本?
每次都按同样的顺序作答:先复述你认为最关键的约束条件,再大声说出你的假设,然后选定服务,最后说出你所接受的权衡取舍。面试官真正在听的是最后那句权衡取舍,因为它能证明你清楚这个选择付出了什么代价。
一位后端工程师在应聘一家中型公司的平台岗位时,被要求设计一个上传流程。她没有立刻说出S3,而是先问上传是否面向用户、文件通常有多大,然后选择了带分片上传(multipart upload)的预签名URL方案,并说明自己排除了让应用服务器中转的方案,因为那样会让吞吐量变成一个扩展性问题。服务的选择本身很普通;真正被记住的是她的推理过程。
应该如何练习这些问题?
阅读问题清单并不是练习。AWS面试中最常见的失败模式,是明明知道答案,却把它讲成一段没有结构的独白——而这个问题只有在你真正开口说的时候才会暴露出来。
把上面的题目一道一道大声说出来,并严格遵守四段式顺序:约束、假设、选择、权衡取舍。录下几段回放,留意你的回答从哪一刻开始失去结构。把同一套题目放进模拟面试练习,还会加上追问环节——这是你一个人练不出来的部分,也是AWS面试官最倚重的部分。
有一点需要说清楚:部分AWS筛选环节是自动化、录制或有监考的测评,而不是真人对话。这类场景不在任何实时助手(包括SubcueAI)的适用范围内。在这种情况下,唯一有用的只有提前准备,具体哪种形式对应哪种情况,可参见面试类型库。