天天看點

AWS DatabaseAWS Relational Database Service (AWS RDS)AWS RedshiftAWS DynamoDB

AWS Relational Database Service (AWS RDS)

  1. AWS 支援以下RDS
    1. MySQL 5.1, 5.5, 5.6,  community Edition with InnoDB engine,Multi-AZ
    2. PostgreSQL 9.3, 9.4 9.5,Multi-AZ
    3. MariaDB 10.0.17, MySQL 那幫作者做的,Multi-AZ
    4. Avamar Aurora,Multi-AZ,相容MySQL和PostgreSQL,性能是MySQL的5倍,是AWS推薦的資料庫
    5.  Oracle 11g, 12c,有三個版本,都支援Multi-AZ
      1. Standard One,Multi-AZ,Included License,KMS
      2. Standard,Multi-AZ,BYOL,KMS
      3. Enterprise,Multi-AZ,BYOL,KMS and TDE
    6. SQLServer 2008R2, 2012, 2014,有四個版本
      1. Express,不支援Multi-AZ,Included License,KMS
      2. Web,不支援Multi-AZ,Included License,KMS
      3. Standard,Multi-AZ,KMS
      4. Enterprise,Multi-AZ,KMS and TDE
  2. Storage Options
    1. Magnetic,性能最差,最便宜,用在需要很小IOPS的場景
    2. General Purpose SSD,通用型,大部分場景都可以使用
    3.  Provisioned IOPS SSD,最高配置,價格最貴,用在需要高IOPS的場景
  3. RDS資料庫的兩種類型
    1. Online Transaction Processing (OLTP),事務型資料庫,對事務要求高,資料一緻性要求高
    2. Online Analytical Processing (OLAP),分析性資料庫,對計算和處理資料要求高,對讀性能要求高
  4. RPO/RTO
    1. RPO(Recovery Point Objective)出現事故時,最大允許丢失的資料量
    2. RTO(Recovery Time Objective)出現事故時,最大允許down機的時間
  5. Backup/Recovery
    1. 自動備份,Amazon RDS會自動為DB的Storage建立snapshot來備份資料,但預設情況每個backup隻保留一天,可以設定最多保留35天
    2. 手動備份,手動備份的backup不會被自動删除
    3. Recovery,恢複DB時不會影響原DB,隻會建立一個新的DB instance
  6. High Availability with Mulit-AZ
    1. 除了SQLServer的Express/Web不支援Multi-AZ,其它DB都支援Mulit-AZ
    2. Multi-AZ是指在不同的AZ上建立DB Instance,如果主Instance挂了,AWS會自動将連接配接轉移到副Instance,而不需要使用者任何操作
  7. Multi-AZ并不能提高DB的performance,隻是為了增加HA
    1. 可以通過reboot主Instance來模拟主DB當機
  8. Scaling up and Out
    1. Vertical Scalability,垂直擴充,增加CPU性能,增加記憶體,增加存儲,修改存儲類别等。注意,Storage的擴充不支援SQLServer。
    2. Horizontal Scalability With Partitioning,通過分區分表的方式水準擴充
    3. Horizontal Scalability With Read Replicas,通過建立隻讀副本來提高性能,這樣做的目的是讀寫分離。支援的DB有:MySQL,PostgreSQL,Aurora,MariaDB
  9. Security,可以從多個層面來控制RDS的安全
    1. IAM,設定IAM權限,僅允許有權限的使用者可以建立DB instance,修改DB屬性等
    2. 将RDS部署在private網絡中,并且建立DB subnet group,指定哪些子網可以通路DB所在的子網
    3. 建立RDS使用者,隻有合法的使用者可以登入RDS
    4. 在傳輸過程中使用SSL加密,對at rest的資料使用KMS和TDE加密

AWS Redshift

  1. AWS Redshift是資料倉庫,用于存放大量統計資料,内部實作是PostgreSQL,Redshift是典型的OLAP型資料庫
  2. 叢集和結點
    1. 支援6種結點類型,分為兩類,面向計算和面向存儲。面向計算的類型支援326TB的SSD資料,面向存儲的結點支援2PB的Magnetic資料
    2. 可以通過增加節點來提高整體性能
  3. Data Types, 支援多種資料類型,char,int,decimal,double,varchar等
  4. 壓縮編碼,第一次加載資料到空表時,Redshift會為每列選擇最好的壓縮方式。
  5. 分布式政策
    1. EVEN distribution,預設方式,資料會以統一的方式配置設定到slices上,而不管資料是什麼類型
    2. KEY distribution,通過某一列的值來配置設定row
    3. ALL distribution, 所有的資料都會配置設定到所有的結點
  6. Sort Keys
    1. 排序用key,在建立表的時候可以選擇性的指定一列或多列為sort key,以加快資料的排序
  7. 增加資料
    1. Redshift支援标準的SQL,例如INSERT,UPDATE等
    2. COPY指令支援從S3以檔案方式加載資料到Redshift,也支援從DynamodDB加載資料
  8. 查詢資料
    1. 支援标準SQL查詢,如INSERT等
    2. 支援并發查詢,workload management (WLM)
  9. Snapshot
    1. 支援動态快照和手動快照,自動快照會定期删除,手動快照不會自動删除,需要手動删除
  10. Security
    1. IAM,設定IAM權限,僅允許有權限的使用者可以建立DB instance,修改DB屬性等
    2. 将Redshift部署在private網絡中
    3. 建立Redshift master account,隻有合法的使用者可以登入Redshift
    4. 在傳輸過程中使用SSL加密,對at rest的資料使用KMS和CloudHSM

AWS DynamoDB

  1. No SQL 資料庫,與Mango DB類似
    1. 支援資料類型,String,Number,Binary,Boolean,Null,String Set,Number Set,Binary Set,List,Map
  2. 主鍵
    1. Partition Key,partition key唯一辨別Object,一個key就是一個partition
    2. Partion Key and Sort Key,partition key和sort key辨別Object,先partition分組,再sort key排序
  3. Provisioned Capacity
    1. Read capacity and write capacity
    2. 預先設定capacity,當有讀或寫操作時就會消耗相應的capacity,capacity越大,費用越高
    3. 可以設定Auto Scaling,但Read or Write capacity達到一定程度,就可以自動增加capacity
  4. Secondary Index
    1. Global Secondary Index,全局index,會在所有的partition上查詢資料。任何時候都可以建立任意多的global secondary index
    2. Local Secondary Index,本地index,隻在目前partition上查詢資料。在建立table的時候指定,且隻能有一個loca secondary index
  5. Writing and Reading data
    1. PutItem,UpdateItem,DeleteItem,GetItem,Query or Scan action,etc
  6. 最終一緻性
    1. Eventually Consistent Reads,可能讀取到髒資料,但最終會讀取到一緻的資料
    2. Strongly Consistent Reads,不會讀取到髒資料,但可能會影響性能
  7. Batch Operations
    1. BatchGetItem,BatchWriterItem等批量操作
  8. Searching Items
    1. Query,僅查詢需要的資料
    2. Scan,會Scan所有資料
    3. 一般推薦用Query而不是Scan,Scan會掃描所有資料或所有secondary index
  9. Scaling and Partitioning
    1. 通過建立更多的partition來擴充DynamoDB資料庫表
  10. Security
    1. 通過IAM控制IAM User通路DynamoDB
  11. Streams
    1. 支援通過修改DB的log來記錄改動的資料,通過擷取修改DB的log,可以用于審計資料的修改,統計資料通路等
    2. 相當于把資料庫的修改記錄stream到log裡,其它應用就可以基于log做更多的事情
  12. Multi-AZ
    1. Dynamo DB預設按照Multi-AZ模式來部署以提高高可用

繼續閱讀