Architecting on AWS 筆記:資料庫服務 (Database Services)
25 May 2022資料庫服務 (Database Services)
AWS 提供託管程度較高的資料庫服務,有以下幾種
- Relational database services (RDS):RDS 可搭配 EC2 來使用,例如:multi-AZ,在另一台 AZ 開一個一模一樣的 DB 做備胎,增加可用性、避風險。
- Aurora:Aurora Storage 可作 DB Scaling
- 切分為好幾個 AZ,以提供良好可用性。
- 製作 2-3 個 read aurora,當 primary 刪掉,會自動找一台 replica 取代成為 primary。
- Redshift:可當 data warehouse 來做大數據分析、join 多資料庫。
- DynamoDB
- 全託管 NoSQL Database,除了交易 (transaction) 都適用!
- 可用組合鍵當成 primary key。
- DynamoDB Accelerator:若需要超低延遲,推薦使用 DAX,DAX 會先快取在最近的 VPC 網路環境。
- ElasticCache
只讀副本 (Read Replicas)
- primary 專心做寫入,read replica 提供讀取,減少 primary 的 loading。
- 注意,read replica 可能會有同步落差,開發者必須自己判斷資料是否是最新的。
資料一致性
- 強一致:系統自行確認是不是最新的,會消耗的效能 (both read / write) 比較多。
- 最終一致: 可能會拿到舊版資料,只是 replica 最終都會更新,開發者要自己判斷資料是否最新來決定是否要再拿一次資料。
- Global Table:世界各地的 table 會自動同步資訊,注意是用「最終一致」。
資料庫搬遷
- Database Migration Service (DMS,資料庫搬遷服務):搬移方式為 (1) EC2 -> RDS 或 (2) local -> EC2。
- Schema Conversion Tool 是 Schema 轉換的軟體工具,可搭配 DMS 使用。