《AWS云计算实战》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(德)安德烈亚斯·威蒂格(Andreas Wittig)著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115484864
  • 页数:356 页
图书介绍:本书介绍了AWS云的计算、存储和网络等内容,还介绍AWS中最重要的服务。读者还可以从这本书中了解到与自动化、安全性、高实用性和扩展性相关的最佳实践。首先,读者会对云计算和AWS有一个整体的了解,AWS云模式会帮读者很好地理解基础设施的概念;其次,本书介绍了存储数据的方法和技术;最后,本书介绍了设计高可用性、高容错率和高扩展性的方法。

第一部分 AWS云计算起步 3

第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

第二部分 搭建包含服务器和网络的虚拟基础设施 51

第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章 自动化部署:Cloud Formation、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

第三部分 在云上保存数据 171

第7章 存储对象:S3和Glacier 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上搭架构 263

第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