书籍作者:安德烈亚斯·威蒂格 | ISBN:9787115484864 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:8152 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
AWS是美亚的云计算平台,它提供了一整套基础设施和应用程序服务,可以帮助用户在云中运行几乎一切应用程序。本书介绍了AWS云平台的核心服务,如计算、存储和网络等内容。读者还可以从本书中了解在云上实现自动化、保证安全、实现高可用和海量扩展的系统架构的实践。
本书分4个部分,共14章。本书从介绍AWS的基本概念开始,引入具体的应用示例,让读者对云计算和AWS平台有一个整体的了解;然后讲解如何搭建包含服务器和网络的基础设施;在此基础上,深入介绍如何在云上存取数据,让读者熟悉存储数据的方法和技术;然后展开讨论在AWS上如何设计架构,了解实现高可用性、高容错率和高扩展性的实践。
安德烈亚斯· 威蒂格(Andreas Wittig)和迈克尔· 威蒂格(Michael Wittig)都是软件工程师,也是专注于AWS和Web开发的顾问专家。
物理数据中心需要很多设备,并且需要投入大量的时间和资源来管理。如果用户需要数据中心,又不希望自己搭建,AWS可能是一个不错的解决方案。无论用户是想分析实时数据,搭建软件即服务架构,还是运行一个电子商务的网站,AWS都可以为其提供可靠的基于云平台的可扩展服务。
本书为读者介绍AWS 云平台的计算、存储和网络服务。读者将从云计算的概览开始,然后学习如何创建自己的账户,学习如何通过调用AWS API 以编程的方式控制AWS 的每个组件,以实现基础设施的自动化,学习存储数据的选项和相关技巧,学习如何使用私有网络隔离自己的系统来增强安全性。最后,本书还会教读者如何针对高可用性和容错进行设计。
本书主要内容
● 云计算概念和模式的概述。
● 在AWS上部署应用程序。
● 集成美亚的预构建服务。
● 管理EC2服务器来降低成本。
本书面向将分布式应用迁移到AWS 平台的开发者和DevOps工程师。
第 一部分 AWS云计算起步
第 1章 什么是Amazon Web Services 3
1.1 什么是云计算 4
1.2 AWS可以做什么 4
1.2.1 托管一家网店 5
1.2.2 在专有网络内运行一个Java EE应用 6
1.2.3 满足法律和业务数据归档的需求 7
1.2.4 实现容错的系统架构 8
1.3 如何从使用AWS上获益 9
1.3.1 创新和快速发展的平台 9
1.3.2 解决常见问题的服务 9
1.3.3 启用自动化 10
1.3.4 灵活的容量(可扩展性) 10
1.3.5 为失效而构建(可靠性) 11
1.3.6 缩短上市的时间 11
1.3.7 从规模经济中受益 11
1.3.8 全球化 11
1.3.9 专业的合作伙伴 12
1.4 费用是多少 12
1.4.1 免费套餐 12
1.4.2 账单样例 13
1.4.3 按使用付费的机遇 14
1.5 同类对比 14
1.6 探索AWS服务 16
1.7 与AWS交互 18
1.7.1 管理控制台 19
1.7.2 命令行接口 20
1.7.3 SDK 20
1.7.4 蓝图 21
1.8 创建一个AWS账户 22
1.8.1 注册 22
1.8.2 登录 26
1.8.3 创建一个密钥对 28
1.8.4 创建计费告警 31
1.9 小结 31
第 2章 一个简单示例:5分钟搭建WordPress站点 33
2.1 创建基础设施 33
2.2 探索基础设施 39
2.2.1 资源组 40
2.2.2 Web服务器 41
2.2.3 负载均衡器 42
2.2.4 MySQL数据库 44
2.3 成本是多少 45
2.4 删除基础设施 46
2.5 小结 48
第二部分 搭建包含服务器和网络的虚拟基础设施
第3章 使用虚拟服务器:
EC2 51
3.1 探索虚拟服务器 51
3.1.1 启动虚拟服务器 52
3.1.2 连接到虚拟服务器 60
3.1.3 手动安装和运行软件 63
3.2 监控和调试虚拟服务器 64
3.2.1 显示虚拟服务器的日志 64
3.2.2 监控虚拟服务器的负载 65
3.3 关闭虚拟服务器 66
3.4 更改虚拟服务器的容量 67
3.5 在另一个数据中心开启虚拟服务器 69
3.6 分配一个公有IP地址 72
3.7 向虚拟服务器添加额外的网络接口 74
3.8 优化虚拟服务器的开销 77
3.8.1 预留虚拟服务器 78
3.8.2 对未使用的虚拟服务器竞价 79
3.9 小结 82
第4章 编写基础架构:命令行、SDK和CloudFormation 83
4.1 基础架构即代码 84
4.1.1 自动化和DevOps运作 85
4.1.2 开发一种基础架构语言:JIML 85
4.2 使用命令行接口 88
4.2.1 安装CLI 88
4.2.2 配置CLI 89
4.2.3 使用CLI 94
4.3 使用SDK编程 98
4.3.1 使用SDK控制虚拟服务器:nodecc 98
4.3.2 nodecc如何创建一台服务器 99
4.3.3 nodecc是如何列出服务器并显示服务器的详细信息 101
4.3.4 nodecc如何终止一台服务器 102
4.4 使用蓝图来启动一台虚拟服务器 102
4.4.1 CloudFormation模板解析 103
4.4.2 创建第 一个模板 107
4.5 小结 113
第5章 自动化部署:CloudFormation、Elastic Beanstalk和OpsWorks 114
5.1 在灵活的云环境中部署应用程序 115
5.2 使用CloudFormation在服务器启动时运行脚本 116
5.2.1 在服务器启动时使用用户数据来运行脚本 116
5.2.2 在虚拟服务器上部署OpenSwan作为VPN服务器 116
5.2.3 从零开始,而不是更新已有的服务器 121
5.3 使用Elastic Beanstalk部署一个简单的网站应用 121
5.3.1 Elastic Beanstalk的组成部分 121
5.3.2 使用Elastic Beanstalk部署一个Node.js应用Etherpad 122
5.4 使用OpsWorks部署多层架构应用 126
5.4.1 OpsWorks的组成部分 127
5.4.2 使用OpsWorks部署一个IRC聊天应用 128
5.5 比较部署工具 137
5.5.1 对部署工具分类 138
5.5.2 比较部署服务 138
5.6 小结 139
第6章 保护系统安全:IAM、安全组和VPC 140
6.1 谁该对安全负责 141
6.2 使软件保持最新 142
6.2.1 检查安全更新 142
6.2.2 在服务器启动时安装安全更新 143
6.2.3 在服务器运行时安装安全更新 144
6.3 保护AWS账户安全 145
6.3.1 保护AWS账户的root用户安全 146
6.3.2 IAM服务 146
6.3.3 用于授权的策略 147
6.3.4 用于身份认证的用户和用于组织用户的组 149
6.3.5 用于认证AWS的角色 150
6.4 控制进出虚拟服务器的网络流量 152
6.4.1 使用安全组控制虚拟服务器的流量 153
6.4.2 允许ICMP流量 154
6.4.3 允许SSH流量 155
6.4.4 允许来自源IP地址的SSH流量 156
6.4.5 允许来自源安全组的SSH流量 157
6.4.6 用PuTTY进行代理转发 159
6.5 在云中创建一个私有网络:虚拟私有云 160
6.5.1 创建VPC和IGW 162
6.5.2 定义公有堡垒主机子网 162
6.5.3 添加私有Apache网站服务器子网 164
6.5.4 在子网中启动服务器 165
6.5.5 通过NAT服务器从私有子网访问互联网 166
6.6 小结 168
第三部分 在云上保存数据
第7章 存储对象:S3和Glacierr 171
7.1 对象存储的概念 171
7.2 Amazon S3 172
7.3 备份用户的数据 173
7.4 归档对象以优化成本 175
7.4.1 创建S3存储桶配合Glacier使用 175
7.4.2 添加生命周期规则到存储桶 176
7.4.3 测试Glacier和生命周期规则 179
7.5 程序的方式存储对象 181
7.5.1 设置S3存储桶 181
7.5.2 安装使用S3的互联网应用 182
7.5.3 检查使用SDK访问S3的代码 182
7.6 使用S3来实现静态网站托管 184
7.6.1 创建存储桶并上传一个静态网站 185
7.6.2 配置存储桶来实现静态网站托管 185
7.6.3 访问S3上托管的静态网站 186
7.7 对象存储的内部机制 187
7.7.1 确保数据一致性 187
7.7.2 选择合适的键 188
7.8 小结 189
第8章 在硬盘上存储数据:EBS和实例存储 190
8.1 网络附加存储 191
8.1.1 创建EBS卷并挂载到服务器 191
8.1.2 使用弹性数据块存储 192
8.1.3 玩转性能 194
8.1.4 备份数据 195
8.2 实例存储 197
8.2.1 使用实例存储 200
8.2.2 性能测试 200
8.2.3 备份数据 201
8.3 比较块存储解决方案 201
8.4 使用实例存储和EBS卷提供共享文件系统 202
8.4.1 NFS的安全组 203
8.4.2 NFS服务器和卷 204
8.4.3 NFS服务器安装和配置脚本 206
8.4.4 NFS客户端 207
8.4.5 通过NFS共享文件 208
8.5 小结 209
第9章 使用关系数据库服务:RDS 210
9.1 启动一个MySQL数据库 212
9.1.1 用Amazon RDS数据库启动WordPress平台 212
9.1.2 探索使用MySQL引擎的RDS数据库实例 215
9.1.3 Amazon RDS的定价 217
9.2 将数据导入数据库 218
9.3 备份和恢复数据库 220
9.3.1 配置自动快照 220
9.3.2 手动创建快照 221
9.3.3 恢复数据库 222
9.3.4 复制数据库到其他的区域 223
9.3.5 计算快照的成本 224
9.4 控制对数据库的访问 224
9.4.1 控制对RDS数据库的配置的访问控制 225
9.4.2 控制对RDS数据库的网络访问 226
9.4.3 控制数据访问 226
9.5 可以依赖的高可用的数据库 227
9.6 调整数据库的性能 229
9.6.1 增加数据库资源 229
9.6.2 使用读副本来增加读性能 231
9.7 监控数据库 232
9.8 小结 234
第 10章 面向NoSQL数据库服务的编程:DynamoDB 235
10.1 操作DynamoDB 236
10.1.1 管理 236
10.1.2 价格 237
10.1.3 与RDS对比 237
10.2 开发者需要了解的DynamoDB内容 238
10.2.1 表、项目和属性 238
10.2.2 主键 238
10.2.3 与其他NoSQL数据库的对比 239
10.2.4 DynamoDB本地版 239
10.3 编写任务管理应用程序 239
10.4 创建表 241
10.4.1 使用分区键的用户表 242
10.4.2 使用分区键和排序键的任务表 243
10.5 添加数据 245
10.5.1 添加一个用户 246
10.5.2 添加一个任务 247
10.6 获取数据 247
10.6.1 提供键来获取数据 248
10.6.2 使用键和过滤来查询 249
10.6.3 更灵活地使用二级索引查询数据 251
10.6.4 扫描和过滤表数据 253
10.6.5 最终一致地数据提取 254
10.7 删除数据 255
10.8 修改数据 256
10.9 扩展容量 256
10.10 小结 258
第四部分 在AWS上搭架构
第 11章 实现高可用性:可用区、自动扩展以及
CloudWatch 263
11.1 使用CloudWatch恢复失效的服务器 264
11.1.1 建立一个CloudWatch告警 266
11.1.2 基于CloudWatch对虚拟服务器监控与恢复 267
11.2 从数据中心故障中恢复 270
11.2.1 可用区:每个区域有多个数据中心 271
11.2.2 使用自动扩展确保虚拟服务器一直运行 275
11.2.3 在另一个可用区中通过自动扩展恢复失效的虚拟服务器 277
11.2.4 陷阱:网络附加存储恢复 280
11.2.5 陷阱:网络接口恢复 283
11.3 分析灾难恢复的需求 287
11.4 小结 288
第 12章 基础设施解耦:ELB与SQS 289
12.1 利用负载均衡器实现同步解耦 290
12.1.1 使用虚拟服务器设置负载均衡器 291
12.1.2 陷阱:过早地连接到服务器 293
12.1.3 更多使用场景 294
12.2 利用消息队列实现异步解耦 300
12.2.1 将同步过程转换成异步过程 300
12.2.2 URL2PNG应用的架构 301
12.2.3 创建消息队列 302
12.2.4 以程序化的方法处理消息 302
12.2.5 程序化地消费消息 303
12.2.6 SQS消息传递的局限性 306
12.3 小结 307
第 13章 容错设计 308
13.1 使用冗余EC2实例提高可用性 310
13.1.1 冗余可以去除单点故障 310
13.1.2 冗余需要解耦 312
13.2 使代码容错的注意事项 313
13.2.1 让其崩溃,但也重试 313
13.2.2 幂等重试使得容错成为可能 314
13.3 构建容错Web应用:Imagery 316
13.3.1 幂等图片状态机 318
13.3.2 实现容错Web服务 320
13.3.3 实现容错的工作进程来消费SQS消息 326
13.3.4 部署应用 329
13.4 小结 336
第 14章 向上或向下扩展:自动扩展和CloudWatch 337
14.1 管理动态服务池 339
14.2 使用监控指标和时间计划触发扩展 342
14.2.1 基于时间计划的扩展 343
14.2.2 基于CloudWatch参数的扩展 344
14.3 解耦动态服务器池 347
14.3.1 由负载均衡器同步解耦扩展动态服务器池 349
14.3.2 队列异步解耦扩展动态服务器池 354
14.4 小结 356