examhub .cc 用最有效率的方法,考取最有價值的認證
Vol. I
本篇導覽 約 21 分鐘

資料庫服務(RDS、Aurora、DynamoDB、DMS)

4,120 字 · 約 21 分鐘閱讀

AWS 資料庫服務涵蓋全代管關聯式引擎(例如 Amazon RDS 與 Amazon Aurora)、專為特定用途打造的 NoSQL 引擎(例如 Amazon DynamoDB)、記憶體內快取(例如 Amazon ElastiCache 與 Amazon MemoryDB for Redis)、圖形(Amazon Neptune)、分析(Amazon Redshift)、文件(Amazon DocumentDB)、時序(Amazon Timestream)等專用引擎,再加上由 AWS DMS 與 AWS Schema Conversion Tool 提供的遷移工具。針對 CLF-C02 的任務陳述 3.4,你需要知道每項服務所屬的類別、代表性使用情境,以及 Amazon RDS、Amazon Aurora 與 Amazon DynamoDB 之間的主要取捨。本指南會逐一走過考試範圍內的每一項 AWS 資料庫服務,比較常見的混淆題組,並以情境練習提示、必背 callout 與針對 CLF-C02 藍圖量身打造的 FAQ 作結。

什麼是 AWS 資料庫服務?

AWS 資料庫服務是一組專為特定用途打造、全代管的資料儲存組合,能讓你擺脫在自管基礎設施上運行資料庫的營運負擔。你不必再佈建 EC2 執行個體、安裝資料庫引擎、套用修補程式、設定備份並從零打造高可用性;只需挑選一項與工作負載型態相符的 AWS 資料庫服務即可:關聯式、鍵值、文件、圖形、欄式分析、記憶體內或時序。CLF-C02 考試要求你能辨識每一項服務、知道它屬於關聯式或非關聯式,並將它對應到情境題的描述。

Amazon RDS 是旗艦級的代管關聯式資料庫。Amazon Aurora 是建構在 RDS 平台之上、AWS 原生的關聯式引擎。Amazon DynamoDB 是旗艦級的代管 NoSQL 服務。AWS DMS 是遷移工具,能以最少停機時間將既有資料庫搬進上述任何一項 AWS 資料庫服務。RDS、Aurora、DynamoDB 與 DMS 一起涵蓋了大多數考題,而 ElastiCache、Neptune、Redshift、DocumentDB、Timestream 與 MemoryDB 則常在情境題中作為干擾選項出現。

AWS 資料庫服務存在的理由

地端資料庫需要做容量規劃、授權管理、修補、備份磁帶輪替,以及手動容錯移轉演練。改用 AWS 資料庫服務後,這些資本支出與人力工時會轉換為按用量計費的營運成本。AWS 資料庫服務也與 AWS Identity and Access Management、Amazon CloudWatch、AWS Backup 以及 AWS Key Management Service 整合,因此 Amazon RDS、Amazon Aurora、Amazon DynamoDB 與 AWS DMS 管線之間的安全、可觀測性與資料保護都能一致運作。

本主題在 CLF-C02 藍圖中的位置

AWS CLF-C02 考試指南中的任務陳述 3.4 要求你能辨識 AWS 資料庫服務。本主題位於領域 3(雲端技術與服務,佔考試 34%)。你將會遇到要求你在 Amazon RDS、Amazon Aurora 與 Amazon DynamoDB 之間抉擇的情境題,以及要你回想哪一項 AWS 資料庫服務能處理特定工作負載的記憶題 —— 例如圖形走訪(Amazon Neptune)或時序遙測(Amazon Timestream)。

白話文解釋 AWS Database Services

如果這些服務名稱仍然顯得抽象,以下三組在地化類比可以把 AWS 資料庫服務換成日常語彙。考試當天看到 AWS 資料庫服務的情境題時,挑一個你最容易記住的版本用就好。

類比一:夜市小吃街

把 AWS 資料庫服務想像成夜市裡不同型態的攤位。Amazon RDS 是老字號牛肉麵攤,老闆還是親自下廚,但水電、瓦斯、洗碗與食材進貨都由夜市自治會負責。Amazon Aurora 是同一位老闆的升級旗艦店,由 AWS 幫忙重建儲存層:比一般的 MySQL 攤位快 5 倍,比一般的 PostgreSQL 攤位快 3 倍,因為廚房動線全部為雲端規模重新設計。Amazon DynamoDB 則是便利商店的思樂冰機 —— 沒有廚師、沒有點餐對話,投入一張鍵(Key)就在個位數毫秒內拿到一杯。Amazon ElastiCache 是保溫檯,把熱門品項先做好放著,讓排隊的客人不用等後廚。AWS DMS 則是搬家公司,負責把整間老店從舊地點搬到新夜市,還要讓客人一餐都不漏掉。

類比二:國立圖書館

把圖書館想成你組織的資料。Amazon RDS 是依照中國圖書分類法嚴格上架的參考書區 —— 非常適合跨結構化資料表(Table)的 SQL 查詢(Query)。Amazon Aurora 是同一個參考書區,但換上 AWS 設計的機械書架,一次能取下 5 本書。Amazon DynamoDB 是寄物櫃:給我一張票號(分割鍵),我瞬間把你的物品還給你,內容是什麼不重要。Amazon Redshift 是地下典藏庫,歷年報紙都數位化了,研究者能在數十年的資料上跑分析查詢。Amazon Neptune 是族譜研究室,把人們用關係串連成家族樹。Amazon DocumentDB 是期刊架,每一期就是一份自包含的文件。AWS DMS 是搬運團隊,在讀者繼續借閱書籍的同時,把舊分館的藏書搬到新分館。

類比三:開書考試

把你的應用程式想像成一位正在開書考試的學生。Amazon RDS 是裝訂好的教科書:每一頁都有索引(Index)、交叉引用保證一致,你能回答需要跨章節交叉比對的申論題。Amazon Aurora 是同一本教科書,但印在翻頁更順手的紙上 —— 目錄結構不變,翻頁速度更快。Amazon DynamoDB 是重點小抄:一個鍵、一個答案、瞬間查到,但沒有 JOIN、無法即興 SQL,而且要事先規劃要收錄哪些事實,因為事後重整很痛苦。ElastiCache 是你的短期記憶 —— 先把前 50 個重點背起來,就不用再翻課本。Amazon Timestream 是碼表紀錄,每秒記下你的作答節奏,以供事後分析。AWS DMS 則是抄寫員,一邊讓你繼續讀課本,一邊把整本內容謄進新的活頁夾。

核心運作原則:代管式 vs 自管式資料庫

CLF-C02 最根本的區分就是代管式(Managed)與自管式。當你在 Amazon EC2 執行個體上運行 MySQL、PostgreSQL、Oracle 或 SQL Server 時,作業系統修補、資料庫引擎升級、備份、容錯移轉自動化與高可用性配置都得自己扛。當你改用 Amazon RDS、Amazon Aurora 或 Amazon DynamoDB 這類 AWS 資料庫服務時,AWS 會接手這些無差異化的粗活:OS 修補、引擎修補、自動備份(Backup)、時間點還原(Restore)、Multi-AZ 複寫,以及 Read Replica 佈建。

AWS 資料庫服務的共同責任

在 AWS 共同責任模型下,AWS 負責雲端「的」安全(實體主機、Hypervisor,以及 Amazon RDS、Amazon Aurora 等 AWS 資料庫服務的代管引擎修補)。你則負責雲端「中」的安全:資料庫使用者、資料表層級權限、透過 AWS KMS 選擇加密金鑰、透過安全群組設定網路存取控制,以及透過 Amazon CloudWatch Logs 和 AWS CloudTrail 做稽核記錄。Amazon DynamoDB 把責任分界推得更極端 —— 由於 DynamoDB 是無伺服器(Serverless)服務,整個儲存層都由 AWS 營運。

必須辨識的儲存範式

  • 關聯式(SQL):Amazon RDS 引擎與 Amazon Aurora —— 結構化結構(Schema)、ACID 交易、SQL JOIN。
  • 鍵值/文件(NoSQL):Amazon DynamoDB —— 水平擴展、無固定結構、個位數毫秒延遲。
  • 記憶體內:Amazon ElastiCache 與 Amazon MemoryDB for Redis —— 微秒級讀取(Read)、適用於快取、排行榜、Session 儲存。
  • 圖形:Amazon Neptune —— 關係導向的工作負載,例如社群網路與詐騙偵測。
  • 資料倉儲/OLAP:Amazon Redshift —— PB 等級的欄式分析。
  • 文件:Amazon DocumentDB —— 相容 MongoDB 的 JSON 文件儲存。
  • 時序:Amazon Timestream —— IoT 感測器與 DevOps 監控資料。

AWS 資料庫服務是由 AWS 提供的全代管、專為特定用途打造的資料儲存組合 —— 包含 Amazon RDS、Amazon Aurora、Amazon DynamoDB、Amazon ElastiCache、Amazon Neptune、Amazon Redshift、Amazon DocumentDB、Amazon Timestream 以及 Amazon MemoryDB for Redis —— 另外搭配 AWS DMS 與 AWS Schema Conversion Tool 這類遷移工具。 Reference: https://aws.amazon.com/products/databases/

Amazon RDS —— 旗艦級代管關聯式資料庫

Amazon RDS(Relational Database Service)是多數考生聽到 AWS 資料庫服務時第一個想到的服務。Amazon RDS 支援六種資料庫引擎:MySQL、PostgreSQL、MariaDB、Oracle、Microsoft SQL Server,以及 Amazon Aurora(雖然 Aurora 也自成品牌,但技術上是 RDS 的引擎選項之一)。Amazon RDS 自動化了生命週期中的佈建、修補、備份、監控與容錯移轉。

Amazon RDS 核心功能

  • 自動備份,可設定保留期間(最多 35 天)以及時間點還原。
  • Multi-AZ 部署,將主要執行個體同步複寫到第二個可用區的待命執行個體,以提供高可用性。
  • Read Replica(MySQL、MariaDB、PostgreSQL 最多 5 份;Aurora 最多 15 份),用於讀取擴展與災難復原。
  • 透過 AWS KMS 加密靜態資料,以及透過 SSL/TLS 加密傳輸中資料。
  • 整合 Amazon CloudWatch 的監控指標,以及 Amazon RDS Performance Insights 的查詢層級可觀測性。

何時該選 Amazon RDS

當你的應用程式建立在標準 SQL 上,且需要符合 ACID 的交易、結構化結構(Schema)、JOIN 以及熟悉的工具鏈時,就選 Amazon RDS。典型工作負載包含電商平台、內容管理系統、ERP 後端,以及任何已經在跑 MySQL、PostgreSQL 或 SQL Server 的企業應用。Amazon RDS 會替你接手所有營運工作,只剩下資料建模與應用程式層級的調校留給你。

Amazon RDS 的 Multi-AZ 會建立同步待命以供自動容錯移轉(Failover),它「不」會提供讀取流量。如果你需要在 Amazon RDS 上擴展讀取,請改佈建 Read Replica。把 Multi-AZ 與 Read Replica 混為一談是 CLF-C02 情境題中最常見的陷阱之一。 Reference: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html

Amazon RDS 計價模型速覽

Amazon RDS 的計費依據包含:每個 DB 執行個體的小時數、佈建儲存的 GB-月、io1/io2 磁碟區的 IOPS、超過免費額度的備份儲存,以及跨區域資料傳輸。你可以使用 Amazon RDS 的 Reserved Instance 承諾 1 或 3 年,相較 On-Demand 費率最多省下 69%。

Amazon Aurora —— AWS 原生的高效能關聯式資料庫

Amazon Aurora 是 AWS 原生的關聯式資料庫引擎,同時是 (a) Amazon RDS 內的引擎選項,以及 (b) 獨立品牌的服務。Amazon Aurora 相容 MySQL 與 PostgreSQL,也就是說你現有的驅動程式與 SQL 都不必改。真正被換掉的是儲存層:Amazon Aurora 以一套跨三個可用區、SSD 支撐、六重複寫、分散式且可自我修復的 fabric 取代了原本引擎的磁碟子系統。

為什麼 Amazon Aurora 更快

根據 AWS 官方效能測試,Amazon Aurora 相較 RDS 上的標準 MySQL 可提供最多 5 倍吞吐量,相較標準 PostgreSQL 則最多 3 倍。效能提升來自於把 redo-log 處理下推到儲存層,省去了透過網路寫入完整資料頁的需要。

Amazon Aurora 部署選項

  • Aurora Provisioned —— 自行挑選 DB 執行個體類別(運算),依執行時間付費。
  • Aurora Serverless v2 —— 容量以細緻的 ACU(Aurora Capacity Unit)依需求自動伸縮,非常適合流量尖峰不穩或開發環境的工作負載。
  • Aurora Global Database —— 將主叢集延伸至最多 5 個次要 AWS 區域,典型複寫延遲小於一秒,提供低延遲的全球讀取以及跨區域災難復原。

如果你的工作負載已經在 MySQL 或 PostgreSQL 上,請遷移到 Amazon Aurora,而不要繼續使用原廠引擎 —— 你能保留 SQL、驅動程式與工具鏈,同時獲得 3 到 5 倍的吞吐量,以及跨三個可用區可自我修復的儲存層。Aurora Serverless v2 對於開發/測試環境尤其是強力選項。 Reference: https://aws.amazon.com/rds/aurora/faqs/

Amazon DynamoDB —— 任意規模的無伺服器 NoSQL

Amazon DynamoDB 是全代管、無伺服器的鍵值與文件型 NoSQL 資料庫,無論規模多大都能提供個位數毫秒的延遲。DynamoDB 沒有伺服器要你管、沒有儲存要你佈建、也沒有叢集要你修補。你只要建立一張資料表(Table)、定義一組分割鍵(Partition key,可再加排序鍵 Sort key),Amazon DynamoDB 就會接手容量、跨三個可用區的複寫與備份。

Amazon DynamoDB 容量模式

  • On-Demand —— 依每個讀取請求單位與每個寫入請求單位計費;對不可預測的工作負載來說非常合適。
  • Provisioned —— 宣告 RCU(讀取容量單位)與 WCU(寫入容量單位);對可預測的工作負載較便宜,也可搭配 Auto Scaling 使用。

Amazon DynamoDB 主要功能

  • Global tables:跨區域主動/主動複寫,適用於全球分散式應用,通常在數秒內完成複寫。
  • DynamoDB Streams:有序的變更記錄,搭配 AWS Lambda 實作事件驅動模式。
  • DynamoDB Accelerator(DAX):位於 DynamoDB 前面的記憶體內快取(Cache),提供微秒級讀取。
  • 最長 35 天的時間點還原,並整合 AWS Backup 做連續備份。
  • 透過 IAM 政策提供資料表、項目與屬性層級的細緻存取控制。

何時該選 Amazon DynamoDB

當你需要在大規模下具備可預測的低延遲、存取模式已知且簡單(以鍵查詢、以鍵寫入),並且不需要伺服器端 JOIN 或複雜的臨時查詢時,就選 Amazon DynamoDB。典型使用情境包含遊戲排行榜、Session 儲存、IoT 裝置狀態、購物車、使用者個人資料,以及任何需要從零擴展到每秒數百萬請求的無伺服器微服務。

DynamoDB 就傳統意義而言是無固定結構的,但仍然需要嚴謹的前置資料建模。你必須圍繞應用程式將執行的查詢來設計分割鍵、排序鍵與全域次要索引。你無法對 DynamoDB 撰寫即興的 SQL。若考生誤以為「NoSQL 等於不用規劃」,就會在那些把 DynamoDB 與需要 JOIN 或複雜交易的關聯式工作負載配對的情境題中失分。 Reference: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html

Amazon ElastiCache —— 提供次毫秒讀取的記憶體內快取

Amazon ElastiCache 是全代管的記憶體內資料儲存,支援兩種引擎:ElastiCache for Redis 與 ElastiCache for Memcached。ElastiCache 會架設在你主要的 AWS 資料庫服務(Amazon RDS、Amazon Aurora、Amazon DynamoDB)之前,用來快取熱門項目、Session token、驗證狀態或預先算好的動態牆。

ElastiCache for Redis vs ElastiCache for Memcached

  • ElastiCache for Redis —— 豐富的資料型別(list、set、sorted set、hash、stream)、複寫、持久化、pub/sub、Lua 腳本、具自動容錯移轉的 Multi-AZ,以及加密。
  • ElastiCache for Memcached —— 多執行緒、純快取、無持久化、無複寫,僅支援水平分片。

ElastiCache 是為最終儲存在他處的資料加速讀取。真正的真相來源仍然是 Amazon RDS、Amazon Aurora 或 Amazon DynamoDB。如果考題情境要求一個「持久性的主要儲存」,即使 ElastiCache 很快,它也是錯的答案。如果情境明確提到「快取」、「次毫秒延遲」或「降低資料庫負載」,那 ElastiCache 就是正解。 Reference: https://aws.amazon.com/elasticache/

Amazon MemoryDB for Redis —— 具持久性的記憶體內主要資料庫

Amazon MemoryDB for Redis 模糊了 ElastiCache 與主要儲存之間的界線。MemoryDB 使用 Redis API,但加入了 Multi-AZ 的持久性 —— 透過跨可用區保存寫入的分散式交易日誌。對於需要微秒級讀取、個位數毫秒寫入,同時又要有持久性的應用(例如即時銀行、遊戲狀態、串流平台),可以用 MemoryDB 當作主要資料庫,而不必搭配 ElastiCache 加上另一個持久儲存。

Amazon Neptune —— 代管圖形資料庫

Amazon Neptune 是全代管的圖形資料庫,同時支援屬性圖(Apache TinkerPop Gremlin)與 RDF(SPARQL)兩種查詢模型。圖形資料庫以節點與邊來建模資料,非常適合以關係作為主要查詢對象的場景。典型的 Amazon Neptune 工作負載包含社群網路、詐騙偵測、知識圖譜、推薦引擎與身分解析。在 CLF-C02 考試中,只要情境強調「高度相連的資料」或「關係走訪」,Amazon Neptune 就是正解。

Amazon Redshift —— PB 等級資料倉儲

Amazon Redshift 是 AWS 的全代管、欄式、大規模平行處理資料倉儲,專為線上分析處理(OLAP)設計。Redshift 針對 TB 到 PB 等級的結構化與半結構化資料上的複雜分析查詢做了最佳化。Redshift Spectrum 將查詢延伸到直接存放在 Amazon S3 的資料,而 Redshift Serverless 則為流量尖峰不穩的分析工作負載免除容量規劃。

Redshift 是欄式資料倉儲。它針對跨數百萬列(Row)的大型彙總查詢做了最佳化,而非針對低延遲插入或更新單一列的交易式工作負載。如果情境提到電商結帳、Session 狀態或使用者個人資料寫入,就不要選 Redshift —— 應改選 Amazon RDS、Amazon Aurora 或 Amazon DynamoDB。Redshift 屬於分析服務組合,在 ai-ml-analytics-services 主題中會有更深入的介紹。 Reference: https://aws.amazon.com/redshift/

Amazon DocumentDB —— 相容 MongoDB 的文件型儲存

Amazon DocumentDB(具 MongoDB 相容性)是代管的文件型資料庫,支援 MongoDB 3.6、4.0 以及 5.0 API。儲存自描述 JSON 文件的應用(例如商品目錄、內容管理、結構會持續演進的使用者個人資料)可以把 Amazon DocumentDB 當作 MongoDB 的直接替代,同時把營運工作卸載給 AWS。DocumentDB 與 Amazon Aurora 類似,將運算和儲存解耦,每個叢集最多可擴展 15 個 Read Replica。

Amazon Timestream —— 時序資料庫

Amazon Timestream 是專為 IoT 遙測、DevOps 可觀測性與工業感測器資料打造的時序資料庫。時序資料具有獨特樣態:高寫入量、僅追加寫入、以時間為主的查詢(最近一分鐘、最近一小時、滾動視窗),以及資料會隨時間從「熱」變「冷」。Amazon Timestream 提供分層儲存(近期資料存於記憶體內、歷史資料存於磁性層)以及內建的時序分析函式 —— 這些若要在一般關聯式引擎上實作會相當彆扭。

AWS Database Migration Service(AWS DMS)

AWS Database Migration Service 可快速且安全地將資料庫遷移到 AWS。遷移期間,來源資料庫仍可持續運作,將相依應用的停機時間壓到最低。AWS DMS 支援大量的來源/目標引擎組合矩陣。

同質 vs 異質遷移

  • 同質遷移 —— 來源與目標引擎相同(例如地端 MySQL → Amazon RDS for MySQL;Oracle → Amazon RDS for Oracle)。AWS DMS 直接搬運資料。
  • 異質遷移 —— 來源與目標引擎不同(例如 Oracle → Amazon Aurora PostgreSQL;SQL Server → Amazon RDS for PostgreSQL)。你需要搭配 AWS DMS 處理資料,再由 AWS Schema Conversion Tool(AWS SCT)處理資料表、檢視表、預存程序等結構物件。

AWS Schema Conversion Tool(AWS SCT)

AWS SCT 會把來源資料庫的結構以及大部分應用程式代碼(檢視表、預存程序、函式)轉換成與目標引擎相容的格式。無法自動轉換的物件會在評估報告中被標記,供你手動改寫。AWS SCT 與 AWS DMS 搭配使用:SCT 負責搬運結構外殼,DMS 負責搬運(並持續複寫)資料。

連續資料複寫

AWS DMS 可執行一次性全量載入、全量載入後接變更資料擷取(CDC),或純 CDC 的持續複寫。CDC 模式會讓來源與目標保持同步,讓你能夠在準備好的時候切換 —— 典型停機時間以分鐘計,而非以天計。

在 CLF-C02 考試中,請記住這個經典配對:如果情境是從商用引擎(Oracle、SQL Server)遷移到開源或 AWS 原生引擎(PostgreSQL、MySQL、Amazon Aurora),正解就是以 AWS DMS 負責資料搬運,以 AWS Schema Conversion Tool 負責結構轉換。如果兩邊是同一種引擎,則只需要 AWS DMS。 Reference: https://aws.amazon.com/dms/

AWS 資料庫服務比較矩陣

考試偏好能迅速把情境關鍵字對應到正確 AWS 資料庫服務的考生。以下比較將整個產品組合壓縮成一張參考視圖。

關聯式 vs NoSQL

Amazon RDS 與 Amazon Aurora 屬於關聯式:嚴格的結構(Schema)、SQL 查詢、ACID 交易、跨資料表(Table)的 JOIN。Amazon DynamoDB 屬於 NoSQL 鍵值/文件型:彈性屬性、以分割鍵存取、水平擴展且無需手動調校。

代管 vs 無伺服器

Amazon RDS 與 Amazon Aurora Provisioned 是代管式 —— 你仍需挑選執行個體類別並依小時計費。Amazon DynamoDB(On-Demand)與 Aurora Serverless v2 是無伺服器 —— 依請求或依伸縮後的容量單位計費。Amazon ElastiCache 與 Amazon MemoryDB for Redis 則是代管的節點式叢集。

專用引擎回顧

  • RDBMS:Amazon RDS(六種引擎)、Amazon Aurora(AWS 原生)。
  • 鍵值/文件 NoSQL:Amazon DynamoDB。
  • 記憶體內快取:Amazon ElastiCache(Redis、Memcached)。
  • 記憶體內持久資料庫:Amazon MemoryDB for Redis。
  • 圖形:Amazon Neptune。
  • 資料倉儲/分析:Amazon Redshift。
  • 文件(相容 MongoDB):Amazon DocumentDB。
  • 時序:Amazon Timestream。
  • 帳本(不可變、可加密驗證):Amazon QLDB(CLF-C02 僅需基礎認識)。
  • 寬欄:Amazon Keyspaces for Apache Cassandra(僅需基礎認識)。

必背的關鍵數字

  • Amazon RDS 支援 6 種引擎(MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Amazon Aurora)。
  • Amazon Aurora 相較 MySQL 最多 5 倍吞吐量、相較 PostgreSQL 最多 3 倍,儲存層跨 3 個可用區做 6 份複寫。
  • Amazon Aurora Global Database 支援最多 5 個次要區域。
  • Amazon DynamoDB 提供個位數毫秒延遲,搭配 DAX 可達微秒級。
  • Amazon RDS 自動備份最多保留 35 天;DynamoDB 的時間點還原同樣涵蓋 35 天。
  • Amazon RDS 每個來源最多支援 5 個 Read Replica(MySQL/PostgreSQL/MariaDB);Aurora 支援到 15 個。

需要關聯式與 SQL → Amazon RDS 或 Amazon Aurora。已知鍵的大規模 NoSQL → Amazon DynamoDB。前置快取 → Amazon ElastiCache。圖形關係 → Amazon Neptune。TB 等級以上分析 → Amazon Redshift。JSON 文件(MongoDB)→ Amazon DocumentDB。感測器或時序 → Amazon Timestream。把資料庫遷進 AWS → AWS DMS(引擎不同時再加 AWS SCT)。 Reference: https://aws.amazon.com/products/databases/

AWS 資料庫服務常見考試陷阱

CLF-C02 題庫幾乎必考以下這些陷阱。考前請逐一走過一次。

陷阱 1:Amazon RDS vs Amazon DynamoDB 的選擇

考題會描述某個工作負載,並問你該選哪一項 AWS 資料庫服務。當情境出現 SQL、JOIN、交易完整性或「關聯式」時,答案是 Amazon RDS;當情境出現鍵值存取、每秒數百萬請求、巨量規模或「NoSQL」時,答案是 Amazon DynamoDB。如果情境提到「在任意規模下以個位數毫秒延遲進行無固定結構的鍵值查詢」,正解是 Amazon DynamoDB —— 不是 Amazon RDS。

陷阱 2:Aurora 既是 RDS 引擎,也是獨立品牌

Amazon Aurora 同時是 Amazon RDS 內的引擎選項,也是單獨行銷的服務。如果選項中同時出現「Amazon RDS for PostgreSQL」與「Amazon Aurora PostgreSQL-Compatible Edition」,當情境強調效能、雲端規模儲存或全球部署時,通常更偏 AWS 原生的那一個(Aurora)才是正解。

陷阱 3:ElastiCache 不是主要資料庫

提到「減輕資料庫的讀取壓力」、「Session 快取」或「次毫秒排行榜」的情境應選 Amazon ElastiCache。提到持久性、交易或真相來源的情境則不適合 ElastiCache。

陷阱 4:Redshift 不是給 OLTP 用的

Redshift 是分析用的資料倉儲。即便情境提到「SQL」,只要是面向使用者的交易式應用,就不要選它。

陷阱 5:只用 DMS vs DMS + SCT

異質遷移需要 AWS DMS 加上 AWS SCT。同質遷移則只需要 AWS DMS。描述「從 Oracle 遷移到 PostgreSQL」的題目就是典型的異質遷移觸發詞 —— 正解配對是 AWS DMS + AWS SCT。

陷阱 6:在 EC2 上自管資料庫

你隨時可以在 EC2 上跑任何資料庫,但只要情境優先考慮低營運負擔、自動備份或高可用性,CLF-C02 考試就傾向選 AWS 資料庫服務。只要正解涉及「最少營運投入」,就往 Amazon RDS、Amazon Aurora 或 Amazon DynamoDB 靠,而不是 EC2 上自管的資料庫。

AWS 資料庫服務 vs AWS 儲存服務 —— 認清邊界

由於 Amazon S3 也會存資料,有些考生會把它與資料庫混淆。S3 是物件儲存:針對耐久性與吞吐量最佳化,並不是為了索引化的列層級查詢或 ACID 交易。Amazon RDS、Amazon Aurora 與 Amazon DynamoDB 才是會回傳記錄並強制結構(關聯式)或存取模式(NoSQL)的 AWS 資料庫服務。CLF-C02 考試指南因此將任務陳述 3.4(AWS 資料庫服務)與任務陳述 3.6(AWS 儲存服務)清楚區分。

真實世界情境:挑選正確的 AWS 資料庫服務

一個務實的 AWS 解決方案通常會組合多項 AWS 資料庫服務。以一個零售電商平台為例:

  • Amazon RDS for PostgreSQL 或 Amazon Aurora PostgreSQL —— 需要 ACID 交易與 JOIN 的訂單、發票與客戶紀錄。
  • Amazon DynamoDB —— 大規模的購物車、Session 狀態與商品目錄查詢。
  • Amazon ElastiCache for Redis —— 熱銷商品排行榜,以及快取搜尋結果。
  • Amazon Redshift —— 跨多年銷售歷史的商業智慧查詢。
  • Amazon Neptune —— 把顧客、商品與購買行為串連起來的推薦圖譜。
  • AWS DMS —— 在遷移視窗期間,從地端的 Oracle 舊系統持續複寫資料到 Amazon Aurora。

CLF-C02 不會要你設計出這整幅拼圖,但會測試你能否把單一情境敘述對應到正確的 AWS 資料庫服務。

跨 AWS 資料庫服務的資料庫安全與可觀測性

所有 AWS 資料庫服務都會整合 AWS Identity and Access Management 做身分驗證、AWS KMS 做靜態加密、Amazon CloudWatch 做指標監控、AWS CloudTrail 做 API 稽核,以及 AWS Backup 做集中備份政策。Amazon RDS、Amazon Aurora 與 Amazon DynamoDB 另外支援以 VPC 做網路隔離,其中 Amazon DynamoDB 透過 AWS 服務端點存取(包含經由 AWS PrivateLink 的 VPC 端點)。傳輸中加密方面,Amazon RDS 與 Amazon Aurora 以 SSL/TLS 強制執行,Amazon DynamoDB 則走 HTTPS。

AWS 資料庫服務的成本調整槓桿

  • Amazon RDS —— 選擇引擎、執行個體類別、儲存類型(gp3 vs io1/io2)、Multi-AZ 開關、Reserved Instance 合約期間。
  • Amazon Aurora —— Provisioned 或 Serverless v2,儲存會自動擴充,只需為實際使用量付費。
  • Amazon DynamoDB —— On-Demand 或 Provisioned 容量、DAX 快取大小、Global tables 複寫費用。
  • Amazon ElastiCache —— 節點類型與數量、Reserved Node 折扣。
  • Amazon Redshift —— Provisioned 或 Serverless、Reserved node、Redshift Spectrum 掃描資料量。
  • AWS DMS —— 複寫執行個體大小與小時數、跨區域資料傳輸。

在佈建 Amazon RDS、Amazon Aurora、Amazon DynamoDB 或任何 AWS 資料庫服務之前,請把執行個體類別、儲存、備份保留與跨區域複寫填進 AWS Pricing Calculator。Amazon RDS 與 Amazon Aurora 通常是按小時計費再加上儲存;Amazon DynamoDB 則以容量單位(Provisioned)或每次請求(On-Demand)計費。把數字算對,就能避免月底帳單驚嚇。 Reference: https://calculator.aws/

必背關鍵數字與事實

  • Amazon RDS 支援 6 種引擎(MySQL、MariaDB、PostgreSQL、Oracle、SQL Server、Amazon Aurora)。
  • Amazon Aurora:相容 MySQL 與 PostgreSQL,最多 5 倍 MySQL/3 倍 PostgreSQL 效能。
  • Amazon Aurora 儲存:跨 3 個可用區保存 6 份副本。
  • Amazon DynamoDB:無伺服器 NoSQL 鍵值/文件,個位數毫秒延遲,Global tables 支援跨區域主動/主動。
  • Amazon ElastiCache:Redis(豐富資料型別、複寫)或 Memcached(多執行緒、單純快取)。
  • Amazon MemoryDB for Redis:具持久性、相容 Redis 的主要資料庫。
  • Amazon Neptune:圖形(Gremlin + SPARQL)。
  • Amazon Redshift:PB 等級的欄式資料倉儲,用於分析。
  • Amazon DocumentDB:相容 MongoDB 的文件型儲存。
  • Amazon Timestream:專為時序資料打造的資料庫。
  • AWS DMS:以最少停機時間進行同質與異質遷移,並支援 CDC 連續複寫。
  • AWS SCT:異質遷移的結構轉換;與 AWS DMS 搭配使用。

任務 3.4 練習題關鍵字提示

看到以下關鍵字時,請立刻把它對應到 AWS 資料庫服務:

  • 「關聯式」、「SQL」、「JOIN」、「ACID」、「既有的 PostgreSQL/MySQL/Oracle/SQL Server 工作負載」→ Amazon RDS。
  • 「雲端原生效能、相容 MySQL/PostgreSQL、跨區域災難復原 RPO 低於 1 秒」→ Amazon Aurora。
  • 「鍵值」、「個位數毫秒」、「無伺服器 NoSQL」、「大規模但存取模式簡單」→ Amazon DynamoDB。
  • 「快取」、「記憶體內」、「次毫秒讀取」、「降低資料庫負載」→ Amazon ElastiCache(Redis 或 Memcached)。
  • 「持久性 Redis 主要儲存」、「具持久性與 Multi-AZ 的記憶體內資料庫」→ Amazon MemoryDB for Redis。
  • 「圖形」、「關係」、「社群網路」、「詐騙集團偵測」→ Amazon Neptune。
  • 「資料倉儲」、「分析」、「PB 等級彙總」→ Amazon Redshift。
  • 「相容 MongoDB」、「JSON 文件」→ Amazon DocumentDB。
  • 「時序」、「IoT 遙測」、「監控指標」→ Amazon Timestream。
  • 「以最少停機時間遷移既有資料庫」→ AWS DMS(引擎不同時再加 AWS SCT)。

FAQ —— AWS 資料庫服務熱門問題

1. Amazon RDS 和 Amazon DynamoDB 最主要的差別是什麼?

Amazon RDS 是代管的關聯式資料庫,支援六種 SQL 引擎之一(MySQL、MariaDB、PostgreSQL、Oracle、SQL Server、Amazon Aurora),能做 JOIN、交易以及結構化的 Schema。Amazon DynamoDB 是無伺服器的 NoSQL 鍵值/文件型資料庫,在任意規模下都能提供個位數毫秒延遲,但不支援 SQL JOIN。當情境需要關聯式能力時選 Amazon RDS;當情境強調巨量規模、無伺服器營運或單純的鍵值存取時選 Amazon DynamoDB。

2. Amazon Aurora 是 Amazon RDS 的一部分還是獨立服務?

兩者皆是。Amazon Aurora 是 Amazon RDS 內的引擎選項(因此繼承 RDS 管控平面的備份、監控與修補),但因為 AWS 重寫了儲存層以提供更高吞吐量,以及 Aurora Global Database 與 Aurora Serverless v2 這類雲端原生功能,所以也有獨立品牌。就考試而言,當情境強調雲端規模效能或全球部署時,把 Amazon Aurora 視為 AWS 原生、高效能的 RDS 引擎就好。

3. 什麼時候該選 Amazon ElastiCache 而不是 Amazon DynamoDB?

Amazon ElastiCache 是主要資料庫前面的快取。當讀取又熱又重複(Session token、排行榜、快取查詢)且你想要微秒級回應、又不想打到主要儲存時,就用 ElastiCache。Amazon DynamoDB 本身就是主要儲存 —— 具持久性、跨可用區複寫、支援時間點還原。如果情境需要「真相來源級」的持久性,DynamoDB 勝出;如果情境是把既有資料庫的讀取流量卸載掉,ElastiCache 勝出。

4. AWS DMS 和 AWS Schema Conversion Tool(AWS SCT)有什麼差別?

AWS DMS 搬運的是資料 —— 它以最少停機時間把列(Row)從來源資料庫複寫到目標資料庫,包含連續的 CDC 複寫。AWS SCT 轉換的是資料庫物件(資料表、檢視表、預存程序、函式)—— 例如把 Oracle PL/SQL 轉成 PostgreSQL PL/pgSQL。同質遷移(兩邊引擎相同)只需要 AWS DMS。異質遷移(引擎不同)則需要 AWS DMS 加 AWS SCT。

5. 我能在 Amazon EC2 上自己跑資料庫,而不用 AWS 資料庫服務嗎?

可以,任何資料庫引擎都能自行安裝在 EC2 執行個體上。不過所有營運工作都會由你自己扛:OS 修補、引擎升級、備份、容錯移轉自動化與高可用性設計。CLF-C02 考題若強調「最少營運負擔」、「全代管」或「沒有基礎設施要管」,會偏好 AWS 資料庫服務(Amazon RDS、Amazon Aurora、Amazon DynamoDB)勝過 EC2 上自管的資料庫。只有在情境明確提到自訂或不受支援的引擎、需要 OS 層級控制、或是授權條款禁止使用代管服務時,才選 EC2 自管。

6. IoT 感測器資料應該選哪一項 AWS 資料庫服務?

Amazon Timestream 是專為 IoT 遙測、DevOps 指標與工業感測器串流打造的時序資料庫。它提供分層儲存(記憶體內熱層 + 磁性冷層)以及內建時序分析函式。在 CLF-C02 中,只要情境提到帶時間戳的感測器資料、監控事件或跨時間的滾動視窗彙總,都要對應到 Amazon Timestream。

7. AWS 資料庫服務會自動加密資料嗎?

大多數 AWS 資料庫服務都支援以 AWS KMS 做靜態加密,以及以 SSL/TLS 或 HTTPS 做傳輸中加密。對 Amazon RDS 與 Amazon Aurora 而言,你需在建立資料庫時使用 AWS KMS 金鑰(AWS 代管或客戶代管)啟用靜態加密。Amazon DynamoDB 則預設會以 AWS 自有金鑰加密所有新資料表,並提供升級至 AWS 代管或客戶代管 KMS 金鑰的選項。在 AWS 共同責任模型下,AWS 提供加密能力 —— 是否啟用以及選哪把金鑰則由身為客戶的你決定。

延伸閱讀

官方資料來源