1. 总结
* WS的服务和技术繁多,选择适合自己的方向,而不是什么都去学
* AWS的学习资源异常丰富,包括视频、免费文档、在线实验、社区以及专家课程(收费)
* AWS的考试包括助理级和专家级,并且分别针对架构师、开发与运维人员
* 助理架构师考试主要针对:设计、实施部署、数据安全、故障排除等4个方面进行考核
* AWS的架构师考试重点需要掌握7大“云设计架构”如:弹性原则、最小授权原则等等,熟悉这些非常有助于答题(就好比当初考车的文科一样,是有规律可循的)
* 多动手非常有助于通过考试,同时也是熟练掌握的不二法宝
* 助理架构师考试,建议考生拥有6个月AWS实战经验
* 专家级架构师考试,建议考生拥有2年的实战经验
<>2. 概述
<>2.1 AWS的服务列表概览
<>2.2 需要确定好自己的定位与方向
包括三个维度:
- 什么行业
– (移动?视频?互联网?企业?金融?)
- 解决什么问题
– 大规模分发?大数据?混合网络?
- 使用哪些服务
– 虚拟主机?虚拟网络和安全?hadoop集群?数据仓库?
<>2.3 学习方法是以赛代练(步步实践,边学边用)
* 首先【观看自学视频】
* 然后听取【在线课堂】
* 理论差不多有,开始【动手实验室】(15个免费实验)
* 深入了解需要【详细查看文档】建议至少先从FAQ阅读,可以缩短很长时间
* 利用【免费AWS套餐】注意平时的理解和学习
* 再进行高级实验
* 需要了解各个服务之间的关联等,【听取讲师指导课程】,就可以高层次的了解服务内容
* 参加认证考试
<>2.4 AWS导师课程分类和级别
* 人员分类:解决方案师、开发人员、系统操作人员
* 课程分类:入门级、基础级、高级、专项
<>3. AWS认证的背景信息
<>3.1 认证的类型
* 助理级
– 助理架构师
– 助理开发人员
– 助理系统管理员
* 专家级
– 专家架构师
– 专家开发运维
认证共有5个,如果要参加专家级认证必须先通过助理级认证,其中“专家开发运维(devops)”的认证则通过任意(开发 or 运维)的助理级认证即可
<>3.2 获得认证后的收益?
* 对个人
– 可以证明个人在AWS平台上具备设计、部署和管理高可用、低成本、安全应用的能力
– 在工作上或社区中得到尊重和认可
– 可以把认证放到简历中,linkedin中整合了AWS认证徽章
* 对企业雇主
– 具备AWS上服务和工具的使用的认可
– 客户认可,降低AWS项目实施风险
– 增加客户满意度
<>3.3 再认证模式
因为AWS的服务在更新,因此每两年要重新认证(证件的有效期2年),再次参加考试时,题目、时间将会更少,且认证费用更低
<>3.4 助理架构师认证的知识领域
四大知识域
1 设计:高可用、高效率、可容错低、可扩展的系统
2 实施和部署:强调部署操作能力
3 数据安全性:在部署操作时,始终保持数据保存和传输的安全
4 排除故障:在系统出现问题时,可以快速找到问题并解决问题
知识权重
- 设计:60%的题目
- 实施和部署:10%的题目
- 数据安全:20%的题目
- 排除故障:10%的题目
PS:考试不会按照上面的次序、考试不会注明考试题目的分类
<>3.5 认证过程
* 需要在网上注册,找到距离家里比较近的地方考试(考点)
* 到了现场需要携带身份证,证明自己
* 并不允许带手机入场
* 证件上必须有照片
* 签署NDA保证不会泄露考题
* 考试中心的电脑中考试(80分钟,55个考题)
* 考试后马上知道分数和是否通过(不会看到每道题目是否正确)
* 通过后的成绩、认证证书等将发到email邮箱中
<>3.6 考试机制
* 助理级别考试的重点是:单一服务和小规模的组合服务的掌握程度
* 所有题目都是选择题(多选或单选)
* 不惩罚打错,所以留白没意义,可以猜一个
* 55道题
* 可以给不确定的题目打标签,没提交前都可以回来改答案
<>3.7 题目示例
* 单选题
* 多选题(会告诉你有多少个答案)
* 汇总查看答案以及mark(标记)
<>4 AWS架构的7大设计原则
<>4.1 松耦合
* 松耦合是容错、运维自动扩容的基础,在设计上应该尽量减少模块间的依赖性,将不会成为未来应用调整、发展的阻碍
松耦合模式的情况
* 不要标示(依赖)特定对象,依赖特定对象耦合性将非常高
– 使用负载均衡器
– 域名解析
– 弹性IP
– 可以动态找到配合的对象,为松耦合带来方便,为应用将来的扩展带来好处
* 不要依赖其他模块的正确处理或及时的处理
– 使用尽量使用异步的处理,而不是同步的(SQS可以帮到用户)
<>4.2 模块出错后工作不会有问题
* 问问某个模块出了问题,应用会怎么样?
* 在设计的时候,在出了问题会有影响的模块,进行处理,建立自动恢复性
<>4.3 实现弹性
* 在设计上,不要假定模块是正常的、始终不变的
– 可以配合AutoScaling、EIP和可用区AZ来满足
* 允许模块的失败重启
– 无状态设计比有状态设计好
– 使用ELB、云监控去检测“实例”运行状态
* 有引导参数的实例(实现自动配置)
– 例如:加入user data在启动的时候,告知它应该做的事情
* 在关闭实例的时候,保存其配置和个性化
– 例如用DynamoDB保存session信息
* 弹性后就不会为了超配资源而浪费钱了
<>4.4 安全是整体的事,需要在每个层面综合考虑
* 基础架构层
* 计算/网络架构层
* 数据层
* 应用层
<>4.5 最小授权原则
* 只付于操作者完成工作的必要权限
* 所有用户的操作必须授权
* 三种类型的权限能操作AWS
– 主账户
– IAM用户
– 授权服务(主要是开发的app)
<>5 设计:高可用、高效率、可容错、可扩展的系统
本部分的目标是设计出高可用、高效率低成本、可容错、可扩展的系统架构
- 高可用
– 了解AWS服务自身的高可靠性(例如弹性负载均衡)—-因为ELB是可以多AZ部署的
– 用好这些服务可以减少可用性的后顾之忧
- 高效率(低成本)
– 了解自己的容量需求,避免超额分配
– 利用不同的价格策略,例如:使用预留实例
– 尽量使用AWS的托管服务(如SNS、SQS)
- 可容错
– 了解HA和容错的区别
– 如果说HA是结果,那么容错则是保障HA的一个重要策略
– HA强调系统不要出问题,而容错是在系统出了问题后尽量不要影响业务
- 可扩展性
– 需要了解AWS哪些服务自身就可以扩展,例如SQS、ELB
– 了解自动伸缩组(AS)
运用好 AWS 7大架构设计原则的:松耦合、实现弹性
<>6 实施和部署设计
本部分的在设计的基础上找到合适的工具来实现
* 对比第一部分“设计”,第一章主要针对用什么,而第二章则讨论怎么用
* 主要考核AWS云的核心的服务目录和核心服务,包括:
* 计算机和网络
– EC2、VPC
* 存储和内容分发
– S3、Glacier
* 数据库相关分类
– RDS
* 部署和管理服务
– CloudFormation、CloudWatch、IAM
* 应用服务
– SQS、SNS
<>7 数据安全
数据安全的基础,是AWS责任共担的安全模型模型,必须要读懂
数据安全包括4个层面:基础设施层、计算/网络层、数据层、应用层
- 基础设施层
1. 基础硬件安全
2. 授权访问、流程等
- 计算/网络层
1. 主要靠VPC保障网络(防护、路由、网络隔离、易管理)
2. 认识安全组和NACLs以及他们的差别
* 安全组比ACL多一点,安全组可以针对其他安全组,ACL只能针对IP
* 安全组只允许统一,ACL可以设置拒绝
* 安全组有状态!很重要(只要一条入站规则通过,那么出站也可以自动通过),ACL没有状态(必须分别指定出站、入站规则)
* 安全组的工作的对象是网卡(实例)、ACL工作的对象是子网
*
认识4种网关,以及他们的差别
* 共有4种网关,支撑流量进出VPC
* internet gatway:互联网的访问
* virtual private gateway:负责VPN的访问
* direct connect:负责企业直连网络的访问
* vpc peering:负责VPC的peering的访问
* 数据层
*
数据传输安全
– 进入和出AWS的安全
– AWS内部传输安全
* 通过https访问API
* 链路的安全
– 通过SSL访问web
– 通过IP加密访问VPN
– 使用直连
– 使用OFFLINE的导入导出
*
数据的持久化保存
– 使用EBS
– 使用S3访问
* 访问
– 使用IAM策略
– 使用bucket策略
– 访问控制列表
* 临时授权
– 使用签名的URL
* 加密
– 服务器端加密
– 客户端加密
* 应用层
* 主要强调的是共担风险模型
* 多种类型的认证鉴权
* 给用户在应用层的保障建议
– 选择一种认证鉴权机制(而不要不鉴权)
– 用安全的密码和强安全策略
– 保护你的OS(如打开防火墙)
– 用强壮的角色来控制权限(RBAC)
*
判断AWS和用户分担的安全中的标志是,哪些是AWS可以控制的,那些不能,能的就是AWS负责,否则就是用户(举个例子:安全组的功能由AWS负责—是否生效,但是如何使用是用户负责—自己开放所有端口跟AWS无关)
AWS可以保障的 用户需要保障的
工具与服务 操作系统
物理内部流程安全 应用程序
物理基础设施 安全组
网络设施 虚拟化设施
OS防火墙
网络规则
管理账号
<>8 故障排除
问题经常包括的类型:
- EC2实例的连接性问题
- 恢复EC2实例或EBS卷上的数据
- 服务使用限制问题
<>8.1 EC2实例的连接性问题
* 经常会有多个原因造成无法连接
* 外部VPC到内部VPC的实例
– 网关(IGW–internet网关、VPG–虚拟私有网关)的添加问题
– 公司网络到VPC的路由规则设置问题
– VPC各个子网间的路由表问题
– 弹性IP和公有IP的问题
– NACLs(网络访问规则)
– 安全组
– OS层面的防火墙
<>8.2 恢复EC2实例或EBS卷上的数据
* 注意EBS或EC2没有任何强绑定关系
– EBS是可以从旧实例上分离的
– 如有必要尽快做
* 将EBS卷挂载到新的、健康的实例上
* 执行流程可以针对恢复没有工作的启动卷(boot volume)
– 将root卷分离出来
– 像数据一样挂载到其他实例
– 修复文件
– 重新挂载到原来的实例中重新启动
<>8.3 服务使用限制问题
*
* AWS有很多软性限制
– 例如AWS初始化的时候,每个类型的EBS实例最多启动20个
* 还有一些硬性限制例如
– 每个账号最多拥有100个S3的bucket
– ……
* 别的服务限制了当前服务
– 例如无法启动新EC2实例,原因可能是EBS卷达到上限
– Trusted Advisor这个工具可以根据服务水平的不同给出你一些限制的参考(从免费试用,到商业试用,和企业试用的建议)
* 常见的软性限制
* 公共的限制
– 每个用户最多创建20个实例,或更少的实例类型
– 每个区域最多5个弹性ip
– 每个vpc最多100个安全组
– 最多20个负载均衡
– 最多20个自动伸缩组
– 5000个EBS卷、10000个快照,4w的IOPS和总共20TB的磁盘
– …更多则需要申请了
* 你不需要记住限制
– 知道限制,并保持数值敏感度就好
– 日后遇到问题时可以排除掉软限制的相关的问题
<>9. 总结
<>9.1 认证的主要目标是:
* 确认架构师能否搜集需求,并且使用最佳实践,在AWS中构建出这个系统
* 是否能为应用的整个生命周期给出指导意见
<>9.2 希望架构师(助理或专家级)考试前的准备:
* 深度掌握至少1门高级别语言(c,c++,java等)
* 掌握AWS的三份白皮书
– aws概览
– aws安全流程
– aws风险和应对
– 云中的存储选项
– aws的架构最佳实践
* 按照客户需求,使用AWS组件来部署混合系统的经验
* 使用AWS架构中心网站了解更多信息
<>9.3 经验方面的建议
* 助理架构师
– 至少6个月的实际操作经验、在AWS中管理生产系统的经验
– 学习过AWS的基本课程
* 专家架构师
– 至少2年的实际操作经验、在AWS中管理多种不同种类的复杂生产系统的经验(多种服务、动态伸缩、高可用、重构或容错)
– 在AWS中执行构建的能力,架构的高级概念能力
<>9.4 相关资源
* 认证学习的资源地址
- 可以自己练习,模拟考试需要付费的
* 接下来就去网上报名参加考试
https://blog.csdn.net/qxk2001/article/details/51292402
<https://blog.csdn.net/qxk2001/article/details/51292402>
热门工具 换一换