Databases — RDS、DynamoDB、Redshift、Aurora。針對 AWS Certified Cloud Practitioner 考試整理重點與常見誤區。
# 8.0 先分清楚資料庫的三種角色
生活比喻
關聯式資料庫 (RDS / Aurora) 像 Excel 試算表 —— 欄位固定,每一列都要照格式填,適合有明確結構的資料 (訂單、會員、發票)。NoSQL(DynamoDB) 像一疊便利貼 —— 每張想寫什麼就寫什麼,不用先講好格式,查找超快但不擅長複雜交叉比對。資料倉儲 (Redshift) 像公司的資料檔案室 —— 不是拿來日常收銀用的,是拿來一次撈三年份資料做年度分析報表的。
| 類型 | 服務 | 資料長相 | 擅長什麼 |
|---|---|---|---|
| 關聯式 (SQL) | RDS 、 Aurora | 表格,有固定欄位與關聯 | 交易處理 (OLTP)、需要 JOIN 的複雜查詢 |
| 非關聯式 (NoSQL) | DynamoDB | 鍵值 / 文件,結構彈性 | 超高流量、毫秒級讀寫、規模無上限 |
| 資料倉儲 | Redshift | 大量歷史資料,欄式儲存 | 分析 (OLAP)、商業智慧報表 |
定義
OLTP vs OLAP:OLTP (線上交易處理) 是「一次處理一筆、很多人同時來」, 像下單、轉帳 —— 對應 RDS / Aurora / DynamoDB。OLAP (線上分析處理) 是「一次掃過幾百萬筆算出結論」, 像月報表、趨勢分析 —— 對應 Redshift。這組縮寫考試會直接考。
# 8.1 Amazon Relational Database Service(RDS)
定義
Amazon RDS: 受管的關聯式資料庫服務。你自己在 EC2 上裝 MySQL, 備份、修補、故障切換全都要自己來;改用 RDS, 這些雜事 AWS 幫你做,你專心用資料庫就好。
# 支援的資料庫引擎
MySQL、PostgreSQL、MariaDB、Oracle、Microsoft SQL Server、Amazon Aurora—— 共六種。
# RDS 幫你處理什麼
- 自動備份與時間點還原 (Point-in-Time Recovery)
- 作業系統與資料庫軟體的修補更新
- 自動故障偵測與復原
- 儲存容量自動擴展
- 加密 (靜態與傳輸中) 與網路隔離 (部署在 VPC 內)
# 兩個最重要的機制:Multi-AZ 與 Read Replica
| Multi-AZ 部署 | 唯讀複本 Read Replica | |
|---|---|---|
| 目的 | 高可用性 / 災難復原 | 提升讀取效能 / 分攤負載 |
| 複製方式 | 同步複製到另一個 AZ 的待命執行個體 | 非同步複製 |
| 平時能不能讀? | 不行,待命的那台平時不對外服務 | 可以,可直接對它下查詢 |
| 故障時 | 自動切換 (failover) 到待命執行個體 | 不會自動切換 |
考試重點
這組是 Module 8 最愛考的區辨。題目講「高可用」「自動故障轉移」「災難復原」→ Multi-AZ; 題目講「讀取太慢」「查詢量太大」「分攤讀取負載」→ Read Replica。很多人會誤以為 Multi-AZ 的備援機器可以拿來分攤讀取 —— 不行,它平時是閒著待命的。
常見誤區
回想 Module 4 的責任共擔模式:RDS 是受管服務,所以底層作業系統與資料庫軟體的修補是 AWS 負責,但資料本身、存取權限、加密設定仍是客戶負責。這題在兩個單元都會出現。
# 8.2 Amazon DynamoDB
生活比喻
DynamoDB 像一個超大型的置物櫃系統:你給一個櫃號 (主鍵), 它瞬間就把東西拿給你,不管櫃子總共有一百個還是十億個,速度都一樣快。但如果你問「幫我找出所有紅色的東西」, 它就沒那麼擅長了 —— 那是關聯式資料庫的強項。
- 全代管的 NoSQL 鍵值 / 文件資料庫,不需要管理任何伺服器
- 單位數毫秒級的效能,而且規模再大延遲也維持穩定
- 無伺服器 (serverless): 沒有執行個體要選、要開、要修補
- 自動擴展,儲存容量沒有實際上限
- 資料自動複製到區域內三個 AZ, 高可用且高耐久
- 結構彈性:同一張表的不同項目可以有不同的屬性
- 可搭配 DynamoDB Accelerator(DAX) 做記憶體內快取,把延遲降到微秒級
考試重點
DynamoDB 的關鍵字是 「NoSQL」「毫秒級」「無伺服器」「規模無限」「不需管理基礎設施」。典型情境:遊戲排行榜、購物車、IoT 資料、行動 App 後端。反過來,如果題目強調 「需要複雜的 JOIN 查詢」「需要交易一致性的財務系統」, 那答案應該是 RDS 或 Aurora, 不是 DynamoDB。
# 8.3 Amazon Redshift
生活比喻
Redshift 像公司的資料檔案室 + 分析團隊:你不會拿它來處理今天的收銀,而是把過去三年的所有交易紀錄倒進去,然後問「哪個地區、哪個季度、哪個產品賣最好」。它為了「一次掃過海量資料」而生,不是為了「快速拿一筆」。
- 全代管的 PB 等級資料倉儲服務,專為分析 (OLAP) 設計
- 採用欄式儲存 (columnar storage) 與大規模平行處理 (MPP), 掃描大量資料時效率極高
- 可用標準 SQL 查詢,與現有商業智慧 (BI) 工具整合
- Redshift Spectrum 可以直接查詢存放在 S3 的資料,不必先載入
- 典型用途:商業智慧報表、資料湖分析、歷史資料趨勢分析
考試重點
凡是題目出現 「資料倉儲」「商業智慧 / BI」「分析海量歷史資料」「產生報表」, 答案就是 Redshift。它跟 RDS 的分野很單純:RDS 處理「正在發生的交易」,Redshift 分析「已經發生的資料」。
# 8.4 Amazon Aurora
定義
Amazon Aurora:AWS 自行開發、與 MySQL 及 PostgreSQL 相容的關聯式資料庫引擎,屬於 RDS 家族的一員,但效能與可用性都經過重新設計。
- 效能: 約為標準 MySQL 的 5 倍、標準 PostgreSQL 的 3 倍 —— 這組數字考試會直接考
- 成本約為同等級商用資料庫的十分之一
- 資料自動複製六份、跨三個可用區域,耐久性極高
- 儲存自動擴展,以 10 GB 為單位成長,最高可達 128 TB
- 支援最多 15 個低延遲唯讀複本
- 具備自我修復能力,會自動偵測並修復磁碟錯誤
- Aurora Serverless 可依實際負載自動啟停與擴縮,適合流量不固定的應用
考試重點
Aurora 的關鍵字是 「與 MySQL / PostgreSQL 相容」+「更高效能」+「更高可用性」。題目若說「現有 MySQL 應用想搬到雲端,但要更好的效能與自動容錯」, 答案就是 Aurora。記住它是 RDS 底下的一個引擎選項,不是獨立於 RDS 之外的服務。
# 8.5 服務比較總表
考前掃這一張就好:
| RDS | Aurora | DynamoDB | Redshift | |
|---|---|---|---|---|
| 資料庫類型 | 關聯式 | 關聯式 | NoSQL | 資料倉儲 |
| 工作負載 | OLTP | OLTP | OLTP (高流量) | OLAP |
| 查詢語言 | SQL | SQL | API / PartiQL | SQL |
| 要選執行個體嗎 | 要 | 要 (Serverless 除外) | 不用 | 要 (叢集節點) |
| 擴展方式 | 垂直 + 唯讀複本 | 自動擴展,最多 15 個複本 | 自動水平擴展 | 增減叢集節點 |
| 典型情境 | 一般網站 / 應用後端 | 高效能關聯式應用 | 遊戲排行榜、購物車、IoT | BI 報表、歷史分析 |
# 8.6 服務詞彙速查
| 名稱 | 一句話定義 |
|---|---|
| RDS | 受管的關聯式資料庫服務,支援六種引擎 |
| Multi-AZ | 同步複製到另一 AZ 的待命執行個體,用於高可用 |
| Read Replica | 非同步的唯讀複本,用於分攤讀取負載 |
| OLTP | 線上交易處理 —— 一次一筆、高併發 |
| OLAP | 線上分析處理 —— 一次掃海量資料做分析 |
| DynamoDB | 全代管無伺服器 NoSQL 資料庫,毫秒級效能 |
| DAX | DynamoDB 的記憶體內快取,延遲降到微秒級 |
| Redshift | PB 等級資料倉儲,欄式儲存,用於分析 |
| Redshift Spectrum | 直接查詢 S3 上的資料,不需先載入 |
| Aurora | AWS 自研、相容 MySQL/PostgreSQL 的高效能引擎 |
# 重點回顧
- 三種角色:關聯式 (RDS / Aurora, 處理交易)、NoSQL (DynamoDB, 高流量毫秒級)、資料倉儲 (Redshift, 分析歷史資料)。
- RDS 支援六種引擎;Multi-AZ 是為了高可用 (備援機平時不可讀),Read Replica 是為了分攤讀取。
- DynamoDB 無伺服器、自動擴展、跨三個 AZ 複製,不需選執行個體。
- Redshift 專攻 OLAP, 欄式儲存 + MPP;Spectrum 可直接查 S3。
- Aurora 相容 MySQL/PostgreSQL, 效能為 MySQL 的 5 倍、PostgreSQL 的 3 倍,資料複製六份跨三個 AZ。
# 自我測驗
RDS 的 Multi-AZ 和 Read Replica 目的差在哪?
答:Multi-AZ 是為了高可用與自動故障轉移,備援執行個體平時不提供讀取;Read Replica 是為了分攤讀取負載,可以直接對它查詢。 這是本單元最常考的區辨題。
需要毫秒級回應、規模無上限、且完全不想管理伺服器的資料庫,該選什麼?
答:Amazon DynamoDB。 全代管的 NoSQL 服務,自動擴展且無伺服器需要管理。
要對數年份的銷售資料做商業智慧分析報表,該用哪個服務?
答:Amazon Redshift。 這是資料倉儲 (OLAP) 情境,Redshift 用欄式儲存與 MPP 專門處理海量資料分析。
Aurora 的效能大約是標準 MySQL 的幾倍?
答:約 5 倍 (相較標準 PostgreSQL 則約 3 倍)。這組數字考試常直接考。
使用 RDS 時,資料庫軟體的修補更新由誰負責?
答:AWS。 RDS 是受管服務,底層作業系統與資料庫軟體的修補由 AWS 處理;但資料本身、存取權限與加密設定仍是客戶的責任。
Aurora 的資料會複製幾份、跨幾個可用區域?
答:複製六份,跨三個可用區域。 這是 Aurora 高耐久性的基礎設計。