中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AWS 數據庫(七)

發布時間:2020-07-03 06:58:53 來源:網絡 閱讀:1109 作者:wzlinux 欄目:云計算

數據庫概念

關系型數據庫

  • 關系數據庫提供了一個通用接口,使用戶可以使用使用 編寫的命令或查詢從數據庫讀取和寫入數據。
  • 關系數據庫由一個或多個表格組成,表格由與電子表格相似的列和行組成。
    • 以行列形式存儲數據,行包含一個條目的所有信息,列是分離不同數據點的屬性
    • 架構固定,輸入數據前要先鎖定列
    • 查詢方式是SQL語句
    • 支持垂直擴展屬性
    • 每一張表都有主鍵, 通過引用記錄的主鍵,表中的一條記錄可以與另一個表中的記錄相關。這個指針或引用被稱為外鍵。
  • 關系數據庫可以分為聯機事務處理OLTP 和 聯機分析處理OLAP,具體取決于表的組織方式以及應用程序如何使用關系數據庫。
    • OLTP - 經常編寫和更改數據(例如數據輸入和 電子商務)的面向事務的應用程序,OLTP事務頻繁發生但相對簡單
    • OLAP - 應用于數據倉庫的領域,指的是報告或分析大型數據集。OLAP事務 的發生頻率要低得多,但要復雜得多
    • 大型應用程序經常混合使用OLTP和OLAP數據庫。一個數據庫作為其OLTP事務的主生產 數據庫,另一個數據庫作為他們的數據倉庫為OLAP。
  • 數據庫包括: MySQL,PostgreSQL,Microsoft SQL Server和Oracle
  • SQL 數據庫的默認端口

    • Oracle: 1521
    • MS SQL : 1433
    • MySQL : 3306
    • DB2: 5000

      數據倉庫

  • 數據倉庫為可以來自一個或多個源的數據的中央儲存庫。
  • 此數據存儲庫通常是專用類型的關系數據庫,可用于通過OLAP進行報告和分析,組織通常使用數據倉庫來編譯報告并使用高度復雜 的查詢搜索數據庫。

NoSQL數據庫

  • 相比關系型數據庫,NoSQL更加簡單易用,更加靈活,
  • 傳統數據庫在單臺服務器外擴展成本極高,而NoSQL可以在商用硬件上實現水平伸縮性
  • 使用眾多模型(如鍵值對、文檔和圖表)中的一種來存儲數據
  • 數據結構
    • 集合 Collection : 相當于表
    • 文檔 Document: 相當于行
    • 鍵值 Key Value Pairs: 相當于列
  • 動態的架構,行無需包含與每個列對應的數據
  • 查詢更關注文檔集合
  • 支持水平擴展屬性
  • NoSQL的其他特性
    • 對于某些應用程序可以替代關系型數據庫
    • 支持以高可用性處理大量數據
    • 可以形成一個包含不同實施方案和數據模型的大類別
    • 具備分布式容錯的能力
    • NoSQL 可以提高靈活性、可用性、擴展性和高性能
  • 主要的NoSQL數據庫包括
    • EC2: Cassandra、Hbase、RedisMongoDB、Couchbase、Riak
    • AWS托管:DynamoDB、ElastiCache(Redis)、Elastic Map Reduce(HBase)
  • NoSQL 數據庫常用端口
    • MongoDB:27017
    • Redis:6379
    • Memcached:11211
  • 采用NoSQL主要考慮幾個限制
    • 應用程序的事務支持
    • ACID合規(ACID=原子性、一致性、隔離性和持久性)
    • 聯接需求
    • SQL需求
  • 常見場景:
    • 排行榜、快速導入點擊流或日志數據、購物車臨時數據需求、熱表、元數據或查找表、會話數據

數據庫選擇

  • 將非關系型數據放在NoSQL中(如DynamoDB)
  • 將技術與工作負載匹配,從各種關系型數據庫, NoSQL數據庫,數據倉庫和其他針對搜索優化的數據存儲中選擇。
  • 數據庫選擇要考慮的事項:
    • 讀取和寫入要求
    • 總存儲容量
    • 典型對象大小及其訪問特性
    • 持久性需求
    • 延遲要求
    • 同時支持的最大用戶量
    • 查詢特性
    • 所需完整性控制強度

Amazon RDS存儲關系型數據

RDS綜述

  • RDS是一個全托管的數據庫

AWS 數據庫(七)

  • 開發人員可以專注于查詢結構和查詢優化
  • 減輕運維負擔包括數據庫遷移、備份和恢復、修補、軟件升級、存儲升級、頻繁服務器升級、硬件故障處理
  • RDS可以通過公用的客戶端軟件連接并執行SQL操作,包括使用相同的工具來查詢,分析,修改和管理數據庫。例如,當前的提取,轉換, 加載(ETL)工具和報告工具

RDS 數據庫實例

  • 數據庫實例是云上專用網段中部署的隔離的數據庫環境
  • 每個實例運行了一個商業或者開源的數據庫引擎,包括MySQL,PostgreSQL,MS SQL,Oracle,MariaDB以及AWS Aurora 六種。
  • 可以通過API創建和管理RDS實例
  • 可以利用AWS工具或者數據庫引擎本身的工具將數據從本地遷移到AWS上
  • 每個用戶默認最多托管40個RDS數據庫
  • 每個實例上只能運行1個Oracle和30個MS SQL數據庫,其余沒有限制
  • RDS支持預留實例,且只支持區域預留,可用于多可用區部署和只讀副本
  • 使用Parameter Group 對數據庫參數進行設置

存儲選項

  • RDS構建在EBS上
  • 通過預配置支持最大16TB (MSSQL) - 32TB,32000 IOPS - 40000 IOPS
  • 支持HDD,通用SSD和預配置IOPS SSD 三種類型

備份與恢復

  • 自動備份
    • 備份存儲在S3中
    • RDS備份整個數據庫實例,為它創建存儲卷快照
    • 自動備份建期間IO會掛起3-5秒鐘,但對高可用部署的數據庫不受影響
    • 自動備份默認開啟且保留1天(API或CLI創建)或者7天(控制臺創建),最大可保留35天,自動刪除
    • 自動備份支持時間點恢復功能,最小間隔為5分鐘
    • 刪除實例時所有自動備份都會被刪除
    • 可以禁用自動備份,但是非常不建議。 禁用自動備份后,即使再重新啟用,被禁用的期間將不可恢復。
  • 手動數據庫快照
    • 快照存儲在S3中
    • 隨時手工對數據庫進行快照
    • 默認永久保留除非手工明確刪除
    • 使用多可用區部署可以最小化快照的影響,因為快照可以從備用數據庫發起,只是RPO會有一定影響
  • 恢復
    • 所有RDS數據庫恢復都會創建一個全新的數據庫實例
    • 還原時只會關聯默認的數據庫參數和安全組參數被關聯,需要重新手工設置
    • 不支持將VPC內的數據恢復到VPC外部

多可用區的高可用

  • 高可用是傳統關系型數據庫部署的難點
  • 利用RDS可以輕松實現,實現最短幾分鐘的RPO和RTO要求
  • 開啟多可用區部署后,自動在不同可用區創建備用RDS實例,并利用數據庫實例URL endpoint來實現DNS尋址
  • RDS 數據會同步復制到從數據庫,復制本身產生的數據傳輸不收費
  • 支持故障自動切換和手動轉移,轉移時間為1-2分鐘
  • 跨可用區部署后由于數據同步復制,會有一定的性能影響,備份是也會有更長的延遲
  • 從數據庫不能用作只讀副本提升IO

AWS 數據庫(七)

規模擴大或縮小

  • RDS支持垂直擴展
  • 數據庫實例的資源大小可以隨需求決定,支持1-32 vCPU,1-244GB Memory,用戶可以更改實例大小,RDS會自動完成數據遷移
  • RDS采用數據庫參數和數據庫選項對數據庫實例進行配置,每次更改都需要重啟實例
  • SQL Server不支持存儲擴展
  • 可以通過數據庫分片技術實現有限度的水平擴展
  • RDS 支持實時配置更多的存儲而無需停機
  • RDS IOPS(除SQL Server)還可以擴展數據庫實例的吞吐量,1000 到 30000 IOPS分別對應100GB 到 6TB的存儲空間
  • 可以在RDS前端的EC2選擇放置Redis 緩存服務,EC2 首選自我管理型緩存解決方案

AWS 數據庫(七)

只讀副本擴展

  • RDS允許從主數據庫創建一個或多個只讀副本來分流讀取事務
    • 讀取繁重的任務
    • 當主數據庫不可用時處理讀取操作
    • 離線數據分析場景
  • MySQL、PostgreSQL、MariaDB和Aurora支持只讀副本
  • 要使用只讀副本,需要先開啟自動備份功能
  • 只讀副本是異步的
  • 可以為只讀副本創建只讀副本,每個數據庫最多創建5個只讀副本,Aurora最多15個
  • 可以在多可用區部署只讀副本,每個只讀副本都有自己的URL Endpoint
  • 只讀副本可以被提升為獨立的數據庫,但是不能用來做災備

RDS安全性

  • IAM權限管理
    • 采用IAM用戶來對數據庫進行操作
    • AMI可以控制每一個單獨的用戶對RDS操作的權限
    • RDS初次創建時會基于AWS開發人員賬戶創建一個有主用賬戶并成為數據庫根管理員權限,他可以單獨分配給不同數據庫實例的主用戶名和密碼
    • 可以使用主用戶憑證連接數據庫
    • 接收RDS重要事件通知
  • 網絡隔離
    • RDS實例需要創建在VPC的私有子網中
    • 可以使用IPSec ×××網關將RDS連接到現有的企業內部的IT基礎架構中
    • 在多可用區部署時,可以創建全局子網組,這樣在創建RDS時只需要制定可用區即可從全局子網組中分配響應的子網和IP地址
    • 所有從VPC外部的EC2或者Internet對RDS的訪問,都必須經過×××或堡壘機實現,并且堡壘機需要充當SSH Bastion的角色
  • 自動補丁
    • RDS軟件始終與最新的補丁保持同步
    • 默認首周需要30分鐘進行維護
    • 建議每一周需要計劃30分鐘的維護時間以完成補丁操作
    • 一般僅有規模計算相關的補丁需要脫機執行,通常每幾個月發生一次
  • RDS增強型監控
    • 增強型監控能夠捕獲 RDS 實例的系統級指標,如 CPU、內存、文件系統和磁盤 I/O 等
    • 最多可以查看所有指標在 1 個小時之前的性能值,粒度最高為 1 秒
    • RDS 增強型監控提供了一系列將以 JSON 有效負載形式發送到您的 CloudWatch Logs 賬戶的指標。JSON 有效負載會按照上次為 RDS 實例配置的粒度進行發送。
    • 增強型監控在 CloudWatch Logs 中配置的默認保留期是 30 天。
  • RDS采用四層安全模型
    • RDS安全組
      • 用于控制傳入和傳出數據庫實例的流量,默認情況下不能進行網絡訪問,但可以通過ACL設置允許特定IP端口進行訪問。
    • 數據庫安全組
      • 控制對VPC外部數據庫實例的訪問
      • 默認情況下RDS必須在VPC內才能啟動,但是仍然存在VPC外部托管RDS的情況
      • 數據庫安全組僅適用于入站流量,目前不允許數據庫安全組有出站流量。
      • 可以使用RDS API 或 AWS 控制臺的 RDS部分創建數據庫安全組
      • 安全組來控制對RDS的數據庫實例訪問, 類似于EC2安全組,但不可以互換
      • 默認拒絕所有訪問,所有允許權限都需要顯式聲明
      • 可以授權IP或安全組訪問
      • 僅允許訪問數據庫服務器端口
      • 數據庫安全組無需指定目標端口,默認由實例自動定義
      • 可以在不重啟數據庫實例的情況下對安全組策略進行更新

AWS 數據庫(七)

  • VPC安全組 - 控制對VPC內數據實例的訪問
    • 允許一個特定的來源(組)訪問VPC中與該VPC安全組關聯的數據庫實例, 可以是地址范圍也可以是VPC安全組
    • 必須使用EC2 API或VPC控制臺的Security Group選項才能創建VPC安全組

AWS 數據庫(七)

  • EC2安全組
    • 控制對EC2實例的訪問
  • RDS 數據加密
    • RDS加密適用于所有數據庫,除了 MS SQL Express版
    • RDS 加密僅適用于部分實例類型
    • 可以對靜態RDS數據庫實例和快照進行加密,而后自動備份、只讀副本和快照均通過AES-256加密
    • 使用SSL\TLS對應用程序和數據庫實例之間連接進行加密
    • 加密僅能在創建數據庫時指定,不能事后對其加密,但是可以通過恢復數據庫快照時加密這個復制版本
    • 加密RDS連接
      • 預置RDS實例時,會創建SSL證書并在數據庫實例上安裝該證書
      • 負責加密傳輸中的數據
      • 使用SSL/TLS加密應用程序與數據庫實例之間的連接,但不應依賴于數據庫本身的身份驗證
      • 將數據庫實例配置為僅接受加密連接
    • 加密RDS資源
      • 啟用RDS數據庫實例加密選項,可以加密靜態RDS實例和快照,自動備份和只讀副本
      • 利用KMS管理RDS資源的密鑰
      • 采用AES-256加密算法進行加密,RDS以透明方式進行訪問驗證和解密以降低性能影響
      • RDS將特定于Oracle 或 MySQL這些數據庫包加密數據,稱為透明數據加密(TDE),TDE使用在數據庫應用程序中創建的密匙保護數據。

AWS Redshift

概念

  • 完全托管的PB級數據倉庫服務
  • 基于SQL-based 設計的關系型數據庫
  • 基于行業標準的PostgreSQL,因此大多數現有的SQL客戶端應用程序只能進行極少的更改。
  • 針對OLAP設計的高性能數據分析和報告
  • Redshift使您可以使用標準SQL命令快速查詢結構化數據的功能,以支持在大型數據集上進 行交互式查詢。
  • 使用柱狀存儲,數據壓縮和區域映射等技術減少查詢所需的IO量。
  • 通過ODBC或JDBC連接與各種數據加載,報告,數據挖掘和分 析工具集成。
  • Redshift負責管理設置,操作和擴展數據倉庫所需的工作,從設置基礎架構容量到自動執 行備份和修補等持續管理任務。
  • Redshift會自動監控您的節點和驅動器,以幫助從故障中恢復。

集群

  • 集群由一個領導者節點和多個計算節點組成
  • 支持從160GB - 1PB甚至更大的
  • 最多支持128個計算節點
  • Redshift集群不能使用競價實例
  • 僅能在一個可用區部署
  • 客戶端只與領導者節點交互,計算節點對外部是完全透明的
  • Redshift目前支持6種節點類型,分為兩大類
    • 密集計算型 - 最大支持SSD 326TB
    • 密集存儲型 - 最大支持HDD 2PB
  • 每個集群都包含一個或多個數據庫,并且分布在各個計算節點中,每個節點的數據庫數據都是同步的
  • 計算節點的磁盤存儲會分片,切片通常在2-16之間,所有節點都會參與并行查詢。
  • 通常計算節點越多,查詢性能越強
  • 可以隨時調整節點大小和類型,調整后都會創建一個新的集群并將數據遷移過去,調整期間數據庫只讀。

AWS 數據庫(七)

表設計

  • 每個Redshift表都可以指定表名稱、列及其數據類型等。
  • 數據類型:
    • 常見數據類型包括: INTEGER,DECIMAL和 DOUBLE,文本數據類型(如CHAR和VARCHAR)以及日期數據類型(如DATE和TIMESTAMP)
  • 壓縮編碼
    • 首次將數據加載入新表時,自動對數據進行采樣并且為每列選擇最佳壓縮方案
  • 分發策略
    • 創建表格時指定如何在集群的節點進行切片進行分發,以及使用哪種查詢模式
    • 分發風格對查詢性能,存儲要求,數據加載和維護影響很大
      • EVEN 分發: 默認,對數據以統一方式進行切片和分發
      • Key 分發:基于某一列的值進行分發,匹配的值會存儲在一起
      • All 分發: 將整個表完整的分發到每個節點
  • 排序Key
    • 在創建表時指定一個或多個列作為排序key,這樣在處理一定范圍的查詢時可以跳過大量的塊
    • 表格的排序Key可以復合和交錯,查詢使用前綴可以讓復合排序的查詢更加高效

數據加載

  • 使用標準的SQL Intert/update進行表的創建和修改記錄
  • 在Redshift中使用COPY命令是一個更高效的方式,如從S3或者DynamoDB中進行批量數據加載
  • 大量數據加載完成后,建議使用VACUUM命令重新組織數據并用ANALYZE來統計更新表格統計信息
  • UPLOUD命令可以從Redshift中導出數據

查詢數據

  • 也是用標準的SQL Select命令進行查詢
  • 對于多用戶的大型Redshift,可以使用WLM工作負載管理對查詢進行排隊,WLM可以對每個隊列設置并發級別。
  • 使用Redshift Spectrum
    • 可以對 Amazon S3 中 EB 級非結構化數據運行查詢,而無需進行加載或 ETL 操作。
    • 當您發布查詢時,查詢會進入 Amazon Redshift SQL 終端節點,該終端節點會生成查詢方案并對其進行優化。
    • Amazon Redshift 會確定哪些數據存儲在本地以及哪些數據存儲在 Amazon S3 中,然后生成一種方案來盡可能減少需要讀取的 + Amazon S3 數據量,從共享資源池中請求 Redshift Spectrum 工作線程來讀取和處理 Amazon S3 中的數據。
    • Redshift Spectrum 可根據需要擴展到數千個實例

備份快照

  • 自動快照到期后會自動刪除,設置時間為1-35天
  • 支持跨區域快照,手工快照可跨區域甚至跨賬戶存儲,需要手工明確刪除
  • Redshift快照和備份數據存儲在S3中
  • 免費的快照存儲空間與當前節點容量相當,所以需要及時清除不需要的快照文件

安全

  • 安全級別
    • 基礎架構級別安全,使用IAM來限制用戶的可執行操作及生命周期
    • 網絡級別安全, 將Redshift部署到私有的VPC中(必須),并利用ACL和安全組限制細粒度網絡訪問
    • 數據庫級別安全,可以通過Redshift的主用戶名和密碼創建更多的用戶并給他們相應授權
  • 數據加密存儲
    • 數據加密是可選項,利用硬件隨機生成的AES256密鑰對每個數據塊進行加密,但加密影響性能
    • 多種靜態加密技術,符合HIPAA和PCI DSS合規要求
      • KMS
      • HSM
  • Redshift Enhanced VPC Routing
    • 強制將所有的COPY和UNLOAD流量指定走AWS VPC 內部
    • 若不開啟,則所有流量默認走Internet,包括從AWS內部讀取
  • 數據加密傳輸
    • 采用硬件加速的SSL連接與S3或者DynamoDB進行通信
    • 可以在客戶端上安裝SSL證書pem公鑰文件實現對Redshift 服務器的連接和管理
    • 支持橢圓曲線HCDHE協議提供更強大的密碼套件確保SSL的私密性
    • 同時也可以啟用Perfect Forward Secrecy使用短暫會話密鑰防止密鑰泄露
  • 記錄所有的SQL操作信息用于監控和審計,包括連接嘗試、查詢和對數據庫的更改等操作
  • 在維護窗口中進行自動補丁更新

例外

  • 不適用于大規模對少數對象的讀寫操作,這種場景需要考慮Aurora 或者RDS

DynamoDB

主要特性

  • 是NoSQL的的托管版本
    • 低延遲 - 基于SSD,延遲小于10ms
    • 大規模無縫可擴展 - 無表大小和吞吐限制、可針對存儲和吞吐量進行實時重新分區
    • 性能可預測 - 預配置吞吐量模型
    • 持久性和可用性 - 自動執行區域內三向復制,確保一致性、僅限磁盤寫入
    • 安全性- 成熟的加密方案對用戶身份進行驗證
    • 零管理- 完全托管的NoSQL服務
  • 同時連接和訪問多個NoSQL存儲(如RDS、S3、MongoDB、Hbase等),對組合數據集進行復雜分析
  • 通過在多個分區上自動分配表的數據和流量提供一致的性能級別,其性能是以讀寫容量的吞吐量級衡量的
  • 根據實際需求可以隨時調整讀取和寫入容量,DynamoDB會自動添加或刪除基礎架構或調整內部分區,默認最大支持20000個讀取和20000個寫入容量
  • DynamoDB 按照存儲數據大小和讀寫能力進行收費
  • 應用場景
    • 支持與Amazon EMR集成
    • 支持即插即用的Hadoop分析
    • 支持儲存會話數據

數據模型

AWS 數據庫(七)

  • 沒有架構,一個表有多個項目,項目具有可變屬性
  • 數據類型
    • 對每一個主鍵及其屬性都必須指定一個數據類型
      • Scalar數據類型 - 表示某一個值的類型, 包括字符串、數值、二進制、布爾值、空
      • Set數據類型 - 表示某一個list的類型,包括 字符串set,數值set和二進制set
      • Document 數據類型- 表示多個嵌套的屬性,類似于JSON文件結構,包括List和Map兩種文檔類型
      • List - 用于儲存不同數據類型的屬性的有序列表
      • Map - 每個可用于Key/Value的無序列表,可以用來表示任何JSON對象結構
  • 主鍵
    • 主鍵是每個項目的唯一標識也是唯一強制屬性,DB通過它來進行GET/PUT
    • 每個主鍵屬性必須是字符串、數字或二進制。
    • 兩種類型的主鍵
      • 分區鍵 - 一個屬性一個分區哈希值組成,用于構建無序散列索引
      • 分區+排序鍵 - 兩個屬性組成,由分區和排序組合起來作為唯一標識
  • DynamoDB 調用包頭類型
    • host
    • x-amz-date
    • x-amz-target
    • content-type
  • 預置容量
    • DynamoDB需要調配一定數量的讀寫容量來處理預期工作負載
    • 選擇適宜的容量已持續的提供低延遲的響應時間,可以通過Updatetable指令縮放。
    • 讀操作每4K為一個單位容量,寫操作每1K為一個單位容量。
      • 最終一致性 - 1個單位容量可以讀寫兩次
      • 強一致性 - 1個單位容量可以讀寫一次
      • 事務一致性 - 2個單位容量才能讀寫一次
    • 可以CloudWatch 監控DynamoDB容量并制定擴展決策。
  • 二級索引
    • 只有使用分區+排序主鍵時,可以定義一個或多個二級索引
    • 支持全局二級索引和本地二級索引等靈活方法來查詢非主鍵值
      • 全局二級索引索引整個分區+排序鍵的值
      • 本地二級索引索引相同分區鍵但不同排序鍵的值
    • 主鍵分為單屬性分區或復合屬性分區
      • 單分區以UserID為唯一標識
      • 復合分區以UserID(分區鍵)和TimeStamp(排序鍵)進行組合標識一對一關聯關系,支持交叉檢索功能
    • 當數據集大小和預配置容量增加時會發生自動分區
    • 只支持一個本地二級索引,但可以創建多個全局二級索引
    • 項目大小不能超過400KB,必須包含屬性名稱和屬性值長度兩個二進制長度

AWS 數據庫(七)

DynamoDB屬性

  • 一致性
    • AWS同一區域內的多個可用區之間自動復制每個DynamoDB表
    • 讀取一致性:通過控制成功寫入或更新的讀取操作的方式和時間,指定最終一致性或強一致性讀取,默認是最終一致性讀取
    • 最終一次性讀取: 數據副本的一致性能夠需要1秒實現,僅驗證數據一致而不會驗證寫入完成,所以可能讀取的是舊數據
    • 強一致性讀取:讀取時驗證寫入成功完成,并且確保數據讀取的一致性,在網絡延遲或者中斷的情況下可能不可用。
  • 批量操作
    • 可以通過單個操作執行最多25個項目的創建或更新
  • 項目搜索
    • 查詢 - 用于僅限主鍵屬性的查找和索引操作,用排序鍵值可以優化搜索結果,結果會按主鍵排序,
    • 掃描- 會返回每個項目的所有屬性,返回限制1MB
    • 每個查詢或掃描結果返回最多1MB,若超過則需要對增量結果進行翻頁
  • 縮放和分區
    • DynamoDB可以無限數量的擴展并且提供一致的低延遲性能
    • 通過分區來進行水平擴展
    • 好的程序設計需要考慮表的分區結構,以平均分配讀寫事務,實現低延遲處理
    • 隨著表中項目的增加,可以不斷拆分現有分區來添加額外分區
    • 預置吞吐量將在個分區之間平均分配,且不可跨區共享
    • 一個分區可容納10GB數據和最多3000個讀取容量以及1000個寫入容量,對于未充分利用的容量分區,可以用于處理突發流量
  • AWS DynamoDB Stream
    • 獲取DynamoDB最近24小時內的項目修改列表用于分析和審計。
    • 通過Stream中讀取的活動修改日志,可以在不修改原始應用程序的情況下擴展和構建新的功能。
  • 自動備份
    • 需要通過AWS Data Pipeline的專用配置模板,將DynamoDB完整或增量備份到同一地區或不同地區進行備份
  • DAX
    • DynamoDB 數據庫性能加速
  • DynamoDB 自動擴展
    • DynamoDB在創建時,可以指定讀取和寫入流量以及每個大小的平均大小來配置所需的請求容量
    • 可以通過第三方工具(如 CloudFormation模板)啟用 Dynamic DynamoDB 配置自動擴展和縮減表格
    • 支持將擴展活動限制在一定時間段,使用上下限預置單獨擴展讀取和寫入吞吐量
    • 支持斷路器,確保每次擴展和縮減活動之前檢查應用程序是否正常以避免當應用程序發生問題而觸發的虛假縮減活動

安全

  • DynamoDB 需要與IAM服務集成,用策略最大限度控制權限。
  • 所有操作都必須通過身份驗證,建議使用EC2實例配置文件或角色來管理密鑰
  • 在數據庫級別可以創建權限,以細粒度的允許或拒絕對項目和屬性的訪問
  • 對DynamoDB的服務請求都必須包含HMAC-SHA-256的簽名
  • 移動端的最佳做法是使用Web身份聯合與AWS安全令牌服務提供臨時密鑰
  • DynamoDB本身不提供服務器端加密存儲數據,需要存儲前使用客戶端或KMS加密

DynamoDB最佳實踐

  • 保持較小的項目大小
  • 將元數據存儲在DynamoDB中,將大型BLOB存儲在S3中
  • 按日、周、月進行Hash計算使用表來存儲實踐序列數據用于強制分區
  • 使用有條件更新或者開放式并發控制更新(OCC)
  • OCC是假定多個事務可以頻繁完成且相互不會干擾
  • 獲取資源時無需提前鎖定,提交時需要確認沒有沖突的修改,若有則回滾
  • 僅適用于低爭用環境,從而提高吞吐量,否則反而會大大降低性能
  • 避免熱鍵和熱分區
  • 更加適合于無狀態的服務設計
  • 支持JSON對象的存儲

Amazon Aurora

概述

  • 是一種面向服務的架構交付的關系型數據庫,是mySQL的托管版本,還兼容PostgreSQL
  • 速度是MySQL的5倍,成本是其他商用數據庫的1/10
  • 容量支持10GB - 64TB;每10GB一增量,僅為使用的容量付費。
  • 支持Schema Changes
  • 利用S3實現可擴展和高可用性,默認支持6個副本,
    • 復制到3個可用區,每個可用區2個副本
    • 2個以下副本丟失,不影響寫入
    • 3個以下副本丟失,不影響讀取
  • 與MySQL 5.6簡易兼容 - 現有程序可正常運行,可輕松遷移,可直接導入數據文件

其他特性

  • 擴展性能
    • 與S3集成,可實現最多三個可用區之間6個副本的持續備份
    • 將日志記錄和存儲層轉移到可擴展的多租戶服務層
    • MySQL支持跨區域副本(最多5個區域)建立全球數據庫,使用Read Replicate 技術, PostgreSQL不支持,跨區域DR需要手工完成
  • 彈性設計
    • 最多15個副本,約10ms副本滯后
    • 99.99%可用
    • 即時崩潰恢復(60s),故障轉移30s內
    • 與單一線程重放所有日志的傳統數據庫相當
    • 在磁盤讀取時重放重做記錄
    • 自動備份,且不會影響數據庫性能
    • 支持快照,并且可以跨賬戶共享快照,也可以跨區域共享,但是不能同時 跨賬戶和區域共享
    • 平行的分布式異步恢復
    • 緩存層可在數據庫重啟時繼續使用,從而改善讀取響應
    • 支持KMS加密,但必須在創建數據庫時即開啟加密選項
    • 主數據庫出現故障時,只讀副本可以實現即時提升為主數據庫
  • 支持Aurora Serverless
    • 適用于 Amazon Aurora 的 MySQL 兼容版的按需 autoscaling 配置。
    • Aurora Serverless 數據庫集群會根據您應用程序的需求自動啟動、關閉以及擴展或縮減容量。
    • Aurora Serverless 是簡單且更具成本效益的選擇,適用于不頻發的、間歇性的或不可預測的工作負載。
  • Parallel Query
    • Amazon Aurora Parallel Query 是一項功能,能夠將單個查詢的計算負載下移并分布到 Aurora 存儲層中的數千個 CPU。如果不使用 Parallel Query,則對 Amazon Aurora 數據庫發出的查詢將全部在數據庫集群的一個實例中執行;這與大多數數據庫的運作方式類似。
    • Parallel Query 非常適合需要新數據和良好查詢性能的分析工作負載,即使在大型表上也是如此。這種類型的工作負載在本質上通常是可操作的。

好處:

  • 速度更快:Parallel Query 可將分析查詢的運行速度提高多達 2 個數量級。
  • 操作簡易性和數據新鮮度:您可以直接對 Aurora 集群中的當前事務數據發出查詢。
  • 同一數據庫上的事務工作負載和分析工作負載:借助 Parallel Query 功能,Aurora 可以在處理并行分析查詢的同時保持較高的事務吞吐量。

數據庫架構示例

AWS 數據庫(七)

歡迎大家掃碼關注,獲取更多信息

AWS 數據庫(七)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

aws
AI

徐汇区| 曲靖市| 含山县| 驻马店市| 济源市| 武义县| 姚安县| 原阳县| 宜兰县| 博兴县| 基隆市| 如东县| 长沙市| 泸州市| 枣强县| 富民县| 马边| 酉阳| 临漳县| 安国市| 赞皇县| 梨树县| 平山县| 北海市| 华宁县| 佛山市| 罗源县| 海晏县| 马尔康县| 宜章县| 凤城市| 灵武市| 德江县| 夏邑县| 馆陶县| 南澳县| 观塘区| 莲花县| 兴文县| 伽师县| 嫩江县|