Amazon Web Services 雲計算實戰, 2/e
[德] 邁克爾·威蒂格(Michael Wittig) [德]安德烈亞斯·威蒂格(Andreas Wittig)
- 出版商: 人民郵電
- 出版日期: 2023-05-01
- 售價: $779
- 貴賓價: 9.5 折 $740
- 語言: 簡體中文
- 頁數: 434
- ISBN: 7115609292
- ISBN-13: 9787115609298
-
相關分類:
Amazon Web Services
- 此書翻譯自: Amazon Web Services in Action 2/e
立即出貨
買這商品的人也買了...
-
$612開源雲 OpenStack 技術指南
-
$294$279 -
$690$538 -
$450Linux 開源網絡全棧詳解:從 DPDK 到 OpenFlow
-
$594$564 -
$556OpenStack 設計與實現, 3/e
-
$403邊緣計算技術與應用
-
$620$489 -
$588$559 -
$556高並發系統實戰派:集群、Redis 緩存、海量存儲、Elasticsearch、RocketMQ、微服務、持續集成等
-
$479$455 -
$599$569 -
$454人工智能安全基礎
-
$398業務敏捷 打造數智時代的高適應力組織
-
$383ChatGPT : 智能對話開創新時代
-
$439從 ChatGPT 到 AIGC:智能創作與應用賦能
-
$594$564 -
$658高級 Python 核心編程開啟精通 Python 編程世界之旅
-
$505python核心編程:從入門到實踐:學與練
-
$560Python 開發實例大全 上捲
-
$560Python 開發實例大全 下捲
-
$607前端工程化 : 基於 Vue.js 3.0 的設計與實踐
-
$750$593 -
$820$648 -
$479$455
相關主題
商品描述
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