AWS 認證準備 ch05 資料庫服務
下一章→
CH 05 高頻考點

資料庫服務

RDSAuroraDynamoDBElastiCacheRedshift

本章比較 AWS 主要的資料庫選項:關聯式(RDS / Aurora)、NoSQL(DynamoDB)、快取(ElastiCache)與資料倉儲(Redshift)。考試重點在於依情境(延遲需求、擴展模式、一致性要求)判斷該選哪一種,而不是死背功能列表。

🧱 白話:Read Replica 的原理是「讀寫分離」——主庫負責寫、影印幾份分身分攤讀流量(非同步抄寫,所以有複本延遲);Multi-AZ 則是「待命備援」。SQL vs NoSQL、交易、索引、一致性這些本章會一直用到的地基,見 基礎篇 ch07 資料庫基礎。

這是 SAA 考試中最常出現的資料庫比較,必須清楚兩者的目的完全不同:

  • Multi-AZ(多可用區)— 高可用 HA:在另一個 AZ 維持一個同步的 Standby 副本。主要 DB 故障時自動切換(Failover),DNS 端點不變。重點:Standby 副本不接受讀取請求,純粹是備用。
  • Read Replicas(讀取副本)— 效能擴展:非同步複製到最多 5 個讀取副本,可在同 AZ、跨 AZ 或跨 Region。讀取副本可接受查詢(SELECT),分擔主要 DB 的讀取壓力。可以將 Read Replica 提升(Promote)為獨立的 DB。
⭐ 記住:Multi-AZ = 高可用(HA),主要 DB 故障時自動切換;Read Replicas = 讀取擴展(Scalability),減輕主要 DB 查詢負擔。
💡 RDS 進階功能:
• RDS Proxy:在應用程式和 RDS 之間的連線池代理。減少 RDS 連線數(特別適合 Lambda + RDS),提升容錯性(主 DB 故障切換時,應用程式不需要重連)。
• RDS Snapshots:手動快照保留直到你刪除;自動備份保留 1-35 天。跨 Region 複製快照可實現異地備援。
• 加密:靜態加密(at-rest)用 KMS,加密的是底層儲存、自動備份、快照與唯讀副本;傳輸中加密(in-transit)則是用 SSL/TLS 連線,兩者是不同的東西、要分開設定。
🚨 加密最容易考的一點:RDS 靜態加密只能在「建立資料庫的當下」啟用,事後不能對執行中的未加密實例直接打開開關。既有的未加密實例要補加密,唯一路徑是:建立快照 → 把快照「複製」成加密快照(複製時指定 KMS 金鑰)→ 從加密快照還原成一台新實例 → 把應用程式切到新端點。另外:未加密的實例不能有加密的 Read Replica,反之亦然;而加密完全不影響備份與還原功能。
🚨 考試陷阱:Read Replica 跨 Region 複製有網路費用;同 AZ 或跨 AZ(同 Region)的 Read Replica 沒有複製費用。
  • Aurora 基礎:AWS 完全自研的雲端原生關聯式資料庫,相容 MySQL(快 5 倍)和 PostgreSQL(快 3 倍)。費用比 RDS 高約 20%,但效能大幅提升。
  • 儲存架構:自動跨 3 個 AZ 存 6 份資料(Quorum/法定人數機制——不必等「全部」複本都確認才算數,只要湊到「過半數」的複本回應就好,這樣即使少數複本所在的 AZ 掛掉也不影響服務)。寫入:4/6 成功即確認;讀取:3/6 即可。這兩個數字不是隨便選的:寫入門檻(4) + 讀取門檻(3) > 總數(6),可以保證每次讀取一定會碰到至少一份「最新」的複本(因為讀寫的複本集合一定有重疊),同時就算 1 個 AZ(2 份複本)整個掛掉,剩下 4 份仍然湊得出寫入門檻,服務不中斷。單一 Volume,但自動擴展(10GB 增量,最大 128 TB)。
  • Aurora Read Replicas:最多 15 個讀取副本(RDS 只有 5 個),同一底層 Storage,延遲極低(10ms 以內)。Reader Endpoint 可以自動負載平衡讀取請求。
  • Aurora Serverless:自動依需求調整容量,適合不頻繁或不可預測的工作負載,按實際使用量計費(無需預配置)。
  • Aurora Backtrack(倒帶):把整個叢集原地倒帶回過去某個時間點(最多 72 小時內,秒到分鐘級完成),用來救「誤刪資料表、跑錯一支 UPDATE」這類人為失誤。關鍵差別在不會產生新實例——端點、連線字串都不變,應用程式不用改設定;相對地,快照還原(Restore)會建出一台全新實例,動輒數十分鐘且要重接端點。
    ・限制:僅 Aurora MySQL 相容版支援(PostgreSQL 版沒有),且必須建立叢集時就啟用,另外按保留的變更紀錄計費。
    ・倒帶是「可逆」的:倒過頭了還能再往前倒回來,但倒帶期間資料庫會短暫中斷。
  • Aurora Global Database:一個主 Region 可寫入,最多 5 個次要 Region 只讀。次要 Region 的延遲不到 1 秒。主 Region 故障時,可在 1 分鐘內將次要 Region 提升為主要。
  • Aurora Multi-Master:多個寫入節點,實現寫入高可用(預設 Aurora 只有一個可寫入節點)。
⭐ Aurora 考試重點:6 份複本跨 3 AZ,Quorum 4/6 寫入成功;比 RDS 最多 15 個讀取副本(RDS 只有 5 個)。
  • 核心特性:完全託管的 NoSQL 鍵值 + 文件資料庫,Serverless(無需管理伺服器)。個位數毫秒延遲,自動擴展,適合任何規模。
  • 主鍵:Partition Key(分區鍵)+ 可選的 Sort Key(排序鍵)。資料依 Partition Key 分散到不同分區。
  • 讀取模式:Eventually Consistent(最終一致,預設,便宜)或 Strongly Consistent(強一致,貴)。
  • 容量模式:Provisioned vs On-Demand(考試很愛考的二選一):
    ・DynamoDB 的吞吐量用 RCU/WCU 計量——1 WCU = 每秒寫入 1 筆 1KB 以內的資料;1 RCU = 每秒 1 次「最終一致讀取」2 筆 4KB 以內(強一致讀取只有一半,也就是 1 筆)。
    ・Provisioned(佈建容量):事先講好每秒要多少 RCU/WCU,照佈建量計費(用不用都要付)。可掛 Auto Scaling 依實際用量調整,但擴容需要時間,突然的尖峰仍可能被限流(throttling,回 ProvisionedThroughputExceededException)。適合流量穩定、可預估的負載,單價最便宜。
    ・On-Demand(按需容量):不用預估,照實際請求數計費,瞬間吸收尖峰、閒置時幾乎不花錢。單價比 Provisioned 貴數倍,但省下預估與被限流的風險。適合全新、尖峰不可預測、或長時間閒置的應用。
    ・兩種模式可以隨時互換(同一張表每 24 小時可切換一次)。
  • 次要索引:GSI vs LSI——主鍵以外的欄位不能直接查(只能整表掃描 Scan,慢又貴),要用非主鍵欄位查詢就得建次要索引:
    ・GSI(Global Secondary Index,全域次要索引):可指定和主表完全不同的 partition key / sort key,建表後可隨時新增或刪除,有自己獨立的 RCU/WCU,只支援最終一致讀取。
    ・LSI(Local Secondary Index,本地次要索引):partition key 必須和主表相同,只能換 sort key;只能在建表當下建立、之後不能加也不能刪,共用主表的容量,支援強一致讀取。
    ・口訣:要換 partition key、或表已經上線了 → 只能 GSI;同一個 partition key 底下想換個排序方式、且還沒建表 → LSI。
  • DAX(DynamoDB Accelerator):DynamoDB 的記憶體快取,讀取延遲從毫秒降到微秒。不需要修改應用程式程式碼(相容 DynamoDB API)。
  • DynamoDB Streams:捕捉表格中的變更事件(插入/修改/刪除),可用來觸發 Lambda(類似 CDC)。
  • Global Tables:多 Region 的多主(Multi-Master)寫入,讓全球用戶都能就近低延遲讀寫。需要先啟用 Streams。
  • TTL:設定物件的到期時間,自動刪除過期資料,不額外收費。
⭐ DynamoDB 選擇場景:需要超高吞吐量、Serverless、彈性 Schema、NoSQL → 選 DynamoDB。需要複雜 SQL JOIN、事務處理 → 選 RDS/Aurora。

ElastiCache 是 AWS 管理的記憶體快取服務,提供 Redis 和 Memcached 兩種引擎:

  • Redis:
    ・支援資料持久化(AOF/RDB),重啟後資料不遺失
    ・支援Multi-AZ + Read Replicas(高可用)
    ・支援複雜資料結構(List, Set, Sorted Set, Hash)
    ・支援 Pub/Sub、Lua 腳本
    ・支援 Backup/Restore
    ・適合:Session 管理、排行榜(Leaderboard)、即時分析
  • Memcached:
    ・純快取,不支援持久化,重啟資料全部遺失
    ・支援多執行緒(Multi-threaded),比 Redis 更能利用多核心
    ・架構更簡單,只支援基本的 Key-Value
    ・不支援 Backup/Restore、Replication、Multi-AZ
    ・適合:大規模靜態資料快取、只需要高速讀取的場景

快取策略(Caching Strategy):選了引擎之後,還要決定「資料什麼時候進快取」。考題常用敘述而不是名詞來問,兩種策略各自的缺點就是判斷關鍵:

  • Lazy Loading(惰性載入,又稱 Cache-Aside):應用程式先問快取,沒命中(cache miss)才回資料庫撈,撈完順手寫進快取,下次就有了。
    ・優點:只有真正被讀到的資料才佔快取空間;快取節點掛掉不會導致功能壞掉(只是變慢)。
    ・缺點:每一筆資料的第一次讀取一定是慢的(要吃 3 趟:問快取→查 DB→寫快取);而且資料庫被改過時快取不會自己更新,可能讀到陳舊資料(stale data)。
  • Write-Through(寫穿):每次寫資料庫時,同步把新值也寫入快取。
    ・優點:快取裡的資料永遠是新的,不會有陳舊問題;讀取一律命中。
    ・缺點:每次寫入都變慢、成本變高;而且會快取到「寫了但根本沒人讀」的資料,浪費記憶體;新加的快取節點在有人寫入前是空的(missing data)。
  • TTL(Time To Live,存活時間):不是獨立的第三種策略,而是補在前兩者上的保險——給每筆快取設到期時間,時間到自動失效重抓。實務上最常見的組合就是 Lazy Loading + TTL,用可接受的過期時間換掉「無限期陳舊」的風險。
💡 判斷法:題目抱怨「快取的資料是舊的/和資料庫不一致」 → 答 Write-Through(或加 TTL);抱怨「快取塞滿了用不到的資料/寫入變慢」 → 答 Lazy Loading。
⭐ 選擇口訣:需要持久化、高可用、複雜資料結構 → Redis;只需要純快取、多執行緒、最簡單 → Memcached
🚨 考試陷阱:題目問「需要資料備份/恢復的快取」→ 只有 Redis 支援 Backup。Memcached 重啟後快取清空。

Amazon Redshift(資料倉儲):

  • OLAP(Online Analytical Processing,線上分析處理)資料倉儲,列式儲存。比 OLTP(RDS,Online Transaction Processing,線上交易處理,逐筆新增/查詢/修改單一訂單這類日常操作)快 10 倍用於分析查詢。兩者的本質差異在儲存方式:OLTP 是「行式儲存」,把同一筆資料(一整列,例如一張訂單的所有欄位)放在一起,適合快速存取單筆完整資料;OLAP 是「列式儲存」,把同一個欄位(例如所有訂單的「金額」)集中存放,分析查詢通常只需要少數幾個欄位、但要掃過大量筆數做加總/平均,只讀需要的欄位、不必連帶讀取整列其他無關資料,因此快非常多。
  • 適合:BI(商業智慧)、報表、大數據分析、ETL 後的分析。
  • Redshift Spectrum:直接查詢 S3 上的資料(不需要載入 Redshift),擴展 Redshift 的查詢能力。
  • 支援 Multi-AZ(較新功能),原本只有單 AZ。

其他專用資料庫:

  • DocumentDB:相容 MongoDB 的文件資料庫,AWS 管理版 MongoDB。
  • Neptune:圖資料庫(Graph DB)。適合:社交網路、知識圖譜、推薦系統。
  • ElasticSearch / OpenSearch Service:搜尋和分析引擎。適合:日誌分析、全文搜尋。
  • Timestream:時間序列資料庫。適合:IoT 資料、監控指標。
  • QLDB(Quantum Ledger DB):不可更改的帳本資料庫,記錄完整歷史。適合:金融交易紀錄。
💡 OLTP(事務)→ RDS/Aurora;OLAP(分析)→ Redshift;NoSQL/高吞吐 → DynamoDB;快取 → ElastiCache;圖 → Neptune;文件 → DocumentDB
RDS Multi-AZ vs Read Replicas
特性Multi-AZRead Replicas
目的高可用(HA)/ 災難恢復讀取效能擴展
複製方式同步(Synchronous)非同步(Asynchronous)
接受讀取?❌ Standby 不接受讀取✅ 可接受 SELECT
故障切換✅ 自動 Failover(60-120秒)❌ 需手動 Promote
部署位置不同 AZ(同 Region)同 AZ / 跨 AZ / 跨 Region
最多幾個1 個 Standby最多 5 個(Aurora 15 個)
網路費用無額外費用跨 Region 有費用
DynamoDB GSI vs LSI
特性GSI(全域次要索引)LSI(本地次要索引)
Partition Key可與主表不同必須與主表相同
Sort Key可自由指定(可有可無)換成別的欄位(必填)
何時能建立建表後隨時新增/刪除只能在建表當下,事後不能加也不能刪
容量(RCU/WCU)獨立佈建,與主表分開共用主表容量
一致性只支援最終一致讀取可強一致讀取
數量上限每張表 20 個(可申請提高)每張表 5 個
ElastiCache Redis vs Memcached
特性RedisMemcached
資料持久化✅ 支援(AOF/RDB)❌ 不支援
高可用✅ Multi-AZ + Read Replicas❌ 不支援
Backup/Restore✅ 支援❌ 不支援
資料結構豐富(String, List, Set, Hash, Sorted Set...)只有 Key-Value
多執行緒單執行緒(Redis 6+ 部分多執行緒)✅ 原生多執行緒
Pub/Sub✅ 支援❌
適合場景Session、排行榜、即時分析純快取、多執行緒高吞吐
資料庫選擇指南
需求選擇理由
關聯式DB、OLTP、複雜 SQLRDS(MySQL/PostgreSQL)標準 RDBMS,支援 SQL
需要高可用 + 高效能的關聯式 DBAurora比 RDS 快 5x,6份複本,15個副本
高吞吐量 NoSQL、ServerlessDynamoDB個位數毫秒,無限擴展
資料倉儲、BI 分析、OLAPRedshift列式儲存,分析查詢快 10x
記憶體快取(需持久化)ElastiCache Redis支援備份和高可用
記憶體快取(純快取)ElastiCache Memcached多執行緒,架構簡單
MongoDB 相容文件 DBDocumentDBAWS 管理的 MongoDB
圖資料(社交網路/推薦)Neptune圖資料庫專用

練習題 點選選項查看解析

0 / 24
01 / 24
一個電商網站的 RDS MySQL 資料庫在促銷活動期間讀取查詢量暴增,導致效能降低,但寫入量沒有顯著增加。最佳解決方案是?
A 升級 RDS Instance 規格
B 啟用 RDS Multi-AZ 備援
C 建立多個 Read Replicas
D 遷移到 Amazon DynamoDB
解析
Read Replicas 專門用於擴展讀取效能。建立讀取副本後,將應用程式的 SELECT 查詢導向 Read Replica 的 Endpoint,主 DB 只負責寫入。Multi-AZ 的 Standby 副本不接受讀取請求,無法分擔讀取壓力。升級 Instance 類型是垂直擴展,費用高且有上限。
02 / 24
一個應用程式使用 AWS Lambda 函數存取 RDS PostgreSQL。在高峰期,Lambda 函數因並發執行而產生大量資料庫連線,導致 RDS 連線數超限報錯。最佳解決方案是?
A 調高 max_connections 參數
B 加入 Amazon RDS Proxy
C 改用 EC2 自管連線池
D 換成 Amazon DynamoDB
解析
RDS Proxy 是專門為這個場景設計的:它在應用程式(Lambda)和 RDS 之間維護一個連線池,大量 Lambda 函數共用少量的實際資料庫連線。Lambda 連接到 RDS Proxy(幾千個連線),RDS Proxy 再維持少量連線到 RDS(幾十個)。額外好處:RDS 故障切換時,RDS Proxy 會自動重連,應用程式無感知。
03 / 24
以下關於 Amazon Aurora 的描述,哪項是正確的?
A 資料僅存於單一 AZ 內
B 跨 3 個 AZ 存 6 份資料
C 最多只有 5 個 Read Replica
D 僅相容 PostgreSQL 引擎
解析
Aurora 的核心架構就是跨 3 個 AZ 自動存 6 份資料(Quorum 機制):寫入時需要 4/6 節點確認成功,讀取只需 3/6 節點。這讓 Aurora 可以容忍最多 2 個 AZ 同時故障。Aurora 同時支援 MySQL 和 PostgreSQL 相容模式;Read Replicas 最多 15 個(遠多於 RDS 的 5 個)。
04 / 24
一個社交媒體應用需要儲存用戶的動態消息(Feed),資料量龐大(數十億筆)、讀取頻率極高且需要個位數毫秒的延遲。哪個 AWS 服務最合適?
A Amazon RDS MySQL 資料庫
B Amazon Aurora 資料庫
C Amazon DynamoDB 資料表
D Amazon Redshift 倉儲
解析
DynamoDB 是這個場景的最佳選擇:完全 Serverless、無限水平擴展、個位數毫秒延遲、可處理數十億筆資料。社交媒體 Feed 是典型的 Key-Value 存取模式(用 User ID 查詢),不需要複雜的 SQL JOIN,非常適合 DynamoDB。Redshift 是 OLAP 資料倉儲,不適合高頻即時讀寫;RDS/Aurora 的垂直擴展有上限,且關聯式 DB 在如此大規模下會遇到瓶頸。
05 / 24
一個遊戲排行榜應用需要快取,支援 Sorted Set 資料結構(依分數排序),且需要高可用(Multi-AZ),防止快取資料在節點重啟後遺失。應選擇哪個服務?
A ElastiCache Memcached 快取
B ElastiCache Redis 快取
C RDS Read Replica 分流
D DynamoDB DAX 加速層
解析
ElastiCache Redis 是唯一滿足所有需求的選項:① Sorted Set 是 Redis 特有的資料結構(Memcached 不支援);② Redis 支援資料持久化(AOF/RDB),重啟後資料不遺失;③ Redis 支援 Multi-AZ 和 Replica,提供高可用。Memcached 不支援持久化和複雜資料結構;DynamoDB DAX 只能加速 DynamoDB 的讀取,不是通用快取。
06 / 24
一家公司有一個大型關聯式資料庫,需要每個月跑大量複雜的分析報表查詢(JOIN 多個大表,聚合計算),導致生產 RDS 效能下降。最佳解決方案是?
A 增加 RDS Read Replica 分流
B 遷移資料到 Amazon Redshift
C 升級 RDS Instance 規格
D 開啟 RDS Multi-AZ 分流
解析
Amazon Redshift 是專為 OLAP(分析型查詢)設計的資料倉儲,使用列式儲存,在大量資料的聚合查詢和報表場景下效能是 OLTP 資料庫的 10 倍以上。正確的架構是:生產 RDS 用於 OLTP 事務;定期 ETL 資料到 Redshift 用於分析報表。雖然 Read Replica 可以分擔讀取,但 RDS 本質上是行式儲存,做複雜分析查詢效能仍然有限。
07 / 24
DynamoDB DAX 的主要功能和適用場景是什麼?
A 備份資料到 S3 保存
B 提供讀取快取降低延遲
C 支援 SQL 查詢語法
D 加速寫入操作效能
解析
DAX(DynamoDB Accelerator)是 DynamoDB 的記憶體快取層,完全相容 DynamoDB 的 API(應用程式只需將 Endpoint 指向 DAX,不需要修改程式碼)。讀取延遲從毫秒級降到微秒級(1000 倍的提升)。適合:讀取密集型的應用,如遊戲排行榜、購物車。注意:DAX 主要加速讀取,不加速寫入;且與 ElastiCache 不同,DAX 只能加速 DynamoDB。
08 / 24
一個新上線的應用流量完全無法預測,可能突然暴衝也可能長時間閒置。DynamoDB 最適合的容量模式是?
A Provisioned 佈建容量模式
B On-Demand 按需容量模式
C 手動調整 RCU/WCU 數值
D 關閉 Auto Scaling 功能
解析
On-Demand 按實際請求付費、瞬間吸收流量尖峰,無需預估容量,最適合不可預測或全新的工作負載。Provisioned 適合流量穩定可預估(較省,可搭配 Auto Scaling),但完全無法預測時 On-Demand 最省心。
09 / 24
DynamoDB 使用 Provisioned 模式,想讓佈建容量隨負載自動增減以兼顧效能與成本。應?
A 啟用 Auto Scaling
B 改用更大固定容量
C 改為手動監控調整
D 改用 Amazon RDS
解析
DynamoDB Auto Scaling 依 CloudWatch 使用率自動調整 Provisioned RCU/WCU,在流量可預估但有波動時兼顧效能與成本。固定大容量浪費錢;手動調整不夠即時。
10 / 24
關於 RDS 備份,何者正確?
A 自動備份可無限期保留
B 自動備份留 35 天內
C 手動快照會自動過期
D 備份皆無法跨區複製
解析
RDS 自動備份保留期為 0–35 天(到期自動刪除)並支援時間點還原(PITR);手動快照會一直保留直到你手動刪除。兩者都可跨區/跨帳號複製用於 DR。
11 / 24
一個 RDS 資料庫的儲存空間可能成長但難以預估,想避免爆滿又不想一開始就買太大。應?
A 啟用 Storage Auto Scaling
B 一開始配置最大空間
C 每週手動擴充空間
D 改用 Instance Store
解析
RDS Storage Auto Scaling 會在空間接近上限時自動擴充(到你設的上限為止),避免爆滿又不用超額預配。手動擴充有延遲與潛在中斷風險。
12 / 24
一個內部應用只有偶爾、不定時被使用,其餘時間幾乎沒有流量,希望資料庫閒置時盡量不花錢、有需求時自動起來。最適合?
A 改用 Aurora Serverless 架構
B 改用固定大小 RDS Multi-AZ
C 改用 DynamoDB Provisioned
D 改用 Redshift 資料倉儲
解析
Aurora Serverless 依需求自動調整容量、閒置時可縮到很低甚至暫停,按實際使用計費,非常適合不頻繁或不可預測的工作負載。固定大小 RDS 閒置也照付。
13 / 24
一個全球應用需要各大洲使用者都能就近「低延遲讀寫」同一份資料,且各區之間自動同步。應?
A 採用 DynamoDB Global Tables
B 單區 DynamoDB 加 CloudFront
C 採用 RDS Read Replica 跨區
D 採用 ElastiCache 快取加速
解析
DynamoDB Global Tables 提供多 Region 多主動(multi-master)複製,各區都能就近低延遲讀寫、彼此自動同步,天生適合全球部署。RDS Read Replica 只能讀不能各區寫;CloudFront 是快取靜態內容。
14 / 24
一個已建立的 DynamoDB 表想「用另一個非主鍵屬性」做查詢,且該索引可使用與主表不同的 partition key。應建立?
A 建立 Global Secondary Index
B 建立 Local Secondary Index
C 另外建立一張新主表
D 改用 DAX 加速查詢
解析
GSI 可用「與主表不同的 partition/sort key」查詢,且能在表建立後隨時新增;LSI 只能用「相同 partition key、不同 sort key」且必須在建表時建立。要事後、換 partition key 查詢就用 GSI。
15 / 24
想在 DynamoDB 資料被新增/修改時,自動觸發 Lambda 做後續處理(例如同步更新搜尋索引)。應啟用?
A 啟用 DynamoDB Streams 觸發
B 啟用 DAX 加速讀取效能
C 啟用 Global Tables 跨區
D 設定 TTL 到期刪除機制
解析
DynamoDB Streams 捕捉表的變更事件(插入/修改/刪除),可觸發 Lambda 做 CDC 式的後續處理(同步搜尋、稽核、跨系統整合)。DAX 是快取;TTL 是自動過期;Global Tables 底層也用 Streams。
16 / 24
一個 session 資料表希望過期的項目能自動被刪除、不佔空間也不額外收費。應使用?
A 使用 TTL 自動過期
B 每天跑批次刪除
C 改用 Lifecycle Rule
D 改用 DynamoDB Streams
解析
DynamoDB TTL 讓你為項目設到期時間戳,過期後由 DynamoDB 在背景自動刪除、不額外收費,適合 session、暫存、時效性資料。批次刪除會耗 WCU 又麻煩。
17 / 24
採用「只有在快取未命中時才從資料庫載入並寫入快取」的 ElastiCache 策略稱為?
A Lazy Loading(惰性載入)
B Write-Through(寫穿模式)
C TTL(存活時間過期)
D Read Replica(讀取分流)
解析
Lazy Loading 只在 cache miss 時才回資料庫取並填入快取,好處是只快取真正被用到的資料,缺點是首次較慢、可能有陳舊資料。Write-Through 則在寫資料庫時同步更新快取(資料新但寫入成本高、可能快取到用不到的資料)。
18 / 24
想對 RDS 資料庫啟用靜態加密(at-rest)。關於做法,何者正確?
A 建立時啟用,既有靠快照還原
B 隨時可對執行中實例開關
C 啟用後將無法備份資料
D 僅 Aurora 引擎支援加密
解析
RDS 靜態加密(KMS)需在建立時啟用;若現有實例未加密,做法是建立快照、複製為加密快照、再從加密快照還原成新實例。加密不影響備份,多數引擎都支援。
19 / 24
想為 RDS 建立跨 Region 的災難復原能力,並可在主區故障時提升為獨立可寫資料庫。應?
A 建立跨 Region Read Replica
B 只需開啟 Multi-AZ 即可
C 改用 DAX 做跨區備援
D 改用 ElastiCache 跨區備援
解析
跨 Region Read Replica 在異地維持非同步副本,主區發生區域級災難時可 Promote 成獨立主庫,達成跨區 DR。Multi-AZ 只在同區跨 AZ(非 DR);DAX/ElastiCache 是快取。
20 / 24
想直接查詢存在 S3 的大量資料,不必先全部載入 Redshift。應使用?
A 使用 Redshift Spectrum 查詢
B 改用 DynamoDB 儲存資料
C 改用 ElastiCache 快取資料
D 改用 RDS 儲存這批資料
解析
Redshift Spectrum 讓你用 Redshift 直接查詢 S3 上的資料(無需先 ETL 載入),適合把熱資料放叢集、冷資料留 S3 仍可一併查詢,兼顧成本與彈性。
21 / 24
一個既有的 MongoDB 應用想遷移到 AWS 的「相容 MongoDB」全託管文件資料庫。應選?
A 改用 Amazon DocumentDB
B 改用 Amazon DynamoDB
C 改用 RDS MySQL 資料庫
D 改用 Amazon Neptune
解析
Amazon DocumentDB 相容 MongoDB API,遷移現有 MongoDB 應用最順。DynamoDB 是 NoSQL 但 API 不同、需改寫;RDS 是關聯式;Neptune 是圖資料庫。
22 / 24
一個社交網路需要查詢「朋友的朋友」「推薦關係鏈」等高度關聯的圖形資料。最適合的資料庫是?
A 採用 Amazon Neptune 圖庫
B 採用 DynamoDB 儲存關聯
C 採用 Redshift 分析關聯
D 採用 RDS 儲存關聯資料
解析
Neptune 是全託管圖資料庫,專為高度關聯資料(社交關係、推薦引擎、知識圖譜、詐欺偵測)設計,圖形遍歷查詢效能遠優於在關聯式/NoSQL 上硬做 JOIN。
23 / 24
RDS Multi-AZ 發生故障切換(failover)時,應用程式的連線該如何處理?
A 需手動更改連線 IP 位址
B DNS 端點不變自動切換
C 切換過程中資料會遺失
D 必須重新建立整個資料庫
解析
Multi-AZ failover 時 RDS 會把同一個 DNS 端點自動切到備援實例,應用程式只要重新連線(連字串不變)即可繼續,通常 60–120 秒內完成,資料因同步複製不遺失。
24 / 24
Aurora(MySQL 相容)想「把資料庫快速倒帶到幾分鐘前的狀態」以復原誤操作,而不必從快照還原成新實例。可使用?
A 使用 Aurora Backtrack
B 改用手動快照還原
C 改用 Read Replica 復原
D 改用 Multi-AZ 復原
解析
Aurora Backtrack 可將叢集「原地倒帶」到過去某個時間點(秒級到分鐘級),快速復原誤操作而不需還原成新實例,較省時。快照還原會產生新實例、較慢。

點擊卡片翻面查看答案,共 11 張。

QUESTION
RDS Multi-AZ vs Read Replicas 目的?
點擊翻面
ANSWER
Multi-AZ → 高可用(HA):Standby 自動故障切換,不接受讀取
Read Replicas → 效能擴展:分擔讀取,可 Promote 為主 DB
點擊翻回
QUESTION
Aurora 儲存架構的核心數字?
點擊翻面
ANSWER
跨 3 個 AZ 存 6 份資料
寫入:4/6 確認即成功
讀取:3/6 即可
Read Replicas 最多 15 個(RDS 只有 5)
點擊翻回
QUESTION
DynamoDB DAX 的作用?
點擊翻面
ANSWER
DynamoDB 的記憶體快取,讀取延遲從毫秒降到微秒(1000x 提升),相容 DynamoDB API,不需修改程式碼。
點擊翻回
QUESTION
Redis 和 Memcached 最關鍵的差異?
點擊翻面
ANSWER
Redis:持久化、Multi-AZ、Backup、複雜資料結構、Pub/Sub
Memcached:純快取、多執行緒、重啟資料清空、架構簡單
點擊翻回
QUESTION
RDS Proxy 解決什麼問題?
點擊翻面
ANSWER
解決 Lambda 等高並發場景產生過多 DB 連線的問題。在應用程式和 RDS 之間維護連線池,大幅減少實際的 DB 連線數。
點擊翻回
QUESTION
OLTP vs OLAP 選哪個 AWS DB?
點擊翻面
ANSWER
OLTP(事務處理)→ RDS / Aurora
OLAP(分析報表)→ Redshift(列式儲存,分析查詢快 10x)
點擊翻回
QUESTION
DynamoDB Provisioned vs On-Demand 怎麼選?
點擊翻面
ANSWER
Provisioned:預先講好 RCU/WCU,照佈建量計費,最便宜,但尖峰可能被限流 → 流量穩定可預估
On-Demand:照實際請求計費,瞬間吸收尖峰、免預估,單價較貴 → 全新或流量不可預測
點擊翻回
QUESTION
DynamoDB GSI vs LSI 差在哪?
點擊翻面
ANSWER
GSI:可換 partition key、建表後隨時新增、獨立容量、只有最終一致
LSI:partition key 必須相同(只換 sort key)、只能建表當下建立、共用容量、可強一致
口訣:要換 partition key 或表已上線 → 只能 GSI
點擊翻回
QUESTION
Lazy Loading vs Write-Through 各自的缺點?
點擊翻面
ANSWER
Lazy Loading(miss 才回 DB 撈並寫入快取):首次讀取慢、可能讀到陳舊資料 → 常搭 TTL 補救
Write-Through(寫 DB 時同步更新快取):資料永遠新,但每次寫入變慢、會快取到沒人讀的資料
點擊翻回
QUESTION
既有的未加密 RDS 實例要補上靜態加密,怎麼做?
點擊翻面
ANSWER
不能對執行中的實例直接開啟。流程:建立快照 → 複製快照時指定 KMS 金鑰產生加密快照 → 從加密快照還原成新實例 → 應用程式切到新端點
點擊翻回
QUESTION
Aurora Backtrack 和快照還原差在哪?
點擊翻面
ANSWER
Backtrack:原地倒帶(最多 72 小時內),端點不變、秒到分鐘級,僅 Aurora MySQL 且須建立時啟用
快照還原:產生一台全新實例,較慢且要重接端點
點擊翻回