AWS Architecture Best Practices

  1. Design for Failure and Nothing Fails

    1. 概念:通过Multi-AZ等冗余技术来减少单点故障的发生。
    2. 设计时可以考虑多个instance组成auto-scaling group,当某个instance挂掉时可以自动scaling。
    3. 部署应用时尽量选择multi-AZ,如RDS基本上都支持multi-AZ(除了MSSQL的Express和Web版本不支持)。
    4. 默认情况DynamoDB和S3自动是multi-AZ的。
  2. Implement Elasticity

    1. 概念:弹性设计,使得应用可以自由扩展(scal in or scal out)。
    2. 垂直扩展:通过增加CPU/内存/存储等扩展应用性能。
    3. 水平扩展:通过增加结点数量扩展应用性能。
    4. 有状态应用:需要考虑session共享问题,一般通过session服务器统一管理session,如Dynamo DB,Elastic Cache等,也可以在ELB中选择IP_Hash等策略,使得同一client的请求都路由到到同一server,但这种方法比较低级。
    5. 无状态应用:不用考虑session共享问题,比较简单。
    6. 自动扩展:需要支持自动扩展,而不需要人为干预,如Auto Scaling的扩展策略等。
  3. Leverage Different Storage Options

    1. 概念:根据不同的场景选择不同类别的存储服务。
    2. S3:需要大容量的,高性能的,高可靠性的文件/对象存储服务,并支持备份/归档或容灾等功能。
    3. Glacier:需要长期存放大量归档数据,这些数据不经常访问,且允许在发出获取请求后隔一段时间才能获取到数据。
    4. CloudFront:CDN网络,缓存数据,按地理位置服务不同用户,加速资源访问。
    5. DynamoDB:NoSQL数据库,session共享,大量非结构数据存储。
    6. EBS:块存储,支持snapshot备份等。
    7. RDS:关系型数据,存储结构数据。
    8. Redshift:数据仓库,存储大量数据,用于统计分析,生成报表等。
    9. ElasticCache:弹性缓存服务,Redis或Memcached类型,缓存数据。
    10. ElasticFileSystem:弹性文件系统,用于文件共享,如NAS等服务。
  4. Build Security in Every Layer

    1. 概念:在应用程序的各个层面都要考虑安全问题。
    2. VPC的Security Group,ACL等
    3. EBS,S3等加密
    4. API的HTTPS访问
    5. IAM权限设置
    6. 永远为用户/实体等分配最低可用权限
    7. 责任共担模型的责任区分等
    8. 实时审计用户权限,检查是否存储权限问题
  5. Think Parallel

    1. 概念:并行处理任务,提高系统整体性能。
    2. 尽量依靠多线程技术并行处理任务以提高系统整体性能。
    3. 可以采用异步技术,减小网络,存储等IO阻塞以提高系统整体性能。
    4. 采用集群模式,自动scaling,灵活扩展以提高系统整体性能。
  6. Loose Coupling Sets You Free

    1. 概念:设计系统时需要解耦模块依赖,模块与模块相互独立并采用标准接口或第三方服务通信,也就是常说的高聚合,低耦合。
    2. 模块间相互通信的方式:
      1. SQS:消息队列
      2. RESTful API:RESTful接口
  7. Don't Fear Constraints

    1. 概念:不要害怕限制,勇敢的将on-premise应用迁移到cloud上。
    2. AWS提供了一系列的服务,可以满足用户的所有需求,所以不要害怕迁移。(有洗脑的嫌疑)
AWS架构设计是指在云平台上,根据客户需求和业务目标,使用AWS的各种服务和技术,创建一个可扩展、高可用、安全且高效的解决方案的过程。在进行AWS架构设计时,需要考虑到几个关键因素。 首先是可扩展性。通过合理地使用AWS的弹性计算、存储和数据库等服务,可以实现根据需求自动扩展资源的能力。这样可以确保系统在面对高流量和负载时仍能提供良好的性能。 其次是高可用性。通过在多个AWS区域之间部署资源以及使用自动故障转移功能,可以确保即使在部分区域出现故障或服务不可用时,系统仍能正常运行,保证业务的连续性。 再者是安全性。AWS提供了一系列的安全服务和工具,如身份和访问管理(IAM)、虚拟私有云(VPC)、网络访问控制列表(ACL)、安全组等,可以帮助保护系统免受未授权访问和网络攻击。 另外,AWS架构设计还需要考虑成本效益。通过合理使用不同类型的计算实例、存储和数据库服务,可以优化成本并确保在不牺牲性能和可靠性的前提下实现最佳的商业效益。 在进行AWS架构设计时,需要了解业务需求,选择合适的AWS服务和技术,并通过不断的优化和调整来确保系统的持续改进。同时,还需要考虑到数据的备份和恢复、监控和报警、日志管理等方面,以提供一个完整的解决方案。 总而言之,AWS架构设计是一个综合考虑需求、可扩展性、高可用性、安全性和成本效益的过程,通过合理利用AWS提供的各种服务和技术,构建一个优秀的云架构解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值