预购商品
书目分类
特别推荐
第一部分 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
邁克爾·威蒂格(Michael Wittig)和安德莉亞斯·威蒂格(Andreas Wittig)是專注於Amazon Web Services(AWS)的軟體工程師和DevOps工程師。2013年,這對兄弟將一家德國銀行的整個IT基礎設施遷移到了AWS上。這在德國銀行界算是首例。自2015年以來,他們一直擔任顧問,説明客戶在AWS上遷移和運行工作負載。他們專注於基礎設施即代碼、持續部署、無伺服器、Docker和安全等領域,也在亞馬遜雲上構建SaaS產品。兩人都是AWS認證的專業級AWS解決方案架構師(AWS Certified Solutions Architect-Professional)以及AWS認證的專業級DevOps工程師(AWS Certified DevOps Engineer-Professional)。此外,他們還喜歡通過本書、博客以及線上和現場培訓(如AWS in Motion)與他人分享知識,教授他人如何使用AWS。
客服公告
热门活动
订阅电子报