1、深入了解 PostgreSQL 基于 AWS 云端的最佳實踐蔣 華AWS 資深合作伙伴解決方案架構師M:13501120586|E:議 程 原生 PostgreSQL on AWS 最佳實踐 Amazon RDS for PostgreSQL 服務概述及更新介紹 Amazon Aurora PostgreSQL 兼容版架構及核心功能概覽 Amazon Redshift(兼容 PostgreSQL 語法)云數據倉庫架構概覽 數據庫遷移及參考資源基于 AWS 云端部署 PostgreSQL 的不同方式借助 AWS 基礎架構在 Amazon EC2 上自建 PostgreSQL使用 AWS 的托管服
2、務Amazon RDS for PostgreSQLAmazon Aurora PostgreSQL 兼容版本Amazon Redshift(兼容 PostgreSQL 語法)電力、制冷、網絡機架服務器服務操作系統補丁數據庫軟件補丁數據庫備份擴展高可用數據庫軟件安裝操作系統安裝應用程序優化本地數據中心云端自建數據庫AWS 數據庫服務由客戶管理由AWS管理電力、制冷、網絡機架服務器服務操作系統補丁數據庫軟件補丁數據庫備份擴展高可用數據庫軟件安裝操作系統安裝應用程序優化電力、制冷、網絡機架服務器服務操作系統補丁數據庫軟件補丁數據庫備份擴展高可用數據庫軟件安裝操作系統安裝應用程序優化如何選擇部署方式
3、?AWS 數據庫(SQL/NoSQL)服務概覽關系型鍵值文檔緩存圖數據庫分類賬Amazon NeptuneAmazon RDSAmazonAurora商業開源Amazon ElastiCacheAmazon DynamoDBAmazon DocumentDBAmazon QLDB數據倉庫Amazon Redshift支持的主流版本 11.1-11.4 10.1-10.9 9.6.1-9.6.14 9.5.2-9.5.18 9.4.7-9.4.23 9.3.12-9.3.25支持的預覽版本 PostgreSQL 12 測試版 1 PostgreSQL 12 測試版 2Amazon RDS for
4、 PostgreSQLhttps:/ RDS 支持的 PostgreSQL 數據庫版本Amazon RDS 支持的 PostgreSQL 擴展和模塊PostgreSQL 支持很多 PostgreSQL 擴展和模塊。擴展和模塊針對 PostgreSQL 引擎提供的功能進行了擴展。以下部分說明了 Amazon RDS 針對主要 PostgreSQL 版本支持的擴展和模塊。數據庫預覽環境中 Amazon RDS 上支持的 PostgreSQL 版本 12.x 擴展和模塊Amazon RDS 上支持的 PostgreSQL 版本 11.x 擴展和模塊Amazon RDS 上支持的 PostgreSQL
5、 版本 10.x 擴展和模塊Amazon RDS 上支持的 PostgreSQL 版本 9.6.x 擴展和模塊Amazon RDS 上支持的 PostgreSQL 版本 9.5.x 擴展Amazon RDS 上支持的 PostgreSQL 版本 9.4.x 擴展和模塊Amazon RDS 上支持的 PostgreSQL 版本 9.3.x 擴展對 Amazon RDS 上 PostGIS 的 PostgreSQL 擴展支持使用 log_fdw 擴展SHOW rds.extensions;rds-postgres-extensions-PrimarySecondaryAmazon RDS 如何確保
6、高可用性(HA)?多可用區配置為生產數據庫提供企業級容錯解決方案每個數據庫主機都使用數據的完整副本來管理一組 Amazon EBS 卷實例由外部監控,以保持對仲裁的共識通過自動化或通過 Amazon RDS API 發起的故障轉移通過 DNS 重定向到新的主實例檢測基礎架構,而不是數據庫引擎問題StandbyPrimaryAvailability Zone 1Availability Zone 2AWS RegionApplicationsSynchronous replicationAmazon Route 53Amazon RDS 如何獲得讀取可伸縮性?使用 Amazon RDS 只讀副本
7、增加讀取容量緩解源數據庫的壓力 每個源數據庫最多創建 5 個副本 可在 Amazon CloudWatch 或 Amazon RDS 控制臺中監控復制滯后時間 支持單區域或跨區域只讀副本 無法創建級聯只讀副本RegionAsynchronous replicationAmazon RDS 如何規劃災難恢復(DR)?Region 1Availability Zone 2Synchronous replicationSynchronous replicationAvailability Zone 3Availability Zone 1Availability Zone 4Region 2Asyn
8、chronous replication 使用跨區域只讀副本作為備用數據庫,以在發生災難時進行恢復 可以為只讀副本配置多可用區部署,以減少恢復時間Amazon RDS 如何管理備份恢復?TransactionLogsRDSHostAmazon S3ApplicationAmazon EBS VolumeStandbyInstanceAmazon S3Region 1Region 2Availability Zone 1Availability Zone 2Primary instanceAmazon EBS Volume兩種選擇-自動備份和手動快照Amazon RDS 利用存儲在 Amazon
9、 S3 中的 Amazon EBS 快照對于自動備份,事務日志每 5 分鐘存儲在 Amazon S3 中以支持時間點恢復備份無性能損失,單可用區會暫掛IO快照可以跨區域復制或與其他帳戶共享存儲應用程序應用程序應用程序SQL事務緩存日志記錄SQL事務緩存日志記錄SQL事務緩存日志記錄SQL事務緩存日志記錄SQL事務緩存日志記錄SQL事務緩存日志記錄存儲存儲存儲存儲每種架構都受整體思維方式的限制傳統分布式數據庫堆棧Amazon Aurora 云原生數據庫的核心價值高性能和高可擴展性高可用性和高耐用性高度安全完全托管5 倍于標準 MySQL 的吞吐量3 倍于 PostgreSQL 的吞吐量性能相當而
10、成本僅為商用數據庫的1/10可以跨 3 個 AZ,最多 15 個可讀副本存儲 自增長,單實例可達 64TB可用性高于 99.99%具有容錯及自我修復能力跨 3 個AZ 復制 6 個數據副本數據持續備份到 S3實例故障轉移 小于30 秒通過 VPC 進行網絡級隔離,支持靜態存儲及傳輸時加密,集群中的備份、快照和副本自動加密無需擔心硬件、軟件補丁、設置、配置或備份等數據庫管理任務。會自動持續監控并將其備份到 S3,可以實現精細的 時間點恢復兼容 MySQL 和 PostgreSQL 的關系數據庫,為云打造。性能和可用性與商用數據庫相當,成本只有 1/10。Amazon Aurora 橫向擴展、分布
11、式架構MasterReplica讀/寫共享存儲卷只讀只讀SQL事務緩存SQL事務緩存SQL事務緩存AZ1AZ2AZ3 將 Log 機制推送至存儲層 4/6 寫入仲裁與本地跟蹤 寫入性能 讀取橫向擴展 可用區+1容錯機制 即時數據庫重做恢復不再需要在性能、可用性與持久性之間做出妥協!AuroraRWPeer Storage NodesCoalesceAmazon Aurora 存儲層工作原理Amazon Aurora 更少的寫操作Amazon Auroraupdate t set y=6;Block in Memoryt-v1t-v2t-v3AuroraStoraget-v1t-v2t-v3no
12、 checkpoint=no FPWBlock in MemoryPostgreSQLt-v1t-v2t-v3checkpointdatafilet-v1t-v2Full Blockt-v3WALarchive4K4K8Kupdate t set y=6;Amazon RDS for PostgreSQL 只讀副本工作原理PostgreSQLRWEBSSnapshot PostgreSQLROEBSupdateAmazon Aurora 只讀副本工作原理AuroraRW AuroraROupdateAurora Storageupdate in memoryAmazon Aurora 全局數據
13、庫Aurora StorageROApplicationRWApplicationROApplicationAvailability zone 1Availability zone 3Availability zone 2Region ARegion BAurora StorageROApplicationApplicationROApplicationAvailability zone 1Availability zone 3Availability zone 2RORWROApplicationRWApplicationRWReportingApplicationWrite log rec
14、ordsRead blocksAvailability Zone 1Availability Zone 3Availability Zone 2Aurora storagePrimary storageClone storageCloneROApplicationAmazon Aurora PostgreSQL 集群緩存管理RWApplicationROApplicationAsyncInvalidation&UpdateAvailability Zone 1Availability Zone 3Availability Zone 2Aurora storageROROROROapg_ccm_
15、enabled=on050,000100,000150,000200,000250,000300,000350,000400,0000601201802403003604204805406006607207808409009601020108011401200Transactions per Second(TPS)SecondsPGBench 20X RO/1X RW 160GB Cached-Failover at 600 SecondsBaselineCCM Enabled32 seconds340 secondsAurora Serverless 工作原理WARM POOL OF INS
16、TANCESAPPLICATIONAURORA STORAGEAURORAREQUEST ROUTERDATABASE END-POINTAURORA STORAGE 按需啟動,不使用時關閉 自動放大/縮小 擴展時對應用程序沒有影響 每秒支付,最少 1 分鐘 不常用的應用程序 新應用程序 可變工作負載 不可預測的工作負載 開發和測試數據庫 多租戶應用程序Aurora Serverless 使用場景Aurora Serverless 伴隨工作負載按需動態擴展1248163264128050010001500200025003000117334965819711312914516117719320
17、9225241257273289305321337353369385401417433449465481497513529545561577593609625641657673689705721TPSACU高性能易操作和兼容高可用性安全設計吞吐量是PostgreSQL的 2 到 3 倍每個實例高達64 TB的存儲減少寫抖動準同步副本自定義只讀終端節點增強的操作系統監控性能洞察自動擴展存儲連續備份和時間點恢復輕松配置/補丁PostgreSQL 的所有功能所有 RDS for PostgreSQL 擴展AWS DMS 支持的入站在不到30秒的時間內進行故障轉移客戶指定的故障轉移順序多達15個可讀的
18、故障轉移目標即時崩潰恢復可生存緩沖區緩存跨區域快照副本靜態加密(AWS KMS)傳輸加密(SSL)默認情況下,Amazon VPC行級安全CategoryAmazon RDS PostgreSQLAmazon Aurora PostgreSQLPerformanceGood performance3x or better performanceScalabilityUp to 5 read replicas.Lag in seconds.Up to 15 read replicas.Lag in millisecondsFailoverAround 60 secondsLess than 30
19、 secondsStorageScales up to 64 TB&up to 80k PIOPSPre-provisionScales up to 64 TB&no IOPS limitAuto-scales in 10 GB incrementsHigh AvailabilityMulti-AZ is available,Pay for 2 DB instances&2 copies of storage with MAZWrites 6 copies to 3 AZsPay for DB instances and only 1 copy of storageBackupTakes da
20、ily snapshot during backup window&captures transaction logsContinuous,asynchronous backup to S3(no backup windows)Instance TypesT2,T3,M3,M4,M5,R3,R4,R5T3,R4,R5PricingPay for database instances&storagePay for database instances,IO&storageDatabase Versions 9.3,9.4,9.5,9.6,10,11,12(preview)9.6,10Innova
21、tions with AuroraFast Database CloningAuto-scaling Read ReplicasQuery Plan Management、Parallel Query Serverless Global DatabasePostgreSQLColumnarMPPOLAPAmazon RedshiftLoadUnloadBackupRestore大規模并行、非共享、列存儲架構領導節點SQL 終端節點元數據存儲協調并行 SQL 處理 計算節點本地、列存儲并行執行查詢數據加載/卸載、備份/恢復 Spectrum 節點直接針對 S3 執行查詢SQL clients/B
22、I tools128GB RAM16TB disk16 coresJDBC/ODBC128gb ram16TB disk16 cores計算節點1128gb ram16TB disk16 cores計算節點2128gb ram16TB disk16 cores計算節點N領導節點Amazon S3.1234NAmazonRedshiftSpectrumLoadQueryAWS Database Migration Service 數據庫遷移服務簡單易用最少停機時間持續數據復制多數據源支持運行可靠2.關系型數據庫1.非關系型數據庫3.其他數據源 在停機時間盡可能短的狀態下將您的數據庫遷移至 AWS
23、 已有超過 180000 個數據庫使用 AWS DMS 完成遷移https:/ AuroraAmazon DynamoDBAmazon RedshiftAmazon DocumentDBAmazon RDSAWS Database Migration ServiceAmazon S3何時使用 AWS DMS 數據庫遷移服務?遷移遷移關鍵業務系統從 Classic 網絡遷移到 Amazon VPC遷移數據倉庫到 Amazon Redshift歸檔舊數據升級小版本合并多個數據分片到 Amazon Aurora復制數據從而在云端分析數據從 NoSQL 遷移到SQL,或者從 SQL遷移到 NoSQL,
24、或者從 NoSQL 遷移到 NoSQLAmazon S3 Amazon DynamoDBAmazon RedshiftAmazon S3 Amazon Aurora源端目標端Amazon DocumentDBAmazon AuroraAmazon RDSAmazon RDSAmazon Elasticsearch ServiceAmazon KinesisData StreamsAWS DMS 數據庫遷移各階段工作量評估階段工作描述自動化工具工作量(%)1評估AWS SCT22數據模式轉型AWS SCT&AWS DMS143應用程序轉換修復AWS SCT254腳本轉換AWS SCT75與第三方
25、應用程序集成36數據遷移AWS SCT&AWS DMS47全系統的功能測試298性能調整AWS SCT29集成和部署710培訓、知識211文檔和版本控制212后期生產支持3步驟 1:轉換或復制數據模式源端本地數據中心,Amazon EC2或Amazon RDSAWS SCT原生工具云端數據庫或數據倉庫步驟 2:遷移數據AWS SCTAWS DMS復制和轉換復制數據庫數據倉庫源端本地數據中心,Amazon EC2或Amazon RDS云端數據庫或數據倉庫AWS DMS 數據庫遷移過程AWS 參考資源AWS 數據庫https:/ RDS 用戶指南https:/ Aurora 用戶指南https:/ Redshift 文檔https:/ Database Migration Service 文檔https:/