AWS 架构最佳实践
AWS合理架构的框架支柱
- 安全性 - 保护并监控系统
- 能够保护信息、系统和资产
- 通过风险评估和缓解策略
- 可靠性 - 从故障中恢复并减少中断
- 绩效 - 谨慎使用资源
- 高效的使用计算资源以满足系统需求
- 在需求改变和技术发展时依旧保持效率
- 成本优化 - 消除不必要的费用
- 减少不必要的成本和次优资源
- 卓越操作
合理架构设计原则
- 停止猜想容量需求 - 传统环境存在浪费
- 在生产层面测试系统 - 传统环境下因为高昂的测试成本,所以通常都无法真实模拟生产环境进行测试
- 降低架构改变风险 - 传统环境中需要排队等待的测试序列化,在测试过程中的各种改变,可能影响后续测试。
- 通过自动化让部署更简单 - 低成本通过脚本创建并复制系统,追踪变更和恢复
- 支持架构的不断发展 - 传统环境受产品生命周期限制,前期决策也可能成为阻碍,无法响应不断变化的业务需求
- 数据驱动型架构 - 在云环境中,可以通过CloudWatch收集相关数据,来了解架构负载情况。云基础架构以代码的形式存在,因此可以利用这些数据来改善架构。
- 通过模拟大型流量实现改进 - 通过模拟大型流量,来改进架构中的不足之处,并且积累应对的经验和方案。
高可用和冗余
- 发现当前架构中的单点故障,引入冗余来消除
- 选择最适合的备份和恢复方案最高效的冗余
- 使用不同的可用区实现地域高可用
- 利用Route53和ELB主动切换来实现主动的冗余机制减少中断时间
弹性设计
- 弹性系统是随时间推移或响应业务需求突然变化以应对增长的负载,随用户、流量、数据大小的增长而不会影响性能
- 资源增长应该引入规模经济效益,成本应遵循童谣你给的维度从而使该系统创造商业价值
- Autoscaling是最佳实践
自动化部署
选择合适的存储
- S3
- Glacier
- 数据归档和长期备份
- Cloudfront
- DynamoDB
- EBS
- 可靠地块存储运行关键程序,如Oracle,SAP,Exchange等
- RDS
- Redshift
- PB级数据仓库,支持业务分析
- ElasticCache
- Redis集群内存缓存
- EFS (弹性文件系统)
- 多个EC2实例之间共享应用程序的通用文件系统
在每一层建立安全
- 传统的安全审计是定期和审计的,但是在云端可以提供持续监控和治理,同事利用代码将安全策略嵌入基础设施设计
- 最佳实践
- 对数据进行清点和优先级排序,在传输和存储时应用适当的加密级别
- AWS功能实现多级防御
- 网络层面: VPC 、 子网、安全组、路由控制
- 主机层面: WAF、 IAM
- 将安全交给AWS
- 使用AWS 托管服务,由AWS进行补丁和安全管理
- 减少特权访问
- 应用程序使用临时安全令牌在EC2上运行
- 使用IAM进行账户和权限管理
- 使用临时令牌提供联合访问
- 对凭据进行自动分发和轮换
- 授予最小权限的标准安全惯例
- 利用代码实现安全
- 利用CloudFormation脚本进行可靠地安全部署 称为"Golden Environment"
- 最佳安全实践将会被很容易的在不同环境中重用并且集成到CICD pipeline中
- 可以利用安全测试自动发现与安全策略基线的偏差
- CloudFormation 可以作为产品导入AWS Service Catalog 中进行一致性治理
- 实时审计
并行化处理思维
- 云中可以轻松实现并行处理
- 如检索和存储数据时,云被设计成处理大规模并行操作,所以为了提高性能和吞吐率,应该尽可能使用并行请求设计
- Web应用程序,应该设计成支持ELB负载均衡的传入请求分布的并行处理
- 批处理场景下更多的使用拥有多从属节点的hadoop架构
松耦合设计
- 将系统设计成多个独立组建的系统体系,组件越松散,相互依赖性越低,系统规模就能更大
- Amazon API Gateway提供了公开定义接口的方法,是完全托管的服务
- 支持开发人员创建、发布、维护和监控以及保护各种规模API
- 可以处理所涉及的数十万并发的API调用,包括流量管理、授权和访问控制
- 异步集成是松耦合的常用模式,利用SQS或者Kinesis进行松耦合集成
- 利用异步集成耦合可以引入额外的弹性,可以对处理失败的消息进行再次处理
AWS最佳实践
- 实现扩展架构 - 以应对需求变化
- 自动部署环境 - 消除手工操作提高系统的稳定性和一致性,并提高组织效率
- 使用一次性资源 - 将服务器和其他组件视为临时资源
- 松耦合组件 - 降低相互依赖,当一个组件变化或出故障时,其他组件不受影响,ELB和SQS是主要解耦解决方案
- 设计服务而不是设计服务器 - 托管方案和无服务架构让环境实现更高的可靠性和环境 ,如Lambda, SQS,SNS,DynamoDB
- 更合适的数据库解决方案 - 技术与工作负载相匹配,选择关系型数据库,NoSQL数据库,数据仓库以及针对搜索优化过的数据存储
- 避免单点故障 - 实施冗余以避免单点故障破坏整个系统,可以选择停机启动的自动化解决方案或者托管服务在故障时自动对底层进行替换
- 优化成本 - 确保资源规模适当、可以根据需求进行自动缩减和扩展,充分利用不同的定价方案. 将资本性支出转变为可变支出。
- 使用缓存 - 尽可能减少冗余数据检索操作
- 在各个位置保护基础设施安全 - 可以在外围和资源内部或资源之间实现安全性
事件驱动架构
概述
- 云计算的优势就是快速对资源需求方面的变化作出响应,以应对变化。
- 传统模式下,即便是在云计算平台中,当服务器满负荷也会导致无法响应访问,虽然手工扩展只需要几分钟时间,但是也是不能接受的
基于事件驱动的架构
- EC2 Auto Recovery
Web应用设计
Web应用的业务价值
基于云架构的Web托管架构实践
- Route53 提供DNS服务
- Cloudfront 为高容量内容提供边缘缓存
- 前端ELB将流量分不到Web服务器的AutoScaling组
- Web服务器安全组 实现外部防火墙的安全策略
- 后端服务器安全组实现后端防火墙的安全策略
- 后端ELB将流量分布到后端应用程序集群中
- ElastiCache 为应用程序提供缓存服务,从而减少数据库层的负载
- 通过S3存储和提供静态资产
欢迎大家扫码关注,获取更多信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。