Database type, capacity, and cache economics
Explain and apply how to compare database models, capacity modes, cache, I/O, licenses, and operations. Compare relational/key-value/columnar/time-series and on-demand/provisioned under explicit security, resilience, performance, operations, and cost constraints.
LESSON GOALS
By the end, you can
- Explain and apply how to compare database models, capacity modes, cache, I/O, licenses, and operations.
- Compare relational/key-value/columnar/time-series and on-demand/provisioned under explicit security, resilience, performance, operations, and cost constraints.
01
Select Data Model First
Database economics begins with access semantics. Relational joins, constraints, and multi-row transactions point toward RDS or Aurora when a managed relational engine fits. Predictable key-based access to key-value or document items can fit DynamoDB, but a schema rewrite and hot-key risk are real costs. Amazon Redshift is a columnar warehouse for analytical workloads; it belongs where large scans, aggregation, modeled data, and BI concurrency dominate rather than row-by-row transactions. Amazon Timestream is purpose-built for time-series data and queries organized around time, retention, and recent-versus-historical access. Graph, search, wide-column, and in-memory stores should be chosen only when their access model produces enough benefit to pay for migration, operations, and possible duplication of a system of record. A purpose-built label is not permission to fragment data automatically. State consistency, query shapes, write rate, retention, index needs, and ownership before choosing a service. The generic relational database remains valid when specialized semantics are weak and application simplicity dominates.
02
Match Capacity To Demand Shape
After the model is valid, map demand shape to capacity. DynamoDB on-demand is useful for new or unpredictable request traffic, while provisioned capacity with autoscaling can become economical after a stable baseline is measured. Neither mode repairs a poor partition key, scans, oversized items, or excessive indexes. RDS and Aurora require instance or capacity-range, storage, I/O, replicas, backup, and license analysis under the current engine and deployment. A warehouse can be provisioned or serverless depending on concurrency and utilization, but an infrequent S3 query may be cheaper through Athena than through an idle warehouse. Time-series economics depend on ingest, retention tiers, query windows, and data volume rather than a generic per-database rate. Compare p95 and peak behavior, not just average requests. Keep failure headroom and required replicas in the model. Capacity selected for normal traffic can still be invalid if one AZ loss or a reporting surge exhausts the remaining writer, consumers, or connection budget.
03
Add Cache Only With Evidence
A cache is an additional data system, not free performance. Use it for repeated reads with enough hit ratio, acceptable staleness, a durable backing source, and a safe invalidation or TTL policy. Price nodes or serverless units, replication, cross-AZ traffic, warm-up, misses, stampede control, and engineering effort. A cache cannot fix write saturation or a DynamoDB hot key. RDS Proxy is also not a data cache; it manages relational connections. Measure query latency, CPU, I/O, connections, item sizes, read/write units, index amplification, cache hit ratio, and eviction before adding capacity. Reversal conditions keep the architecture honest: Redshift loses to Athena for rare simple scans over well-laid-out S3; Timestream loses when ordinary relational transactions are mandatory; a specialized graph or search service loses when application rewrite outweighs its query advantage; provisioned capacity loses when traffic remains highly uncertain. The least-cost design may use several stores, but each must own a distinct, measurable access pattern and a documented source-of-truth relationship.
DECISION TABLE
Compare the architecture constraints
| requirement | choose | because | reject |
|---|---|---|---|
| unpredictable key-value | DynamoDB on-demand | access/capacity fit | RDS overbuild |
| steady relational transactions | right-sized RDS/Aurora | SQL constraints | DynamoDB rewrite |
| columnar analytics | warehouse | scan/aggregation fit | OLTP RDS |
| repeated safe reads | cache | hit ratio offloads | cache as source |
| columnar business analytics versus continuous time-indexed telemetry | Amazon Redshift for columnar scans; Amazon Timestream for time-series queries | scan-and-join and time-window access patterns require different stores | one store chosen only because both workloads contain timestamps |
GUIDED WORKED SCENARIO
Reason from the stated constraints
This is a guided example, not a question to memorise. The knowledge check uses new situations to test the same reasoning.
A product has unpredictable key-value sessions, steady relational orders and nightly multi-terabyte aggregation.
Requirements
- Sessions use known keys
- Orders require transactions/joins
- Analytics isolated from OLTP
- Serve continuous time-indexed telemetry separately from nightly columnar business aggregation.
Reasoning path
- For Database type, capacity, and cache economics, eliminate any candidate that violates the explicit security or failure/performance dimension.
- Quantify the scale, operating burden, and complete cost horizon specific to Database type, capacity, and cache economics before ranking valid choices.
- Select the lowest-total-cost valid design for Database type, capacity, and cache economics, then change one decisive constraint and re-evaluate the loser.
- Use Redshift for broad columnar scans and Timestream for timestamp-oriented ingestion, retention, and window queries.
Why it wins
- Models match access semantics
- Capacity modes match uncertainty
- Analytics does not overload OLTP
- Redshift and Timestream remain separate because columnar business scans and operational time-window queries have different access paths.
Why the alternatives lose
Over-serves key-value and analytics
Becomes correct when: All workloads are relationalOrders/analytics require unsupported access redesign
Becomes correct when: All access patterns are key-basedNo correctness/hit-ratio basis
Becomes correct when: Repeated reads dominate and invalidation is safeThe branch requires continuous time-indexed ingestion, retention, and window queries
Becomes correct when: Telemetry is consumed only through broad historical columnar scans and joinsARCHITECTURE VISUAL · TEXT MODE
Inspect the model
For Database type, capacity, and cache economics, read a keyboard-ordered table of requirements, quantities, candidate path or service, first failed constraint, repair, winner, and changed-constraint result; animation and color are unnecessary.
saa-viz-service-choice-lab · saa-viz-cost-transfer-labKNOWLEDGE CHECK
Answer one question at a time
Pass every question to complete this lesson. Each answer includes reasoning before you continue.
Telemetry shifts from time-window queries to large historical joins with business dimensions. Which serving type now replaces the time-series store?
Reveal reasoning
Amazon Redshift replaces Timestream for that telemetry branch because columnar scan-and-join analytics now dominate time-series access.
DynamoDB on-demand is enabled, but one session key still throttles. What observable design issue remains?
Reveal reasoning
A hot partition key can remain the limiter; on-demand capacity mode does not remove the need for well-distributed keys.
Before reveal in the service-choice lab, predict the first constraint violated by sending nightly multi-terabyte columnar scans to the order OLTP database.
Reveal reasoning
The analytical access/performance isolation gate fails; Redshift separates columnar scans from transactional row serving.
PRIMARY SOURCES
Verify the claims
- primaryWhat is Amazon RDS?aws-db-rds · retrieved 2026-07-29
- primaryWhat is Amazon Aurora?aws-db-aurora · retrieved 2026-07-29
- primaryWhat is Amazon DynamoDB?aws-db-dynamodb · retrieved 2026-07-29
- primaryDynamoDB on-demand capacity modeaws-dynamodb-on-demand-capacity · retrieved 2026-07-30
- primaryDynamoDB throughput capacityaws-dynamodb-throughput-capacity · retrieved 2026-07-30
- primaryDynamoDB table classesaws-dynamodb-table-classes · retrieved 2026-07-30
- primaryWhat is Amazon ElastiCache?aws-db-elasticache · retrieved 2026-07-29
- primaryRedshift Overviewaws-redshift-overview · retrieved 2026-07-30
- primaryTimestream Overviewaws-timestream-overview · retrieved 2026-07-30
- primaryAmazon Redshift columnar storageaws-redshift-columnar-storage · retrieved 2026-07-30