AWS 云架构设计:计算、网络与存储最佳实践
FreeGuideOnline
最新
2026-06-12
AWS 云架构设计基础:计算、网络与存储最佳实践
为什么需要云架构设计
在 AWS 上构建任何工作负载之前,必须先理解“良好架构”的原则。盲目启动实例或创建存储桶容易导致成本失控、安全漏洞和运维噩梦。本教程聚焦于 AWS 架构设计的三个核心层面:计算、网络与存储。你将学到如何根据业务需求选择服务、部署弹性基础设施,并应用经过验证的最佳实践。无论你是刚接触云计算的开发者,还是准备考取解决方案架构师认证的工程师,这些基础概念都会帮助你做出更可靠的架构决策。
一、AWS 架构设计支柱速览
在学习具体服务前,先回顾 AWS Well-Architected Framework 的六大支柱,所有最佳实践均围绕它们展开:
- 运营卓越 (Operational Excellence):通过自动化、监控和持续改进支撑系统运行。
- 安全 (Security):保护数据、系统和资产,利用身份和访问管理。
- 可靠性 (Reliability):从故障中恢复、动态获取资源以缓解中断。
- 性能效率 (Performance Efficiency):高效使用计算资源,随需求变化保持性能。
- 成本优化 (Cost Optimization):避免不必要开销,采取按需定价模型。
- 可持续性 (Sustainability):最小化工作负载对环境的影响。
设计计算、网络和存储时,要在这些支柱之间进行权衡。例如,选择为高可用性跨多个可用区部署,会增加网络流量成本,但换来可靠性。
二、计算服务设计最佳实践
计算层负责执行应用代码。AWS 提供虚拟机、容器、无服务器等多种形态,选择取决于你对底层服务器的控制权、运行时长和应用架构。
2.1 根据工作负载选择正确的计算服务
- Amazon EC2(弹性计算云)
- 适用于长时间运行的应用程序、需要自定义操作系统或内核、遗留系统迁移。
- 最佳实践:使用 EC2 Auto Scaling 根据负载动态调整实例数量,结合启动模板确保配置一致性。
- AWS Lambda(无服务器函数)
- 适用于事件驱动、短时间执行的任务(如处理图像上传、API 后端)。
- 最佳实践:控制函数执行时间,避免冷启动;使用环境变量管理配置;搭配 API Gateway 构建完整无服务器应用。
- Amazon ECS 与 Amazon EKS(容器服务)
- ECS 适合深度 AWS 集成,EKS 面向 Kubernetes 标准化环境。
- 最佳实践:使用 Fargate 启动类型免除服务器管理;利用服务自动发现简化微服务通信。
- AWS Elastic Beanstalk
- 适用于不想管理基础设施的 Web 应用,快速部署 Java、.NET、Python 等平台。
2.2 计算高可用性与弹性设计
- 跨可用区部署:绝不将应用服务器集中在单个可用区。通过 Auto Scaling 组跨多个可用区分发实例,当一个可用区故障时自动替换。
- 无状态设计:将会话状态外移至 ElastiCache(Redis/Memcached)或 DynamoDB,让计算层无状态,易于水平扩展。
- 实例类型灵活选择:按需求使用按需实例、预留实例和竞价实例的混合模式。非关键批处理任务可使用 Spot 实例降低成本,稳态负载使用预留实例。
- 负载均衡:使用 Application Load Balancer(ALB)处理 HTTP/HTTPS 流量,Network Load Balancer(NLB)处理高性能 TCP/UDP 流量。将负载均衡器分布在多个可用区。
2.3 计算安全实践
- 始终使用 最小权限 IAM 角色 附加到 EC2 实例或 Lambda 函数,而不是硬编码密钥。
- 实例放置在私有子网,仅通过负载均衡或跳板机暴露必要流量。
- 使用 AWS Systems Manager Session Manager 免 SSH 密钥管理,安全访问实例。
三、网络设计最佳实践
网络是连接一切的骨干,好的网络设计确保流量安全、快速和可控。
3.1 Amazon VPC 基本架构
每个工作负载应部署在自定义 VPC 中,而不是使用默认 VPC。
- CIDR 规划:为 VPC 分配足够大的 IP 范围(如 10.0.0.0/16),然后将子网划分为公有/私有。避免与本地数据中心 IP 重叠,以备未来连接。
- 子网划分:
- 公有子网:路由表指向 Internet Gateway,用于负载均衡器、NAT 网关等需要直接公网访问的组件。
- 私有子网:没有直接进站互联网路由,用于数据库、应用服务器等内部资源。
- 最佳实践:每个可用区都有对称的公有和私有子网,便于创建分层应用。
- 多可用区部署:至少使用两个可用区以提高可用性。不同可用区的子网通过 VPC 骨干网自动通信。
3.2 控制和保护流量
- 安全组:有状态的、实例级防火墙。默认拒绝所有入站,只需开放必要端口(如 HTTP 80/443),出站默认全部允许。将应用、数据库等分配不同安全组,以安全组 ID 互指按来源限制。
- 网络 ACL:无状态、子网级访问控制。作为额外防御层,一般保持默认全开,谨慎添加规则。
- VPC 流日志:捕获 IP 流量信息发布到 CloudWatch Logs 或 S3,用于审计和排障。
- 出口过滤:使用 NAT 网关或互联网网关时,考虑添加 AWS Network Firewall 或第三方防火墙进行深度包检测。
3.3 混合网络与全球连接
- VPN 连接:通过 AWS Site-to-Site VPN 与本地数据中心加密连接,适合过渡或非关键延迟场景。
- AWS Direct Connect:专用物理连接,提供更稳定的带宽和更低延迟。多与 VPN 组合形成高可用混合连接。
- AWS Transit Gateway:连接多个 VPC 与本地网络的中心枢纽,替代复杂的 VPC Peering 或全网格。简化路由,方便扩展。
- VPC 对等连接:仅在需要连接少量 VPC 时使用,注意不能穿透路由。
- 内容分发:使用 Amazon CloudFront 加速全球静态/动态内容交付,集成 Shield 防御 DDoS。
3.4 DNS 与路由策略
- 使用 Amazon Route 53 作为 DNS 服务,支持地理位置路由、延迟路由、加权路由等策略,实现跨区域的多可用性和流量控制。
- 私有托管区用于 VPC 内部自定义域名,支持解析本地主机名。
四、存储服务设计最佳实践
存储选择直接影响持久性、性能和成本。常见的存储类型有:块存储、文件存储和对象存储。
4.1 块存储:Amazon EBS 与实例存储
- EBS(弹性块存储)
- 用于 EC2 实例根卷或数据卷。特点:网络附加存储、可在同一可用区内挂载到实例。
- 最佳实践:
- 为关键数据使用 SSD 类型(gp3 默认性价比最高,io2 用于高 IOPS)。
- 通过 EBS 快照定期备份到 S3,快照自动跨可用区冗余。
- 不要将数据库永久数据放在实例存储上,仅用于临时缓冲区或高速缓存。
- 实例存储(临时磁盘)
- 物理附着,随实例停止/终止而丢失数据。适合缓存或临时数据,成本极低但需应用代码处理数据丢失。
4.2 文件存储:Amazon EFS 与 FSx
- EFS(弹性文件系统)
- 网络文件系统(NFS),可同时挂载到多个 EC2 实例,自动伸缩。
- 适用场景:内容管理、Web 共享存储、开发工具共享。
- 最佳实践:使用 EFS 生命周期管理自动将不常访问的文件移至低频存储类以降低成本;设置挂载选项启用加密。
- Amazon FSx
- FSx for Windows File Server:SMB 协议,用于 Windows 工作负载。
- FSx for Lustre:高性能并行文件系统,适合机器学习、高性能计算(HPC)。
4.3 对象存储:Amazon S3 最佳实践
S3 是云原生应用的基石,因其无与伦比的持久性(11 个 9)和丰富的管理特性。
- 访问控制:默认桶、对象均为私有。通过 IAM 策略、存储桶策略、ACL(已不推荐)按需授权。强烈推荐使用只有策略级权限,默认拒绝。
- 存储类优化成本:
- S3 Standard:频繁访问。
- S3 Intelligent-Tiering:自动在访问层间移动对象,未知访问模式的首选。
- S3 Standard-IA / One Zone-IA:不常访问但需即时检索,单可用区成本更低。
- S3 Glacier / Glacier Deep Archive:归档数据,检索时间分钟到小时,成本极低。
- 通过生命周期策略自动转换或过期对象。
- 数据保护:
- 启用 S3 版本控制 防止误删和覆盖。
- 使用 MFA 删除保护关键桶。
- 开启 跨区域复制 (CRR) 实现灾难恢复或将数据就近放置。
- 加密:
- 服务端加密:SSE-S3(AWS 管理密钥)、SSE-KMS(客户管理密钥,审计更细粒度)、SSE-C(客户提供密钥)。
- 客户端加密:客户端加密后上传。
- 最佳实践:始终启用默认加密,桶策略强制 HTTPS。
4.4 数据库存储原则
- 将数据库部署在私有子网,用安全组严格控制访问。
- 对于关系型数据库(RDS):
- 启用多可用区(Multi-AZ)部署实现自动故障转移。
- 配置自动备份和快照,保留期至少 7 天。
- 根据负载选择合适的实例类型和存储类型(gp3 适用大部分场景)。
- 对于 NoSQL(如 DynamoDB):
- 利用按需容量模式应对不可预测的流量,或配置自动伸缩。
- 启用 Point-in-Time Recovery 恢复误操作。
- 使用全局表实现多区域低延迟读写。
五、整合:三层架构设计案例
结合本教程知识,下面勾勒一个典型的三层 Web 应用架构:
- 表示层:CloudFront 分发前端静态资源,S3 存放资源。
- 应用层:ALB 接收用户请求,分发到 Auto Scaling 组的 EC2 实例,这些实例位于跨可用区的私有子网。应用无状态,会话状态存储在 ElastiCache。
- 数据层:RDS Multi-AZ 部署在更深层的私有子网,安全组仅允许来自应用层安全组的数据库访问。同时将用户文件存储在 S3,数据库凭证由 Secrets Manager 轮转。
通过网络隔离、自动扩缩、冗余多区和分层权限,该架构很好地实现了安全性、弹性和性能效率。
六、持续优化与学习资源
云架构设计不是一次性活动。你需要:
- 定期使用 AWS Well-Architected Tool 审查工作负载。
- 监控成本用 AWS Cost Explorer,设定预算告警。
- 阅读 AWS 架构中心和官方博客,关注 re:Invent 架构最佳实践会议。
良好的设计基础让系统更具韧性、更安全且成本更优。从计算、网络、存储的最佳实践开始,逐步贯彻六大支柱,你将能自信地在 AWS 上构建任何应用。