编辑推荐
一本详细介绍亚马逊AWS云计算平台的书,面向将分布式应用迁移到AWS平台的开发者和DevOps工程师。
内容简介
Amazon Web Services(AWS)是亚马逊公司的云计算平台,它提供了一整套基础设施和应用程序服务,可以帮助用户在云中运行几乎一切应用程序。本书介绍了AWS云平台的核心服务,如计算、存储和网络等内容。读者还可以从本书中了解在云上实现自动化、保证安全、实现高可用和海量扩展的系统架构的实践。
本书分4个部分,共14章。本书从介绍AWS的基本概念开始,引入具体的应用示例,让读者对云计算和AWS平台有一个整体的了解;然后讲解如何搭建包含服务器和网络的基础设施;在此基础上,深入介绍如何在云上存取数据,让读者熟悉存储数据的方法和技术;最后展开讨论在AWS上如何设计架构,了解实现高可用性、高容错率和高扩展性的实践。
作者简介
作者安德烈亚斯·威蒂格,软件工程师,也是专注于AWS和Web开发的顾问专家。
章节目录
版权信息
内容提要
译者序
序
前言
资源与支持
配套资源
提交勘误
与我们联系
关于异步社区和异步图书
致谢
关于本书
路线图
代码的约定和下载
关于作者
关于封面插画
第一部分 AWS云计算起步
第1章 什么是Amazon Web Services
1.1 什么是云计算
1.2 AWS可以做什么
1.2.1 托管一家网店
1.2.2 在专有网络内运行一个Java EE应用
1.2.3 满足法律和业务数据归档的需求
1.2.4 实现容错的系统架构
1.3 如何从使用AWS上获益
1.3.1 创新和快速发展的平台
1.3.2 解决常见问题的服务
1.3.3 启用自动化
1.3.4 灵活的容量(可扩展性)
1.3.5 为失效而构建(可靠性)
1.3.6 缩短上市的时间
1.3.7 从规模经济中受益
1.3.8 全球化
1.3.9 专业的合作伙伴
1.4 费用是多少
1.4.1 免费套餐
1.4.2 账单样例
1.4.3 按使用付费的机遇
1.5 同类对比
1.6 探索AWS服务
1.7 与AWS交互
1.7.1 管理控制台
1.7.2 命令行接口
1.7.3 SDK
1.7.4 蓝图
1.8 创建一个AWS账户
1.8.1 注册
1.提供登录凭据
2.提供联系信息
3.提供支付信息的细节
4.验证身份
5.选择支持计划
1.8.2 登录
1.8.3 创建一个密钥对
1.Linux与Mac OS X
2.Windows
1.8.4 创建计费告警
1.9 小结
第2章 一个简单示例:5分钟搭建WordPress站点
2.1 创建基础设施
2.2 探索基础设施
2.2.1 资源组
2.2.2 Web服务器
2.2.3 负载均衡器
2.2.4 MySQL数据库
2.3 成本是多少
2.4 删除基础设施
2.5 小结
第二部分 搭建包含服务器和网络的虚拟基础设施
第3章 使用虚拟服务器:EC2
3.1 探索虚拟服务器
3.1.1 启动虚拟服务器
1.选择操作系统
2.选择虚拟服务器的尺寸
3.实例详细信息、存储、防火墙和标签
4.检查输入并为SSH选择一个密钥对
3.1.2 连接到虚拟服务器
1.Linux和Mac OS X
2.Windows
3.登录信息
3.1.3 手动安装和运行软件
3.2 监控和调试虚拟服务器
3.2.1 显示虚拟服务器的日志
3.2.2 监控虚拟服务器的负载
3.3 关闭虚拟服务器
3.4 更改虚拟服务器的容量
3.5 在另一个数据中心开启虚拟服务器
3.6 分配一个公有IP地址
3.7 向虚拟服务器添加额外的网络接口
3.8 优化虚拟服务器的开销
3.8.1 预留虚拟服务器
3.8.2 对未使用的虚拟服务器竞价
3.9 小结
第4章 编写基础架构:命令行、SDK和CloudFormation
4.1 基础架构即代码
4.1.1 自动化和DevOps运作
4.1.2 开发一种基础架构语言:JIML
4.2 使用命令行接口
4.2.1 安装CLI
1.Linux和Mac OS X
2.Windows
4.2.2 配置CLI
4.2.3 使用CLI
1.Linux和Mac OS X
2.Windows
3.为什么要写脚本
4.3 使用SDK编程
4.3.1 使用SDK控制虚拟服务器:nodecc
4.3.2 nodecc如何创建一台服务器
4.3.3 nodecc是如何列出服务器并显示服务器的详细信息
4.3.4 nodecc如何终止一台服务器
4.4 使用蓝图来启动一台虚拟服务器
4.4.1 CloudFormation模板解析
1.格式版本及描述
2.参数
3.资源
4.输出
4.4.2 创建第一个模板
4.5 小结
第5章 自动化部署:CloudFormation、Elastic Beanstalk和OpsWorks
5.1 在灵活的云环境中部署应用程序
5.2 使用CloudFormation在服务器启动时运行脚本
5.2.1 在服务器启动时使用用户数据来运行脚本
5.2.2 在虚拟服务器上部署OpenSwan作为VPN服务器
1.使用CloudFormation来启动虚拟服务器并使用用户数据
2.使用脚本安装并配置一个VPN服务器
5.2.3 从零开始,而不是更新已有的服务器
5.3 使用Elastic Beanstalk部署一个简单的网站应用
5.3.1 Elastic Beanstalk的组成部分
5.3.2 使用Elastic Beanstalk部署一个Node.js应用Etherpad
1.为AWS Elastic Beanstalk创建应用
2.为AWS Elastic Beanstalk创建版本
3.用Elastic Beanstalk创建一个环境来执行Etherpad
4.玩转Etherpad
5.使用管理控制台探索Elastic Beanstalk
5.4 使用OpsWorks部署多层架构应用
5.4.1 OpsWorks的组成部分
5.4.2 使用OpsWorks部署一个IRC聊天应用
1.创建一个新的OpsWorks堆栈
2.为OpsWorks堆栈创建一个Node.js层
3.为OpsWorks堆栈创建一个自定义层
4.向Node.js层添加一个应用程序
5.添加实例来运行IRC客户端与服务器
6.玩转kiwiIRC
5.5 比较部署工具
5.5.1 对部署工具分类
5.5.2 比较部署服务
5.6 小结
第6章 保护系统安全:IAM、安全组和VPC
6.1 谁该对安全负责
6.2 使软件保持最新
6.2.1 检查安全更新
6.2.2 在服务器启动时安装安全更新
6.2.3 在服务器运行时安装安全更新
6.3 保护AWS账户安全
6.3.1 保护AWS账户的root用户安全
6.3.2 IAM服务
6.3.3 用于授权的策略
6.3.4 用于身份认证的用户和用于组织用户的组
6.3.5 用于认证AWS的角色
6.4 控制进出虚拟服务器的网络流量
6.4.1 使用安全组控制虚拟服务器的流量
6.4.2 允许ICMP流量
6.4.3 允许SSH流量
6.4.4 允许来自源IP地址的SSH流量
6.4.5 允许来自源安全组的SSH流量
6.4.6 用PuTTY进行代理转发
6.5 在云中创建一个私有网络:虚拟私有云
6.5.1 创建VPC和IGW
6.5.2 定义公有堡垒主机子网
6.5.3 添加私有Apache网站服务器子网
6.5.4 在子网中启动服务器
6.5.5 通过NAT服务器从私有子网访问互联网
6.6 小结
第三部分 在云上保存数据
第7章 存储对象:S3和Glacier
7.1 对象存储的概念
7.2 Amazon S3
7.3 备份用户的数据
7.4 归档对象以优化成本
7.4.1 创建S3存储桶配合Glacier使用
7.4.2 添加生命周期规则到存储桶
7.4.3 测试Glacier和生命周期规则
7.5 程序的方式存储对象
7.5.1 设置S3存储桶
7.5.2 安装使用S3的互联网应用
7.5.3 检查使用SDK访问S3的代码
1.上传一个图片到S3
2.列出S3存储桶的所有图片
7.6 使用S3来实现静态网站托管
7.6.1 创建存储桶并上传一个静态网站
7.6.2 配置存储桶来实现静态网站托管
7.6.3 访问S3上托管的静态网站
7.7 对象存储的内部机制
7.7.1 确保数据一致性
7.7.2 选择合适的键
7.8 小结
第8章 在硬盘上存储数据:EBS和实例存储
8.1 网络附加存储
8.1.1 创建EBS卷并挂载到服务器
8.1.2 使用弹性数据块存储
8.1.3 玩转性能
8.1.4 备份数据
8.2 实例存储
8.2.1 使用实例存储
8.2.2 性能测试
8.2.3 备份数据
8.3 比较块存储解决方案
8.4 使用实例存储和EBS卷提供共享文件系统
8.4.1 NFS的安全组
8.4.2 NFS服务器和卷
8.4.3 NFS服务器安装和配置脚本
8.4.4 NFS客户端
8.4.5 通过NFS共享文件
8.5 小结
第9章 使用关系数据库服务:RDS
9.1 启动一个MySQL数据库
9.1.1 用Amazon RDS数据库启动WordPress平台
9.1.2 探索使用MySQL引擎的RDS数据库实例
9.1.3 Amazon RDS的定价
9.2 将数据导入数据库
9.3 备份和恢复数据库
9.3.1 配置自动快照
9.3.2 手动创建快照
9.3.3 恢复数据库
9.3.4 复制数据库到其他的区域
9.3.5 计算快照的成本
9.4 控制对数据库的访问
9.4.1 控制对RDS数据库的配置的访问控制
9.4.2 控制对RDS数据库的网络访问
9.4.3 控制数据访问
9.5 可以依赖的高可用的数据库
激活RDS数据库的高可用部署选项
9.6 调整数据库的性能
9.6.1 增加数据库资源
9.6.2 使用读副本来增加读性能
1.创建一个读副本的数据库
2.提升读副本数据库为单独的数据库
9.7 监控数据库
9.8 小结
第10章 面向NoSQL数据库服务的编程:DynamoDB
10.1 操作DynamoDB
10.1.1 管理
10.1.2 价格
10.1.3 与RDS对比
10.2 开发者需要了解的DynamoDB内容
10.2.1 表、项目和属性
10.2.2 主键
1.分区键
2.分区键和排序键
10.2.3 与其他NoSQL数据库的对比
10.2.4 DynamoDB本地版
10.3 编写任务管理应用程序
10.4 创建表
10.4.1 使用分区键的用户表
10.4.2 使用分区键和排序键的任务表
10.5 添加数据
10.5.1 添加一个用户
10.5.2 添加一个任务
10.6 获取数据
10.6.1 提供键来获取数据
10.6.2 使用键和过滤来查询
10.6.3 更灵活地使用二级索引查询数据
10.6.4 扫描和过滤表数据
10.6.5 最终一致地数据提取
10.7 删除数据
10.8 修改数据
10.9 扩展容量
10.10 小结
第四部分 在AWS上搭架构
第11章 实现高可用性:可用区、自动扩展以及CloudWatch
11.1 使用CloudWatch恢复失效的服务器
11.1.1 建立一个CloudWatch告警
11.1.2 基于CloudWatch对虚拟服务器监控与恢复
11.2 从数据中心故障中恢复
11.2.1 可用区:每个区域有多个数据中心
11.2.2 使用自动扩展确保虚拟服务器一直运行
11.2.3 在另一个可用区中通过自动扩展恢复失效的虚拟服务器
11.2.4 陷阱:网络附加存储恢复
11.2.5 陷阱:网络接口恢复
11.3 分析灾难恢复的需求
单个虚拟服务器的RTO和RPO的比较
11.4 小结
第12章 基础设施解耦:ELB与SQS
12.1 利用负载均衡器实现同步解耦
12.1.1 使用虚拟服务器设置负载均衡器
12.1.2 陷阱:过早地连接到服务器
12.1.3 更多使用场景
1.处理TCP流量
2.终止SSL
3.记录日志
4.跨可用区的负载均衡
12.2 利用消息队列实现异步解耦
12.2.1 将同步过程转换成异步过程
12.2.2 URL2PNG应用的架构
12.2.3 创建消息队列
12.2.4 以程序化的方法处理消息
12.2.5 程序化地消费消息
12.2.6 SQS消息传递的局限性
1.SQS不保证消息仅被传送一次
2.SQS并不保证消息的顺序
3.SQS不会取代消息代理
12.3 小结
第13章 容错设计
13.1 使用冗余EC2实例提高可用性
13.1.1 冗余可以去除单点故障
13.1.2 冗余需要解耦
13.2 使代码容错的注意事项
13.2.1 让其崩溃,但也重试
13.2.2 幂等重试使得容错成为可能
1.在数据库中创建一个博客条目
2.让缓存失效
3.发送到博客的Twitter feed
13.3 构建容错Web应用:Imagery
13.3.1 幂等图片状态机
1.有限状态机
2.幂等状态转换
13.3.2 实现容错Web服务
1.设置服务器项目
2.创建一个新的Imagery进程
3.查找Imagery进程
4.上传图片
13.3.3 实现容错的工作进程来消费SQS消息
1.设置服务器项目
2.处理SQS消息和处理图片
13.3.4 部署应用
1.部署S3、DynamoDB和SQS
2.用于服务器和工作中的EC2实例的IAM角色
3.用于服务器的Elastic Beanstalk
4.用于工作进程的Elastic Beanstalk
13.4 小结
第14章 向上或向下扩展:自动扩展和CloudWatch
14.1 管理动态服务器池
14.2 使用监控指标和时间计划触发扩展
14.2.1 基于时间计划的扩展
14.2.2 基于CloudWatch参数的扩展
14.3 解耦动态服务器池
14.3.1 由负载均衡器同步解耦扩展动态服务器池
14.3.2 队列异步解耦扩展动态服务器池
14.4 小结
AWS云计算实战是2018年由人民邮电出版社出版,作者。
得书感谢您对《AWS云计算实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。