Amazon Web Services云计算实战(第2版)

Amazon Web Services云计算实战(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2023-05
版次: 2
ISBN: 9787115609298
定价: 129.80
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 434页
字数: 626千字
  • Amazon Web Services(AWS)是Amazon公司的云计算平台,它提供了一整套基础设施和应用服务,可以帮助用户在云中运行几乎一切应用。本书介绍AWS云平台的核心服务,如计算、存储网络等内容。读者可以从本书了解在云上实现自动化,保证安全,实现高可用、容错和海量扩展的系统架构的best实践。
      本书分为4部分,共17章。本书从介绍AWS的基本概念开始,引入具体的应用示例,让读者对云计算和AWS平台有整体的了解;然后讲解如何搭建包含虚拟机和网络的基础设施;在此基础上,深入介绍如何在云上存取数据,让读者熟悉存储数据的方法和技术;后展开讨论在AWS上如何设计架构,让读者了解实现高可用性、高容错和高扩展性的best实践。
      本书第2版全面修订了第1版中的各章内容,并涵盖AWS的新添加的服务,包括使用AWS Lambda的无服务器基础设施,与EFS共享数据以及使用Amazon ElastiCache的内存数据存储等。 迈克尔·威蒂格(Michael Wittig)和安德烈亚斯·威蒂格(Andreas Wittig)是专注于Amazon Web Services(AWS)的软件工程师和DevOps工程师。2013年,这对兄弟将一家德国银行的整个IT基础设施迁移到了AWS上。这在德国银行界算是首例。自2015年以来,他们一直担任顾问,帮助客户在AWS上迁移和运行工作负载。他们专注于基础设施即代码、持续部署、无服务器、Docker和安全等领域,也在Amazon云上构建SaaS产品。两人都是AWS认证的专业级AWS解决方案架构师(AWS Certified Solutions Architect-Professional)以及AWS认证的专业级DevOps工程师(AWS Certified DevOps Engineer-Professional)。此外,他们还喜欢通过本书、博客以及在线和现场培训(如AWS in Motion)与他人分享知识,教授他人如何使用AWS。 第 一部分 AWS 云计算起步 

    第 1 章 什么是 AWS 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 启用自动化 9 

    1.3.4 灵活的容量(可扩展性) 10 

    1.3.5 为失效而构建(可靠性) 10 

    1.3.6 缩短上市的时间 10 

    1.3.7 从规模经济中受益 11 

    1.3.8 全球基础设施 11 

    1.3.9 专业的合作伙伴 11 

    1.4 费用是多少 11 

    1.4.1 免费套餐 12 

    1.4.2 账单样例 12 

    1.4.3 按使用付费的机遇 13 

    1.5 同类对比 14 

    1.6 探索 AWS 服务 14 

    1.7 与 AWS 交互 17 

    1.7.1 管理控制台 18 

    1.7.2 CLI 18 

    1.7.3 SDK 19 

    1.7.4 蓝图 20 

    1.8 创建一个 AWS 账户 20 

    1.8.1 注册 21 

    1.8.2 登录 25 

    1.8.3 创建一个密钥对 26 

    1.9 创建账单警报跟踪 AWS 账单 29 

    1.10 小结 32 

    第 2 章 一个简单示例:5 分钟搭建WordPress 站点 33 

    2.1 创建基础设施 34 

    2.2 探索基础设施 40 

    2.2.1 资源组 40 

    2.2.2 虚拟机 41 

    2.2.3 负载均衡器 43 

    2.2.4 MySQL 数据库 44 

    2.2.5 网络文件系统 46 

    2.3 成本是多少 47 

    2.4 删除基础设施 48 

    2.5 小结 49 

    第二部分 搭建由计算机和网络组成的虚拟基础设施 

    第 3 章 使用虚拟机:EC2 53 

    3.1 探索虚拟机 53 

    3.1.1 启动虚拟机 54 

    3.1.2 连接到虚拟机 65 

    3.1.3 手动安装和运行软件 68 

    3.2 监控和调试虚拟机 69 

    3.2.1 显示虚拟机的日志 69 

    3.2.2 监控虚拟机的负载 70 

    3.3 关闭虚拟机 71 

    3.4 更改虚拟机的大小 72 

    3.5 在另一个数据中心启动虚拟机 75 

    3.6 分配一个公有 IP 地址 78 

    3.7 向虚拟机添加额外的网络接口 80 

    3.8 优化虚拟机的开销 84 

    3.8.1 预留虚拟机 85 

    3.8.2 对未用虚拟机出价 87 

    3.9 小结 91 

    第 4 章 编写基础设施: 命令行、SDK 和 CloudFormation 92 

    4.1 基础设施即代码 94 

    4.1.1 自动化和 DevOps 迁移 94 

    4.1.2 开发一种基础设施语言:JIML 94 

    4.2 使用 CLI 98 

    4.2.1 为什么要自动化 98 

    4.2.2 安装 CLI 98 

    4.2.3 配置 CLI 99 

    4.2.4 使用 CLI 102 

    4.3 使用 SDK 编程 106 

    4.3.1 使用 SDK 控制虚拟机:nodecc 106 

    4.3.2 nodecc 如何创建一台虚拟机 107 

    4.3.3 nodecc 如何列出虚拟机并显示虚拟机的详细信息 108 

    4.3.4 nodecc 如何终止一台虚拟机 109 

    4.4 使用蓝图来启动一台虚拟机 110 

    4.4.1 CloudFormation 模板解析 111 

    4.4.2 创建第 一个模板 114 

    4.5 小结 120 

    第 5 章 自动化部署: CloudFormation、 Elastic Beanstalk 和 OpsWorks 121 

    5.1 在灵活的云环境中部署应用 122 

    5.2 比较部署工具 123 

    5.2.1 对部署工具进行分类 123 

    5.2.2 比较部署服务 123 

    5.3 使用 AWS CloudFormation 创建虚拟机并在启动时运行部署脚本 124 

    5.3.1 在服务器启动时用用户数据来运行脚本 125 

    5.3.2 将 VPN 服务器 OpenSwan 部署到虚拟机 125 

    5.3.3 从零开始而不是更新 129 

    5.4 使用 AWS Elastic Beanstalk 部署简单的 Web 应用 130 

    5.4.1 Elastic Beanstalk 组件 130 

    5.4.2 使用 Elastic Beanstalk 部署一个 Node.js 应用Etherpad 131 

    5.5 使用 AWS OpsWorks Stacks 部署多层应用 135 

    5.5.1 AWS OpsWorks Stacks 的组件 136 

    5.5.2 使用 AWS OpsWorks Stacks 部署 IRC 聊天应用 138 

    5.6 小结 147 

    第 6 章 保护系统安全:IAM、 安全组和 VPC 148 

    6.1 谁该对安全负责 149 

    6.2 使软件保持 150 

    6.2.1 检查安全更新 150 

    6.2.2 在虚拟机启动时安装安全更新 151 

    6.2.3 在正在运行的虚拟机上安装安全更新 152 

    6.3 保护 AWS 账户安全 153 

    6.3.1 保护 AWS 账户的 root 用户安全 154 

    6.3.2 AWS 身份和访问管理 155 

    6.3.3 使用 IAM 策略定义权限 156 

    6.3.4 用户用于身份认证,组用于组织用户 158 

    6.3.5 使用角色认证AWS资源 159 

    6.4 控制进出虚拟机的网络流量 161 

    6.4.1 使用安全组控制虚拟机的流量 162 

    6.4.2 允许 ICMP 流量 163 

    6.4.3 允许 SSH 流量 164 

    6.4.4 允许来自源 IP 地址的SSH 流量 165 

    6.4.5 允许来自源安全组的SSH 流量 166 

    6.5 在云中创建一个专用网络:亚马逊虚拟私有云 170 

    6.5.1 创建VPC和互联网网关 171 

    6.5.2 定义公有堡垒主机子网 172 

    6.5.3 添加私有 Apache Web 服务器子网 174 

    6.5.4 在子网中启动虚拟机 175 

    6.5.5 通过 NAT 网关从私有子网访问互联网 176 

    6.6 小结 178 

    第 7 章 用 Lambda 自动化 操作任务 179 

    7.1 用 AWS Lambda 运行代码 180 

    7.1.1 什么是无服务器 180 

    7.1.2 在 AWS Lambda 上运行代码 180 

    7.1.3 比较 AWS Lambda 与虚拟机(Amazon EC2) 181 

    7.2 用 AWS Lambda 构建网站健康状况检查 182 

    7.2.1 创建 Lambda 函数 183 

    7.2.2 用 CloudWatch 搜索 Lambda 函数的日志 188 

    7.2.3 用 CloudWatch 指标和警报监视 Lambda 函数 190 

    7.2.4 访问 VPC 中的端点 194 

    7.3 自动添加包含 EC2 实例所有者的标签 196 

    7.3.1 事件驱动:订阅 CloudWatch 事件 196 

    7.3.2 在 Python 中实现 Lambda 函数 199 

    7.3.3 用无服务器应用模型设置Lambda 函数 200 

    7.3.4 授权 Lambda 函数用具有IAM 角色的其他 AWS 服务 201 

    7.3.5 用 SAM 部署 Lambda 函数 202 

    7.4 用 AWS Lambda 还能做什么 203 

    7.4.1 AWS Lambda 有哪些限制 203 

    7.4.2 无服务器定价模式的影响 203 

    7.4.3 使用场景:Web 应用 204 

    7.4.4 使用场景:数据处理 205 

    7.4.5 使用场景:物联网后端 206 

    7.5 小结 206 

    第三部分 在云中存储数据 

    第 8 章 存储对象:S3 和 Glacier 211 

    8.1 什么是对象存储 212 

    8.2 Amazon S3 212 

    8.3 使用 AWS CLI 在 S3 上备份数据 214 

    8.4 归档对象以优化成本 216 

    8.4.1 创建 S3 存储桶来配合Glacier 使用 217 

    8.4.2 添加生命周期规则到存储桶 218 

    8.4.3 实验 Glacier 和生命周期规则 220 

    8.5 以编程的方式存储对象 222 

    8.5.1 设置 S3 存储桶 224 

    8.5.2 安装使用 S3 的Web 应用 224 

    8.5.3 检查使用 SDK 访问 S3 的代码 224 

    8.6 使用 S3 来实现静态网站托管 226 

    8.6.1 创建存储桶并上传一个静态网站 227 

    8.6.2 配置存储桶来实现静态网站托管 227 

    8.6.3 访问 S3 上托管的网站 228 

    8.7 使用 S3 的实践 229 

    8.7.1 确保数据一致性 229 

    8.7.2 选择正确的键 230 

    8.8 小结 231 

    第 9 章 在硬盘上存储数据: EBS 和实例存储 232 

    9.1 弹性块存储:通过网络附加的持久的块级别存储 233 

    9.1.1 创建 EBS 卷并将其附加到EC2 实例 234 

    9.1.2 使用 EBS 234 

    9.1.3 调整性能 236 

    9.1.4 使用 EBS 快照备份数据 238 

    9.2 实例存储:临时块存储 240 

    9.2.1 使用实例存储 243 

    9.2.2 测试性能 244 

    9.2.3 备份数据 244 

    9.3 小结 245 

    第 10 章 在机器之间共享数据卷:EFS 246 

    10.1 创建文件系统 248 

    10.1.1 用 CloudFormation 描述文件系统 248 

    10.1.2 定价 249 

    10.2 创建安装目标 249 

    10.3 在 EC2 实例上安装EFS 共享 251 

    10.4 在 EC2 实例之间共享文件 254 

    10.5 调整性能 255 

    10.5.1 性能模式 255 

    10.5.2 预期吞吐量 256 

    10.6 监视文件系统 256 

    10.6.1 是否应使用 I/O 性能模式 257 

    10.6.2 监控你的允许吞吐量 258 

    10.6.3 监控你的使用情况 259 

    10.7 备份数据 259 

    10.7.1 使用 CloudFormation 描述EBS 卷 260 

    10.7.2 使用 EBS 卷 260 

    10.8 小结 262 

    第 11 章 使用关系数据库服务: RDS 263 

    11.1 开始使用 MySQL 数据库 265 

    11.1.1 用 RDS 数据库启动WordPress 平台 265 

    11.1.2 探索带有 MySQL 引擎的RDS 数据库实例 268 

    11.1.3 Amazon RDS 的定价 268 

    11.2 将数据导入数据库 268 

    11.3 备份和还原数据库 271 

    11.3.1 配置自动快照 271 

    11.3.2 手动创建快照 272 

    11.3.3 还原数据库 273 

    11.3.4 复制数据库到另一个区域 274 

    11.3.5 计算快照费用 275 

    11.4 控制对数据库的访问 275 

    11.4.1 控制对 RDS 数据库配置的访问 276 

    11.4.2 控制对 RDS 数据库的网络访问 277 

    11.4.3 控制对数据的访问 277 

    11.5 依赖高可用数据库 278 

    11.6 调整数据库的性能 280 

    11.6.1 增加数据库资源 281 

    11.6.2 使用读复制来提高读性能 282 

    11.7 监控数据库 284 

    11.8 小结 286 

    第 12 章 使用内存缓存数据:Amazon ElastiCache 287 

    12.1 创建缓存集群 291 

    12.1.1 小 CloudFormation 模板 292 

    12.1.2 测试 Redis 集群 293 

    12.2 缓存部署选项 294 

    12.2.1 Memcached 集群 295 

    12.2.2 Redis 单节点集群 295 

    12.2.3 Redis 禁用集群模式的集群 296 

    12.2.4 Redis 启用集群模式的集群 297 

    12.3 控制缓存访问 298 

    12.3.1 控制访问配置选项 298 

    12.3.2 控制网络访问 299 

    12.3.3 控制集群和数据访问 299 

    12.4 使用 CloudFormation 安装示例 Discourse 应用 300 

    12.4.1 VPC—网络配置 301 

    12.4.2 缓存—安全组、子网组、缓存集群 302 

    12.4.3 数据库—安全组、子网组、数据库实例 303 

    12.4.4 虚拟机—安全组、EC2 实例 304 

    12.4.5 测试 Discourse 的CloudFormation 模板 306 

    12.5 监控缓存 307 

    12.5.1 监控主机相关指标 308 

    12.5.2 内存是否足够? 309 

    12.5.3 Redis 只读副本是否保持 309 

    12.6 优化缓存性能 309 

    12.6.1 选择合适的节点类型 310 

    12.6.2 选择正确的部署选项 311 

    12.6.3 压缩数据 311 

    12.7 小结 311 

    第 13章 面向NoSQL数据库服务的编程:DynamoDB 312 

    13.1 操作 DynamoDB 314 

    13.1.1 管理 314 

    13.1.2 定价 314 

    13.1.3 网络 315 

    13.1.4 与 RDS 对比 315 

    13.1.5 与其他 NoSQL 数据库对比 316 

    13.2 开发人员需要了解的DynamoDB 316 

    13.2.1 表、项目和属性 316 

    13.2.2 主键 317 

    13.2.3 本地 DynamoDB 318 

    13.3 编写待办事项应用 318 

    13.4 创建表 320 

    13.4.1 通过分区键标识用户 320 

    13.4.2 通过分区键和排序键标识任务 321 

    13.5 添加数据 323 

    13.5.1 添加用户 324 

    13.5.2 添加任务 325 

    13.6 检索数据 325 

    13.6.1 通过键来获取项目 326 

    13.6.2 通过键和过滤器查询项目 327 

    13.6.3 使用全局辅助索引进行更灵活的查询 329 

    13.6.4 扫描和过滤表中的所有数据 332 

    13.6.5 终一致的数据检索 333 

    13.7 删除数据 333 

    13.8 修改数据 334 

    13.9 扩展容量 335 

    13.9.1 容量单元 336 

    13.9.2 自动扩展 337 

    13.10 小结 339 

    第四部分 在 AWS 上搭架构 

    第 14 章 实现高可用性: 可用区、自动扩展以及 CloudWatch 343 

    14.1 用CloudWatch从EC2实例故障中恢复 344 

    14.1.1 创建 CloudWatch 警报来在状态检查失败时触发恢复 345 

    14.1.2 根据CloudWatch警报监控和恢复虚拟机 347 

    14.2 从数据中心中断中恢复 350 

    14.2.1 可用区:一组独立的数据中心 351 

    14.2.2 用自动扩展确保 EC2 实例一直运行 354 

    14.2.3 借助自动扩展将出现故障的虚拟机恢复到另一个可用区 356 

    14.2.4 隐患:网络附加存储恢复 359 

    14.2.5 隐患:网络接口恢复 363 

    14.3 分析灾难恢复的必要条件 367 

    14.4 小结 368 

    第 15 章 基础设施解耦: ELB 与 SQS 369 

    15.1 利用负载均衡器进行同步解耦 370 

    15.2 利用消息队列进行异步解耦 375 

    15.2.1 将同步过程转换成异步过程 376 

    15.2.2 URL2PNG 应用的架构 377 

    15.2.3 创建消息队列 377 

    15.2.4 以编程方式生产消息 378 

    15.2.5 以编程方式消费消息 379 

    15.2.6 使用 SQS 传递消息的局限性 383 

    15.3 小结 384 

    第 16 章 容错设计 385 

    16.1 使用冗余 EC2 实例提高可用性 387 

    16.1.1 冗余可以消除单点故障 387 

    16.1.2 冗余需要解耦 389 

    16.2 使代码容错的注意事项 390 

    16.2.1 让其崩溃,而且重试 390 

    16.2.2 幂等重试使容错成为可能 391 

    16.3 构建容错 Web 应用:Imagery 393 

    16.3.1 幂等状态机 396 

    16.3.2 实现容错的 Web 服务 397 

    16.3.3 实现容错的工作进程来消费 SQS 消息 404 

    16.3.4 部署应用 407 

    16.4 小结 413 

    第 17 章 向上或向下扩展:自动扩展和CloudWatch 414 

    17.1 管理动态EC2实例池 416 

    17.2 使用指标或计划触发扩展 419 

    17.2.1 根据计划进行扩展 420 

    17.2.2 根据 CloudWatch 指标进行扩展 421 

    17.3 解耦动态EC2实例池 423 

    17.3.1 通过负载均衡器同步解耦扩展动态 EC2 实例池 424 

    17.3.2 通过队列异步解耦扩展动态EC2 实例池 428 

    17.4 小结 432 

    附录 A 术语及缩写 433
  • 内容简介:
    Amazon Web Services(AWS)是Amazon公司的云计算平台,它提供了一整套基础设施和应用服务,可以帮助用户在云中运行几乎一切应用。本书介绍AWS云平台的核心服务,如计算、存储网络等内容。读者可以从本书了解在云上实现自动化,保证安全,实现高可用、容错和海量扩展的系统架构的best实践。
      本书分为4部分,共17章。本书从介绍AWS的基本概念开始,引入具体的应用示例,让读者对云计算和AWS平台有整体的了解;然后讲解如何搭建包含虚拟机和网络的基础设施;在此基础上,深入介绍如何在云上存取数据,让读者熟悉存储数据的方法和技术;后展开讨论在AWS上如何设计架构,让读者了解实现高可用性、高容错和高扩展性的best实践。
      本书第2版全面修订了第1版中的各章内容,并涵盖AWS的新添加的服务,包括使用AWS Lambda的无服务器基础设施,与EFS共享数据以及使用Amazon ElastiCache的内存数据存储等。
  • 作者简介:
    迈克尔·威蒂格(Michael Wittig)和安德烈亚斯·威蒂格(Andreas Wittig)是专注于Amazon Web Services(AWS)的软件工程师和DevOps工程师。2013年,这对兄弟将一家德国银行的整个IT基础设施迁移到了AWS上。这在德国银行界算是首例。自2015年以来,他们一直担任顾问,帮助客户在AWS上迁移和运行工作负载。他们专注于基础设施即代码、持续部署、无服务器、Docker和安全等领域,也在Amazon云上构建SaaS产品。两人都是AWS认证的专业级AWS解决方案架构师(AWS Certified Solutions Architect-Professional)以及AWS认证的专业级DevOps工程师(AWS Certified DevOps Engineer-Professional)。此外,他们还喜欢通过本书、博客以及在线和现场培训(如AWS in Motion)与他人分享知识,教授他人如何使用AWS。
  • 目录:
    第 一部分 AWS 云计算起步 

    第 1 章 什么是 AWS 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 启用自动化 9 

    1.3.4 灵活的容量(可扩展性) 10 

    1.3.5 为失效而构建(可靠性) 10 

    1.3.6 缩短上市的时间 10 

    1.3.7 从规模经济中受益 11 

    1.3.8 全球基础设施 11 

    1.3.9 专业的合作伙伴 11 

    1.4 费用是多少 11 

    1.4.1 免费套餐 12 

    1.4.2 账单样例 12 

    1.4.3 按使用付费的机遇 13 

    1.5 同类对比 14 

    1.6 探索 AWS 服务 14 

    1.7 与 AWS 交互 17 

    1.7.1 管理控制台 18 

    1.7.2 CLI 18 

    1.7.3 SDK 19 

    1.7.4 蓝图 20 

    1.8 创建一个 AWS 账户 20 

    1.8.1 注册 21 

    1.8.2 登录 25 

    1.8.3 创建一个密钥对 26 

    1.9 创建账单警报跟踪 AWS 账单 29 

    1.10 小结 32 

    第 2 章 一个简单示例:5 分钟搭建WordPress 站点 33 

    2.1 创建基础设施 34 

    2.2 探索基础设施 40 

    2.2.1 资源组 40 

    2.2.2 虚拟机 41 

    2.2.3 负载均衡器 43 

    2.2.4 MySQL 数据库 44 

    2.2.5 网络文件系统 46 

    2.3 成本是多少 47 

    2.4 删除基础设施 48 

    2.5 小结 49 

    第二部分 搭建由计算机和网络组成的虚拟基础设施 

    第 3 章 使用虚拟机:EC2 53 

    3.1 探索虚拟机 53 

    3.1.1 启动虚拟机 54 

    3.1.2 连接到虚拟机 65 

    3.1.3 手动安装和运行软件 68 

    3.2 监控和调试虚拟机 69 

    3.2.1 显示虚拟机的日志 69 

    3.2.2 监控虚拟机的负载 70 

    3.3 关闭虚拟机 71 

    3.4 更改虚拟机的大小 72 

    3.5 在另一个数据中心启动虚拟机 75 

    3.6 分配一个公有 IP 地址 78 

    3.7 向虚拟机添加额外的网络接口 80 

    3.8 优化虚拟机的开销 84 

    3.8.1 预留虚拟机 85 

    3.8.2 对未用虚拟机出价 87 

    3.9 小结 91 

    第 4 章 编写基础设施: 命令行、SDK 和 CloudFormation 92 

    4.1 基础设施即代码 94 

    4.1.1 自动化和 DevOps 迁移 94 

    4.1.2 开发一种基础设施语言:JIML 94 

    4.2 使用 CLI 98 

    4.2.1 为什么要自动化 98 

    4.2.2 安装 CLI 98 

    4.2.3 配置 CLI 99 

    4.2.4 使用 CLI 102 

    4.3 使用 SDK 编程 106 

    4.3.1 使用 SDK 控制虚拟机:nodecc 106 

    4.3.2 nodecc 如何创建一台虚拟机 107 

    4.3.3 nodecc 如何列出虚拟机并显示虚拟机的详细信息 108 

    4.3.4 nodecc 如何终止一台虚拟机 109 

    4.4 使用蓝图来启动一台虚拟机 110 

    4.4.1 CloudFormation 模板解析 111 

    4.4.2 创建第 一个模板 114 

    4.5 小结 120 

    第 5 章 自动化部署: CloudFormation、 Elastic Beanstalk 和 OpsWorks 121 

    5.1 在灵活的云环境中部署应用 122 

    5.2 比较部署工具 123 

    5.2.1 对部署工具进行分类 123 

    5.2.2 比较部署服务 123 

    5.3 使用 AWS CloudFormation 创建虚拟机并在启动时运行部署脚本 124 

    5.3.1 在服务器启动时用用户数据来运行脚本 125 

    5.3.2 将 VPN 服务器 OpenSwan 部署到虚拟机 125 

    5.3.3 从零开始而不是更新 129 

    5.4 使用 AWS Elastic Beanstalk 部署简单的 Web 应用 130 

    5.4.1 Elastic Beanstalk 组件 130 

    5.4.2 使用 Elastic Beanstalk 部署一个 Node.js 应用Etherpad 131 

    5.5 使用 AWS OpsWorks Stacks 部署多层应用 135 

    5.5.1 AWS OpsWorks Stacks 的组件 136 

    5.5.2 使用 AWS OpsWorks Stacks 部署 IRC 聊天应用 138 

    5.6 小结 147 

    第 6 章 保护系统安全:IAM、 安全组和 VPC 148 

    6.1 谁该对安全负责 149 

    6.2 使软件保持 150 

    6.2.1 检查安全更新 150 

    6.2.2 在虚拟机启动时安装安全更新 151 

    6.2.3 在正在运行的虚拟机上安装安全更新 152 

    6.3 保护 AWS 账户安全 153 

    6.3.1 保护 AWS 账户的 root 用户安全 154 

    6.3.2 AWS 身份和访问管理 155 

    6.3.3 使用 IAM 策略定义权限 156 

    6.3.4 用户用于身份认证,组用于组织用户 158 

    6.3.5 使用角色认证AWS资源 159 

    6.4 控制进出虚拟机的网络流量 161 

    6.4.1 使用安全组控制虚拟机的流量 162 

    6.4.2 允许 ICMP 流量 163 

    6.4.3 允许 SSH 流量 164 

    6.4.4 允许来自源 IP 地址的SSH 流量 165 

    6.4.5 允许来自源安全组的SSH 流量 166 

    6.5 在云中创建一个专用网络:亚马逊虚拟私有云 170 

    6.5.1 创建VPC和互联网网关 171 

    6.5.2 定义公有堡垒主机子网 172 

    6.5.3 添加私有 Apache Web 服务器子网 174 

    6.5.4 在子网中启动虚拟机 175 

    6.5.5 通过 NAT 网关从私有子网访问互联网 176 

    6.6 小结 178 

    第 7 章 用 Lambda 自动化 操作任务 179 

    7.1 用 AWS Lambda 运行代码 180 

    7.1.1 什么是无服务器 180 

    7.1.2 在 AWS Lambda 上运行代码 180 

    7.1.3 比较 AWS Lambda 与虚拟机(Amazon EC2) 181 

    7.2 用 AWS Lambda 构建网站健康状况检查 182 

    7.2.1 创建 Lambda 函数 183 

    7.2.2 用 CloudWatch 搜索 Lambda 函数的日志 188 

    7.2.3 用 CloudWatch 指标和警报监视 Lambda 函数 190 

    7.2.4 访问 VPC 中的端点 194 

    7.3 自动添加包含 EC2 实例所有者的标签 196 

    7.3.1 事件驱动:订阅 CloudWatch 事件 196 

    7.3.2 在 Python 中实现 Lambda 函数 199 

    7.3.3 用无服务器应用模型设置Lambda 函数 200 

    7.3.4 授权 Lambda 函数用具有IAM 角色的其他 AWS 服务 201 

    7.3.5 用 SAM 部署 Lambda 函数 202 

    7.4 用 AWS Lambda 还能做什么 203 

    7.4.1 AWS Lambda 有哪些限制 203 

    7.4.2 无服务器定价模式的影响 203 

    7.4.3 使用场景:Web 应用 204 

    7.4.4 使用场景:数据处理 205 

    7.4.5 使用场景:物联网后端 206 

    7.5 小结 206 

    第三部分 在云中存储数据 

    第 8 章 存储对象:S3 和 Glacier 211 

    8.1 什么是对象存储 212 

    8.2 Amazon S3 212 

    8.3 使用 AWS CLI 在 S3 上备份数据 214 

    8.4 归档对象以优化成本 216 

    8.4.1 创建 S3 存储桶来配合Glacier 使用 217 

    8.4.2 添加生命周期规则到存储桶 218 

    8.4.3 实验 Glacier 和生命周期规则 220 

    8.5 以编程的方式存储对象 222 

    8.5.1 设置 S3 存储桶 224 

    8.5.2 安装使用 S3 的Web 应用 224 

    8.5.3 检查使用 SDK 访问 S3 的代码 224 

    8.6 使用 S3 来实现静态网站托管 226 

    8.6.1 创建存储桶并上传一个静态网站 227 

    8.6.2 配置存储桶来实现静态网站托管 227 

    8.6.3 访问 S3 上托管的网站 228 

    8.7 使用 S3 的实践 229 

    8.7.1 确保数据一致性 229 

    8.7.2 选择正确的键 230 

    8.8 小结 231 

    第 9 章 在硬盘上存储数据: EBS 和实例存储 232 

    9.1 弹性块存储:通过网络附加的持久的块级别存储 233 

    9.1.1 创建 EBS 卷并将其附加到EC2 实例 234 

    9.1.2 使用 EBS 234 

    9.1.3 调整性能 236 

    9.1.4 使用 EBS 快照备份数据 238 

    9.2 实例存储:临时块存储 240 

    9.2.1 使用实例存储 243 

    9.2.2 测试性能 244 

    9.2.3 备份数据 244 

    9.3 小结 245 

    第 10 章 在机器之间共享数据卷:EFS 246 

    10.1 创建文件系统 248 

    10.1.1 用 CloudFormation 描述文件系统 248 

    10.1.2 定价 249 

    10.2 创建安装目标 249 

    10.3 在 EC2 实例上安装EFS 共享 251 

    10.4 在 EC2 实例之间共享文件 254 

    10.5 调整性能 255 

    10.5.1 性能模式 255 

    10.5.2 预期吞吐量 256 

    10.6 监视文件系统 256 

    10.6.1 是否应使用 I/O 性能模式 257 

    10.6.2 监控你的允许吞吐量 258 

    10.6.3 监控你的使用情况 259 

    10.7 备份数据 259 

    10.7.1 使用 CloudFormation 描述EBS 卷 260 

    10.7.2 使用 EBS 卷 260 

    10.8 小结 262 

    第 11 章 使用关系数据库服务: RDS 263 

    11.1 开始使用 MySQL 数据库 265 

    11.1.1 用 RDS 数据库启动WordPress 平台 265 

    11.1.2 探索带有 MySQL 引擎的RDS 数据库实例 268 

    11.1.3 Amazon RDS 的定价 268 

    11.2 将数据导入数据库 268 

    11.3 备份和还原数据库 271 

    11.3.1 配置自动快照 271 

    11.3.2 手动创建快照 272 

    11.3.3 还原数据库 273 

    11.3.4 复制数据库到另一个区域 274 

    11.3.5 计算快照费用 275 

    11.4 控制对数据库的访问 275 

    11.4.1 控制对 RDS 数据库配置的访问 276 

    11.4.2 控制对 RDS 数据库的网络访问 277 

    11.4.3 控制对数据的访问 277 

    11.5 依赖高可用数据库 278 

    11.6 调整数据库的性能 280 

    11.6.1 增加数据库资源 281 

    11.6.2 使用读复制来提高读性能 282 

    11.7 监控数据库 284 

    11.8 小结 286 

    第 12 章 使用内存缓存数据:Amazon ElastiCache 287 

    12.1 创建缓存集群 291 

    12.1.1 小 CloudFormation 模板 292 

    12.1.2 测试 Redis 集群 293 

    12.2 缓存部署选项 294 

    12.2.1 Memcached 集群 295 

    12.2.2 Redis 单节点集群 295 

    12.2.3 Redis 禁用集群模式的集群 296 

    12.2.4 Redis 启用集群模式的集群 297 

    12.3 控制缓存访问 298 

    12.3.1 控制访问配置选项 298 

    12.3.2 控制网络访问 299 

    12.3.3 控制集群和数据访问 299 

    12.4 使用 CloudFormation 安装示例 Discourse 应用 300 

    12.4.1 VPC—网络配置 301 

    12.4.2 缓存—安全组、子网组、缓存集群 302 

    12.4.3 数据库—安全组、子网组、数据库实例 303 

    12.4.4 虚拟机—安全组、EC2 实例 304 

    12.4.5 测试 Discourse 的CloudFormation 模板 306 

    12.5 监控缓存 307 

    12.5.1 监控主机相关指标 308 

    12.5.2 内存是否足够? 309 

    12.5.3 Redis 只读副本是否保持 309 

    12.6 优化缓存性能 309 

    12.6.1 选择合适的节点类型 310 

    12.6.2 选择正确的部署选项 311 

    12.6.3 压缩数据 311 

    12.7 小结 311 

    第 13章 面向NoSQL数据库服务的编程:DynamoDB 312 

    13.1 操作 DynamoDB 314 

    13.1.1 管理 314 

    13.1.2 定价 314 

    13.1.3 网络 315 

    13.1.4 与 RDS 对比 315 

    13.1.5 与其他 NoSQL 数据库对比 316 

    13.2 开发人员需要了解的DynamoDB 316 

    13.2.1 表、项目和属性 316 

    13.2.2 主键 317 

    13.2.3 本地 DynamoDB 318 

    13.3 编写待办事项应用 318 

    13.4 创建表 320 

    13.4.1 通过分区键标识用户 320 

    13.4.2 通过分区键和排序键标识任务 321 

    13.5 添加数据 323 

    13.5.1 添加用户 324 

    13.5.2 添加任务 325 

    13.6 检索数据 325 

    13.6.1 通过键来获取项目 326 

    13.6.2 通过键和过滤器查询项目 327 

    13.6.3 使用全局辅助索引进行更灵活的查询 329 

    13.6.4 扫描和过滤表中的所有数据 332 

    13.6.5 终一致的数据检索 333 

    13.7 删除数据 333 

    13.8 修改数据 334 

    13.9 扩展容量 335 

    13.9.1 容量单元 336 

    13.9.2 自动扩展 337 

    13.10 小结 339 

    第四部分 在 AWS 上搭架构 

    第 14 章 实现高可用性: 可用区、自动扩展以及 CloudWatch 343 

    14.1 用CloudWatch从EC2实例故障中恢复 344 

    14.1.1 创建 CloudWatch 警报来在状态检查失败时触发恢复 345 

    14.1.2 根据CloudWatch警报监控和恢复虚拟机 347 

    14.2 从数据中心中断中恢复 350 

    14.2.1 可用区:一组独立的数据中心 351 

    14.2.2 用自动扩展确保 EC2 实例一直运行 354 

    14.2.3 借助自动扩展将出现故障的虚拟机恢复到另一个可用区 356 

    14.2.4 隐患:网络附加存储恢复 359 

    14.2.5 隐患:网络接口恢复 363 

    14.3 分析灾难恢复的必要条件 367 

    14.4 小结 368 

    第 15 章 基础设施解耦: ELB 与 SQS 369 

    15.1 利用负载均衡器进行同步解耦 370 

    15.2 利用消息队列进行异步解耦 375 

    15.2.1 将同步过程转换成异步过程 376 

    15.2.2 URL2PNG 应用的架构 377 

    15.2.3 创建消息队列 377 

    15.2.4 以编程方式生产消息 378 

    15.2.5 以编程方式消费消息 379 

    15.2.6 使用 SQS 传递消息的局限性 383 

    15.3 小结 384 

    第 16 章 容错设计 385 

    16.1 使用冗余 EC2 实例提高可用性 387 

    16.1.1 冗余可以消除单点故障 387 

    16.1.2 冗余需要解耦 389 

    16.2 使代码容错的注意事项 390 

    16.2.1 让其崩溃,而且重试 390 

    16.2.2 幂等重试使容错成为可能 391 

    16.3 构建容错 Web 应用:Imagery 393 

    16.3.1 幂等状态机 396 

    16.3.2 实现容错的 Web 服务 397 

    16.3.3 实现容错的工作进程来消费 SQS 消息 404 

    16.3.4 部署应用 407 

    16.4 小结 413 

    第 17 章 向上或向下扩展:自动扩展和CloudWatch 414 

    17.1 管理动态EC2实例池 416 

    17.2 使用指标或计划触发扩展 419 

    17.2.1 根据计划进行扩展 420 

    17.2.2 根据 CloudWatch 指标进行扩展 421 

    17.3 解耦动态EC2实例池 423 

    17.3.1 通过负载均衡器同步解耦扩展动态 EC2 实例池 424 

    17.3.2 通过队列异步解耦扩展动态EC2 实例池 428 

    17.4 小结 432 

    附录 A 术语及缩写 433
查看详情
相关图书 / 更多
Amazon Web Services云计算实战(第2版)
Amazing Spider-Man, Vol. 1:The Parker Luck
Dan Slott;Humberto Ramos
Amazon Web Services云计算实战(第2版)
Amer Girl Lib Smart Girls
Julie Williams Montalbano 著;Angela Martini 绘
Amazon Web Services云计算实战(第2版)
Amazing!儿童英语自然拼读单词王
青蓝外语 著
Amazon Web Services云计算实战(第2版)
Amazing!儿童英语自然拼读启蒙课(全5册)
青蓝外语 著
Amazon Web Services云计算实战(第2版)
American Flight Jackets:A History of U.S. Flyers Jackets from World War II to Desert Storm
John P. Conway;Jon A. Maguire
Amazon Web Services云计算实战(第2版)
Amazing!儿童英语自然拼读分级教材(全8册)
王玲
Amazon Web Services云计算实战(第2版)
Amazing!儿童英语启蒙情境认知图画书(全2册)
青蓝外语 著
Amazon Web Services云计算实战(第2版)
Amazing!自然拼读大巴士(全5册)
于丽娜 编著
Amazon Web Services云计算实战(第2版)
American Icon: The Fall of Roger Clemens and the
Teri Thompson、Nathaniel Vinton、Michael O'Keeffe 著
Amazon Web Services云计算实战(第2版)
Amelia Rules!: The Meaning of Life... and Other Stuff
Gownley, Jimmy
Amazon Web Services云计算实战(第2版)
American Poetry: The Twentieth Century, Volume 1: Henry Adams to Dorothy Parker
Library of America 著
Amazon Web Services云计算实战(第2版)
Amesim机电一体化仿真教程
梁全 谢基晨 聂利卫 编著
您可能感兴趣 / 更多
Amazon Web Services云计算实战(第2版)
论哲学生活的幸福——对卢梭系列遐想的思考两部曲
[德]亨利希·迈尔(Heinricha Meier)
Amazon Web Services云计算实战(第2版)
《法学方法论:萨维尼讲义与格林笔记》(法学方法论的奠基之作,拉伦茨《法学方法论》的起点,麦读译丛16·法学名家经典译丛02)
[德]弗里德里希·卡尔·冯·萨维尼著 杨代雄译 胡晓静校
Amazon Web Services云计算实战(第2版)
MBTI:潜能开发和人性攻略
[德]斯蒂芬妮·斯塔尔 著;磨铁文化 出品
Amazon Web Services云计算实战(第2版)
叙事本能:大脑为什么爱编故事
[德]维尔纳·西费尔/著 李寒笑 译
Amazon Web Services云计算实战(第2版)
英国文学的命运共同体表征与审美研究 文献卷:文学中的共同体——文学-政治介入的现实性
[德]玛戈·布林克;[德]西尔维亚·普里奇
Amazon Web Services云计算实战(第2版)
后英雄时代:一幅时代画卷 德国弗莱堡大学社会学教授乌尔里希 布吕克林力作呈现
[德]乌尔里希·布吕克林(Ulrich Br.ckling) 著;张文奕 译
Amazon Web Services云计算实战(第2版)
韩国流行音乐(西方韩国研究丛书)
[德]迈克尔·富尔(MichaelFuhr) 著;王丹丹 译
Amazon Web Services云计算实战(第2版)
吹牛大王历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[德]埃·拉斯伯;[德]戈·毕尔格
Amazon Web Services云计算实战(第2版)
法学中的体系思维与体系概念:以德国私法为例(第2版)法律人进阶译丛 经典阅读系列
[德]克劳斯-威廉·卡纳里斯(Claus-Wilhelm Canaris) 著;陈大创 译
Amazon Web Services云计算实战(第2版)
为什么只见树木不见森林:从简单现象到复杂系统
[德]迪尔克·布罗克曼(Dirk Brockmann) 著
Amazon Web Services云计算实战(第2版)
悉达多(诺贝尔文学奖得主赫尔曼·黑塞的代表作,一部关于人生信仰的救赎之作)
[德]赫尔曼·黑塞 著;周苇 译
Amazon Web Services云计算实战(第2版)
德米安:彷徨少年时《黑暗荣耀》推荐, 诺贝尔文学奖得主黑塞代表作
[德]赫尔曼·黑塞 著;周苇 译