第1章 谁应该使用云计算 2
1.1适应网络未来的云计算 2
网络=水、电等民生资源 2
云计算就像把发电机交给专责发电厂 2
云计算是因为有这样的需求而诞生 2
流言终结者:云计算其实不是什么 3
1.2云计算的具体服务内容 4
如何定义云计算 4
通过云端服务让系统运算升级 5
IaaS(Infrastructure as a Service) 5
PaaS(Platform as a Service) 6
SaaS(Software as a Service) 6
1.3云计算带来的优势竞争力 7
传统运算架构的局限 7
云计算更有可伸缩性 8
云计算更节省成本 8
云计算更可用、更持久 9
云计算商业性优点快览 10
1.4使用云计算的风险评估 10
厂商锁定(vendor locks in)考虑 10
部署可用性考虑 10
网络稳定性考虑 11
数据安全性考虑 11
数据机密性考虑 11
1.5适合使用云计算的情境 12
云计算技术性优点 12
新创公司(Startup companies) 12
高可扩展性的网络应用 12
大量的运算需求 12
备份与灾害恢复 13
开发与测试 13
第2章 云计算领导者AWS 15
2.1 AWS是什么 15
Amazon与AWS 15
AWS的组合式服务概念 15
AWS特色一览 16
为什么我们尚未善用AWS 17
2.2案例:采用AWS创造更多利润 17
新兴网站偏爱使用EC2 17
Zynga用AWS应付用户成长 18
PlayFish用AWS快速推出新游戏 18
Twitter用AWS管理存储空间 18
Reddit用AWS构建数据库 19
MySpace用AWS测试新服务 19
Justin.tv用AWS节省单位成本 19
Smugmug用AWS省下设备费 19
Animoto用AWS应付瞬间超大流量 19
Newsweek用AWS开源节流 19
2.3如何开始使用AWS 20
地区和所在地 20
申请AWS账号 20
申请个别服务 23
2.4 AWS上使用的凭证和识别码 26
访问密钥(Access Keys) 26
X.509凭证 28
密钥对(Key Pairs) 29
AWS账号和密码 29
AWS MFA(Multi-Factor Authentication) 30
AWS账号识别码和标准化用户识别码 31
第3章 AWS上手必备工具 33
3.1 AWS服务快速比较 33
3.2使用AWS的一般注意事项 34
因特网传输收费节约要诀 34
失败重试时的要诀 35
幂等函数避免数据不一致 35
注意服务器时间校定 36
避免XML交换格式错误 36
免费使用层级(AWS Free Usage Tier) 36
AWS识别及访问管理(Identify and Access Management) 37
AWS的访问策略语言(Access Policy Language,APL) 37
3.3 AWS图形接口工具 38
AWS Management Console 38
AWS Toolkit for Eclipse 39
S3fox 46
Elasticfox 46
jetS3t 46
AWS收费计算器 46
3.4 AWS应用程序接口 46
EC2 API Tools和EC2 AMI Tools 47
安装ec2-api-tools 47
安装ec2-ami-tools 49
3.5 AWS SDK(开发套件) 50
AWS已经针对手持设备推出SDK 50
AWS SDK for Java 50
AWS SDK for.NET 51
AWS SDK for PHP 51
AWS SDK for Android 52
AWS SDK for iOS 52
AWS开发中心 52
s3sync 53
boto 54
jclouds 54
typica 54
cloud tools 55
s3tools 55
3.6 AWS的其他资源 55
alestic.com 55
AWS的blog 55
AWS的开发者文件 56
其他资源的网址 56
第4章 AWS基础:S3与云端存储服务 58
4.1 AWS的存储功能 58
4.2一般性的存储功能:S3 59
S3解决动态数据存储问题 59
S3的特性 60
容器与对象 61
容器的地区(region) 63
低备份存储(Reduced Redundancy Storage) 64
对象版本 65
标头(headers)及其他数据 66
访问控制列表(Access Control List) 67
对象名称浏览(key listing) 67
多部分上传(Multipart Upload) 68
日志记录(logging)和范围读取(Range) 68
用AWS Management Console开始操作S3 69
4.3简单数据库:SimpleDB 77
NoSQL的潮流 77
SimpleDB的特性 79
SimpleDB的相关名词 81
再回顾一致性 82
SimpleDB的查询语言 83
数值数据 85
日期数据 86
排序 86
计数 87
引号(quoting)规则 87
保留字 87
查询的调校 88
数据分割 89
使用AWS SDK for Java操作SimpleDB 89
建立Domain 91
列出Domain清单 91
查看Domain元数据 91
读取数据 92
新增或更新数据 92
条件式新增(更新)数据 93
查询数据 95
删除数据 95
条件式删除数据 96
批处理更新与删除 96
删除Domain 97
实际应用诀窍 97
4.4数据库的另一选择:RDS 98
实际的存储需求 99
RDS的概念:DB Instance 100
维护与备份 105
多所在地部署 106
安全组 107
设置数据库安全组和数据库参数组 109
建立DB Instance 111
使用与设置DB Instance 112
备份与恢复 114
建立读取副本 116
从原本的MySQL移植到RDS 116
第5章 AWS核心:EC2与其相关服务 118
5.1什么是EC2 118
EC2是AWS架构体系中的核心服务 118
从EC2服务特色看云计算实质 119
使用EC2的优点 119
EC2开机?亚马逊机器映像文件(AMI) 120
5.2 EC2虚拟机的基础结构 120
EC2的AMI root device比较 121
EC2的机器类型比较 122
EC2机器收费标准比较 122
EC2新机器类型:集群运算虚拟机 123
EC2新机器类型:集群运算GPU虚拟机 124
32位或64位?这是个大问题 125
5.3 EC2虚拟机的延伸结构 125
Instance Storage(虚拟机存储) 125
EBS(Elastic Blocking Store) 126
在EC2上使用微软Windows系统 127
EC2云端机器的地区与所在地 128
5.4 EC2的一些延伸问题与解决 129
EC2的IP地址及DNS名称问题与解决 129
解决利用EC2传送邮件的需求 131
EC2的防火墙安全组(security group) 131
元数据(metadata)及用户数据(user-data) 132
EC2上怎么分配I/O资源 133
5.5 EC2开机操作实战范例 133
登录AWS Management Console 133
申请EC2的Key Pairs 135
管理安全组 137
开启一台虚拟机 140
进入之前建立的机器 147
第6章 AWS高级:实现EC2部署策略 152
6.1使用公开EBS-backed AMI 152
如何搜索公开的AMI 152
用EBS root partition建立EBS-backed AMI 155
用挂载的EBS volume建立EBS-backed AMI 156
6.2建立S3-backed AMI 160
用来源机器的root device建立S3-backed AMI 161
使用alestic的脚本建立S3-backed AMI 163
使用loopback文件建立S3-backed AMI 164
6.3 AMI实现疑难问题解决 168
做出无法开机的AMI怎么办 168
清理资源 169
虚拟机(EC2 instance)的属性修改 169
AMI的属性修改 174
6.4 AMI有效实战策略分析 174
一般性AMI 175
特定性AMI 176
参考RightScale的实现流程 177
6.5 EC2自动初始化机制 177
EC2的user-data 178
使用ec2-run-user-data 178
使用runurl 179
管理EC2虚拟机常用的工具 181
卷标功能 182
第7章 AWS架构关键1:组建高可扩展性系统 184
7.1高可扩展性和云计算 184
什么是可扩展性(scalability) 184
可扩展性为什么重要 185
传统模式:向上延展(scale up) 185
传统模式:向外延展(scale out) 185
云计算解决延展问题 186
追求高可扩展性 186
常见的高可扩展性架构模式 187
如何实现有效率同步联机 188
7.2实现负载平衡的做法 189
负载平衡的选择 189
Round robin DNS 190
软件的负载平衡 191
7.3弹性负载平衡(ELB) 191
负载平衡器(Load Balancer)的概念 192
地区和所在地 193
安装Elastic Load Balancing APITools 193
建立一个HTTP负载平衡器 195
让负载平衡器分配请求到多个所在地 197
暂停(disable)所在地 199
拆掉负载平衡器(tear down a Load Balancer) 201
建立定时的黏着联机状态(Sticky session) 201
建立自定义的黏着联机状态(Sticky session) 203
7.4自动延展(Auto Scaling) 205
Auto Scaling的概念 205
自动延展组(Auto Scaling Group) 206
触发器(trigger) 207
重新平衡(rebalancing) 208
安装Auto Scaling APITools 209
建立一个自动延展的EC2集群 210
建立多所在地自动延展的EC2集群 213
合并自动延展组 214
删除自动延展组 215
停止使用自动延展组 215
第8章 AWS架构关键2:异步消息构建策略 218
8.1什么是异步消息传递 218
异步的好处 218
“消息导向中间件”简介 218
AWS中的消息传递服务 220
8.2 AWS的简单队列服务(SQS) 220
使用SQS的优点 221
使用SQS要注意的地方 221
消息队列Queue 222
可读取(Visibility)和读取逾时(Visibility timeout) 223
SQS里的消息的生命周期 224
SQS的访问控制 224
在SQS使用访问权限策略语言的额外限制 225
使用AWS SDK for Java操作SQS 225
建立Queue 226
查看Queue 227
查看Queue的属性 228
更改Queue的属性 229
更改Queue的访问权限 230
从Queue收送消息 232
更改读取逾时以及删除消息 234
删除Queue 235
8.3 AWS的简单通知服务(SNS) 235
建立主题(Topic) 236
订阅主题 238
发布消息到主题 240
停止订阅 242
删除主题 242
在SNS使用访问权限策略语言的额外限制 243
第9章 AWS架构关键3:高可用性的云计算 246
9.1为何高可用性重要 246
改进系统架构以适用于云计算 246
云计算有新的策略方法 247
AWS与传统成本的比较 247
9.2实现高可用性的基本AWS应用 249
使用多重所在地(multiple availability zones) 249
使用EIP(Elastic IP Addresses)实现重定向 249
9.3 EC2 instances挂掉了如何处理 254
EC2虚拟机没有回应的检查步骤 254
快速恢复挂掉的EC2虚拟机 257
9.4 CloudFront改进用户体验 261
提供用户最快速的网站使用经验 261
内容传递网络(CDN) 262
CloudFront的工作原理 263
文件逾时(expiration)的处理策略 266
文件移除(eviction)与主动清除 267
发布单位(distribution) 268
使用自定义来源服务器(Custom Origins) 268
从S3改用CloudFront 270
用AWS Management Console操作CloudFront 272
文件的URL 277
访问日志 278
服务流媒体(streaming media) 279
服务私有内容(private content) 279
9.5管理动态IP地址的方法 284
使用EIP(弹性IP地址) 285
使用动态DNS(Dynamic DNS) 285
使用Hosts文件 286
9.6用Amazon CloudWatch监视系统健康 286
CloudWatch的概念 288
使用CloudWatch 291
安装CloudWatch API Tools 293
用mon-list-metrics列出测量项目 295
用mon-get-stats读取统计数据 295
第10章 AWS活用策略:企业云端优化方案 297
10.1保护云端数据安全 297
数据传输的问题 297
数据存储加密 298
善用EC2的安全组(security groups) 299
定期更新OS的安全性更新 300
10.2如何善用花在AWS上的每块钱 300
使用EC2 Reserved Instances 301
使用RDS Reserved虚拟机 305
使用Spot Instances处理大量数据 306
10.3用分布式运算处理大量数据 312
MapReduce与Hadoop 312
云端上的Hadoop: EMR (Elastic MapReduce) 313
数据安全性 315
Hadoop 315
工作流程(Job Flow) 317
JSON配置文件(JSON Configuration Files) 321
用AWS Management Console操作EMR 322
使用Elastic MapReduce Ruby Client 328
使用初始程序 330
除错流程 332
批处理执行工作流程 337
其他常见的操作 338
一般注意事项 339
10.4用虚拟私有云扩张既有系统 340
VPC的名词 341
地区和所在地 341
VPC的特性 342
VPC收费 342
建立VPC的流程 343
用命令行工具建立VPC资源 343
建立VPC 344
建立子网段 345
建立客户端网关 347
建立VPN网关 348
建立VPN联机 349
建立VPN连接 351
在VPC里面创建EC2虚拟机 352
使用特定的IP地址 352
使用DHCP功能 353
删除VPC 355
更换VPC通道证书 356
附录A AWS其他服务接口 358
Amazon Beanstalk 358
Amazon Simple Email Service 358
AWS CloudFormation 358
Amazon弹性付费服务(Amazon Flexible Payments Service) 358
Amazon开发者付费服务(Amazon DevPay) 359
Amazon商务实现服务(Amazon Fulfillment Web Service) 359
Amazon人力外包(Amazon Mechanical Turk) 359
AWS输入/输出(AWS Import/Export) 359
AWS商业支持(AWS Premium Support) 360
Alexa Top Sites与Alexa Web Information Service 360
Amazon Route 53 360
解决方案提供商(solution providers) 360
附录B AWS竞争对手介绍 362
Google App Engine(PaaS) 362
Google App Engine和AWS如何取舍 362
Microsoft Windows Azure Platform(PaaS) 362
Rackspace Cloud 363
公有云和私有云 363