Chapter 07 - Database
本章目標
看完本章後,你應該可以回答:
- RDS、Aurora、DynamoDB、ElastiCache、Redshift 怎麼選?
- Multi-AZ 和 read replica 差在哪裡?
- relational、NoSQL、cache、analytics 各自對應什麼需求?
- SAA-C03 常見 database 題目怎麼拆?
一句話
Database 選型不是看名字,而是看資料模型、讀寫模式、transaction、latency、scaling 和管理負擔。
架構位置
Database 位於核心資料層,會直接影響 reliability、performance、cost 和 operational overhead。
常見服務與概念
- RDS
- Aurora
- DynamoDB
- ElastiCache
- Redshift
- RDS Multi-AZ
- Read replica
- Global database
- DAX
PM 視角
PM 要先釐清資料需求:是否 relational?是否需要 transaction?讀多還是寫多?全球使用者讀取嗎?可以接受 eventual consistency 嗎?報表分析是不是和線上交易混在一起?
Developer / DevOps 視角
工程師要能判斷 database bottleneck 是 availability、read scaling、write scaling、latency、schema flexibility,還是 analytics workload。
考試怎麼問
常見題型會問:
- RDS 如何提高 availability
- read-heavy workload 如何 scale
- serverless key-value workload 用什麼
- low latency cache 放哪裡
- analytics query 不該打 production database 時怎麼辦
常見陷阱
| 陷阱 | 正確方向 |
|---|---|
| Multi-AZ 當成讀擴展 | Multi-AZ 偏 HA,read replica 才偏讀擴展 |
| DynamoDB 當 relational database | DynamoDB 適合 key-value / document access pattern |
| cache 當 durable database | ElastiCache 是 performance layer,不是主要持久資料庫 |
| Redshift 拿來 OLTP | Redshift 是 analytics / data warehouse |