內容簡介
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的複雜體系,以鞏固你的知識。
-----Ben Whaley AWS社區英雄和圖書作者
作者解釋複雜概念的能力是本書的真正優勢。
-----Antonio Pessolano Consoft Sistemi 公司
本書包含幫助你有效學習的有用的示例、圖標和資料。
-----Christof Marte Daimler-Benz 公司
本書用簡單的語言很好地解釋了一些關鍵服務,這樣你就能掌握深入挖掘AWS所需的必要知識。
-----Ryan Burrows Rooster Park Consulting 公司
目錄
第 一部分 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