首页
互助圈
新手教程
进阶之路
算法原理
架构设计
JAVA进阶
C/C++进阶
Python进阶
JavaScript
数据库
大数据
消息服务
源码解读
JAVA源码
Spring源码
数据库
消息服务
Dubbo源码
面试指南
大厂专栏
面试技巧
面试经验
面试题库
开发资料
文档资料
工具软件
电子书籍
小牛导航
在线工具
登录
当前位置:
首页
>
工具软件
>
aws-deployment-framework
>
使用案例
>
AWS Architecture Best Practices
锺威
2023-12-01
Design for Failure and Nothing Fails
概念:通过Multi-AZ等冗余技术来减少单点故障的发生。
设计时可以考虑多个instance组成auto-scaling group,当某个instance挂掉时可以自动scaling。
部署应用时尽量选择multi-AZ,如RDS基本上都支持multi-AZ(除了MSSQL的Express和Web版本不支持)。
默认情况DynamoDB和S3自动是multi-AZ的。
Implement Elasticity
概念:弹性设计,使得应用可以自由扩展(scal in or scal out)。
垂直扩展:通过增加CPU/内存/存储等扩展应用性能。
水平扩展:通过增加结点数量扩展应用性能。
有状态应用:需要考虑session共享问题,一般通过session服务器统一管理session,如Dynamo DB,Elastic Cache等,也可以在ELB中选择IP_Hash等策略,使得同一client的请求都路由到到同一server,但这种方法比较低级。
无状态应用:不用考虑session共享问题,比较简单。
自动扩展:需要支持自动扩展,而不需要人为干预,如Auto Scaling的扩展策略等。
Leverage Different Storage Options
概念:根据不同的场景选择不同类别的存储服务。
S3:需要大容量的,高性能的,高可靠性的文件/对象存储服务,并支持备份/归档或容灾等功能。
Glacier:需要长期存放大量归档数据,这些数据不经常访问,且允许在发出获取请求后隔一段时间才能获取到数据。
CloudFront:CDN网络,缓存数据,按地理位置服务不同用户,加速资源访问。
DynamoDB:NoSQL数据库,session共享,大量非结构数据存储。
EBS:块存储,支持snapshot备份等。
RDS:关系型数据,存储结构数据。
Redshift:数据仓库,存储大量数据,用于统计分析,生成报表等。
ElasticCache:弹性缓存服务,Redis或Memcached类型,缓存数据。
ElasticFileSystem:弹性文件系统,用于文件共享,如NAS等服务。
Build Security in Every Layer
概念:在应用程序的各个层面都要考虑安全问题。
VPC的Security Group,ACL等
EBS,S3等加密
API的HTTPS访问
IAM权限设置
永远为用户/实体等分配最低可用权限
责任共担模型的责任区分等
实时审计用户权限,检查是否存储权限问题
Think Parallel
概念:并行处理任务,提高系统整体性能。
尽量依靠多线程技术并行处理任务以提高系统整体性能。
可以采用异步技术,减小网络,存储等IO阻塞以提高系统整体性能。
采用集群模式,自动scaling,灵活扩展以提高系统整体性能。
Loose Coupling Sets You Free
概念:设计系统时需要解耦模块依赖,模块与模块相互独立并采用标准接口或第三方服务通信,也就是常说的高聚合,低耦合。
模块间相互通信的方式:
SQS:消息队列
RESTful API:RESTful接口
Don't Fear Constraints
概念:不要害怕限制,勇敢的将on-premise应用迁移到cloud上。
AWS提供了一系列的服务,可以满足用户的所有需求,所以不要害怕迁移。(有洗脑的嫌疑)
类似资料:
相关阅读
相关文章
相关问答
快捷导航:
新手教程
算法原理
架构设计
Java进阶
数据库进阶
大厂专栏
面试经验
编程笔记
编程问答
所有专题
文档资料
工具软件
电子书籍
小牛导航
在线工具:
房贷计算器
个税计算器
Linux命令查询
Json格式化
正则表达式
颜色转换
AES加解密
SHA1加密
MD5加密
毒鸡汤
字数统计
随机密码生成
进制转换
Base64编解码
励志句子
Copyright © 2019-2024 小牛知识库@xnip.cn. All Rights Reserved.