第3章 EC2、S3、VPC 核心服务面试实战
本章聚焦
AWS 云自动化工程师面试中,EC2、S3、VPC 三大服务出现概率超过 80%。面试官通过这些基础服务考察你对云计算底层逻辑、安全最佳实践、故障排查的掌握深度。
大厂侧重点与面试官画像
| 公司类型 | EC2 侧重 | S3 侧重 | VPC 侧重 |
|---|---|---|---|
| 互联网大厂(如字节、阿里) | 弹性伸缩、实例类型选择、竞价实例 | 静态网站托管、跨区域复制、存储成本 | 多VPC互联、共享子网、安全组边界 |
| 外企(如亚马逊、微软) | 基本操作、SSM Session Manager、IAM Role | S3 强一致性、版本控制、对象锁 | VPC Peering、Transit Gateway、NACL 层级 |
| 金融/银行 | 多AZ部署、安全组白名单、加密 | 加密/合规、生命周期策略、跨大洲复制 | 私有子网无公网IP、VPC Flow Logs 审计 |
面试问答卡片
卡片一:EC2 实例类型选择
面试问题:如何为一个电商秒杀活动选择合适的 EC2 实例类型?
考察点:对 EC2 实例家族的理解、性能与成本匹配、架构可扩展性。
回答框架
- 识别工作负载类型:CPU密集型 vs 内存密集型 vs 网络密集型。
- 匹配实例家族:通用型(t3/m5)、计算优化(c5)、内存优化(r5)。
- 结合持续性:稳态流量用预留实例或节省方案,突发流量用竞价实例。
- 讲出决策过程:先选家族,再定型号,最后谈成本策略。
简短示例:在促销秒杀场景,我优先选择 t3.large 做基准负载,对突发流量叠加 c5.large 作为竞价补充。实际运行一周后通过 CloudWatch 监控,发现 CPU 长期在 40% 以下,最终调整为 m5.large 节省 15% 成本。
可能追问:竞价实例被回收怎么办?预留实例和节省方案的区别?
避坑提醒:不要只说“选c5性能高”,要提到“先做性能测试,用 CloudWatch 实际观测”,面试官厌恶空谈理论。
卡片二:S3 存储桶安全
面试问题:如何确保 S3 存储桶中的敏感数据不被公开访问?
考察点:IAM策略与桶策略的区别、最小权限原则、访问日志审计。
回答框架
- 默认状态:默认所有桶都是私有的,新桶不应对外开放。
- 访问控制叠加:桶策略 + IAM Policy + Pre-signed URL 三层保护。
- 审计与预警:开启 CloudTrail 和 S3 Server Access Logs。
- 主动检查:使用 Trusted Advisor、S3 存储桶策略检查工具定期扫描。
简短示例:我处理过一个内部工单系统使用 S3 存储报告,误将桶策略设为 Principal: "*"。我立即删除了该策略,改为使用 IAM Role + Pre-signed URL 实现用户上传下载,同时启用 Access Logs 到分析桶。三天内访问错误降至零。
可能追问:对象级别的加密如何实现?如何设置跨区域复制?如何限制仅某个 IAM 用户访问?
避坑提醒:不要只说“用桶策略 deny public access”。要区分“桶策略 vs IAM 策略 vs ACL”,以及 Pre-signed URL 和 CloudFront 签名 URL 的场景。
卡片三:VPC 对等连接
面试问题:两个不同 VPC 之间如何实现高安全、低延迟的通信?
考察点:网络连接设计、路由表理解、安全组与NACL、排错思路。
回答框架
- 选择方案:VPC Peering、Transit Gateway、PrivateLink,按场景说明理由。
- 操作步骤:发起方VPC → 接受方VPC → 更新路由表(指向对方CIDR)→ 修改安全组。
- 安全注意:安全组对等规则、NACL 可以设置为 deny all > allow 特定端口。
- 排错路径:检查路由表 → 检查安全组(双向)→ 检查 NACL → 检查对等状态。
简短示例:在双VPC架构中,我需要让应用(A) VPC与数据库(B) VPC通信。我选择了 VPC Peering(CIDR不重叠),在两端路由表中添加指向对方CIDR的条目,并在安全组中按需开放3306端口。上线后异常流量变为零,延迟低于1ms。
可能追问:如果CIDR重叠怎么办?对等连接是否支持穿透三层?什么情况选择PrivateLink?
避坑提醒:不要假设VPC Peering是万能的。必须提到“路由表条目数上限(50条)”、“CIDR不能重叠”,以及“私有IP通信”的限制。
项目案例:电商平台全站迁移至 AWS
项目名称:全站无感迁移与Auto Scaling落地
业务背景:原有 IDC 托管电商平台遭遇限流,双十一期间峰值超 50万 QPS,需迁移至 AWS 并实现自动弹性伸缩。
规模指标:日活 200万、峰值 QPS 50万、EC2 实例 300+、S3 存储 200TB、数据跨 AZ 分布。
技术栈:EC2(t3/m5)、S3(静态资源+日志)、VPC(多AZ)、ALB、Auto Scaling、CloudWatch、Workspaces。
核心难点
- 零停机迁移:使用 Route53 加权记录 + ALB 蓝绿部署实现。
- S3 静态资源预热:通过 CloudFront 预热脚本提前推送热门图片。
- 数据库迁移:RDS 跨区域同步,切换窗口控制在 30秒内。
面试高频追问
- 迁移过程中遇到最严重的事故是什么?
- 如何验证S3对象一致性?
- Auto Scaling 触发策略中,为什么选择 CPU vs 请求数?
- 如何优化 S3 存储成本(生命周期策略)?
可迁移回答话术:“在这个项目中,我坚持‘变更最小化 + 可回滚’原则。每次迁移动作先在小流量上验证,观察 CloudWatch 5 分钟后再逐步扩大。S3 方面,我使用桶的加密和访问控制确保数据安全,同时利用生命周期策略将30天前的日志转为 Glacier 节省 60% 存储成本。”
大厂模拟面试
面试官提问:你的团队需要为内部系统设计一个 S3 的上传和下载方案,要求安全、高效、审计。你是如何设计的?
候选人回答:我会用 S3 存储桶,然后设置桶策略为禁止公开访问,再创建IAM用户授予完全访问权限。
普通答案:简单用桶策略 + IAM 用户,未区分上传、下载、删除权限,且未考虑预签URL。
优秀答案:采用 Pre-signed URL 进行分时、分权访问,上传5分钟过期、下载1小时过期。开启 S3 访问日志、CloudTrail 审计。对于高频访问使用 CloudFront 加速并降低 egress 成本。
专家答案:我会这样设计:
- 上传端:用户通过 Lambda 生成上传预签URL,有效期5分钟,存储到 /uploads/ 前缀下。不允许覆盖已有对象。
- 下载端:只有标记为“已审核”的对象才生成下载预签URL。使用 Trigger Lambda 自动触发加密检查。
- 策略层面:设置桶策略为拒绝所有IP 非公司出口之外的访问。开启默认加密(SSE-S3)。
- 审计与告警:CloudTrail 记录所有 S3 API 调用,配置 EventBridge 告警规则对“DeleteBucketPolicy”或“PutBucketAcl”进行实时告警。
- 成本优化:将非访问对象按生命周期规则转移到 Glacier。
面试官追问:如果用户大量生成无效预签URL导致DDoS怎么办?
回答:在 Lambda 侧限制每个用户每5分钟最多生成 100 个预签URL。同时结合 WAF 的速率限制策略,对来源IP进行限流。另外设置 S3 的 Access Point 策略进一步控制访问频率。
避坑提醒:预签URL不是万能的。在面试中要提到“限制生成次数”、“set CORS”和“限制过期时间”。
本章小结
- EC2:关注实例家族选择逻辑、竞价实例、SSM。
- S3:安全第一,日志审计是加分项。
- VPC:路由表、安全组、NACL三层理解要到位。
- 所有回答要包含:问题分析、确认、预判影响、执行、验证。