DB를 고르기 위해 물어봐야할 질문
- read heavy, write heavy, or balanced workload? throughput needs? will it change, does it need to scale or fluctuate during the day?
- how much data to store and for how long? will it grow? average object size? how are they accessed?
- data durability? source of truth for the data?
- latency requirements? concurrent users?
- data model? how will you query data? joins? structured? semi-structured?
- strong schema? more flexibility? reporting? search? RDBMS or NoSQL?
- license costs? switch to cloud native DB such as Aurora
Database types
1. RDBMS (=SQL/OLTP)
- great for joins
- RDS
- Aurora
2. NoSQL
- no joins, no SQL
- DynamoDB(~JSON)
- ElastiCache (key/value pairs)
- Neptune (graphs)
- DocumentDB (for MongoDB)
- Keyspaces (for Apache Cassandra)
3. Object Store
- S3 (for big objects)
- S3 Glacier (for backups/archives)
4. Data Warehouse
- = SQL analytics/VI
- Redshift(OLAP)
- Athena
- EMR
5. Search
- OpenSearch (JSON) - free text, unstructured searches
6. Graphs
- Amazon Neptune - displays relationships betweend data
7. Ledger
- Amazon Quantum Ledger Database
8. Time series