AWS 学习笔记之数据库
AWS 提供的数据库
- RDS - OLTP
- SQL Server
- MySQL
- PostgreSQL
- Oracle
- Aurora
- MariaDB
- DynamoDB - NoSQL
- RedShift - OLAP
- Elasticache - In Memory Caching
- Memcached
- Redis
RDS - Relational Database Service
RDS 提供一系列关系型数据库的托管服务。
RDS 的两种 Replica 方式的区别:
- Multi-AZ:备份数据到多个可用区, 当一个可用区 fail 时,会自动 failover 到另一个可用区
- Read Replica:创建只读的 Replica 数据库,减轻单个 DB instance 的读取压力。一个 instance 至多可以有 5 个 read replica
Aurora 数据库
Aurora 是 AWS 提供的 MySQL 兼容的关系型数据库。
- 每个可用区有 2 份拷贝;考虑到至少有 3 个可用区,数据至少有 6 份拷贝
- Aurora 能自动处理不多余 2 份拷贝的数据丢失,而不影响写可用性;最多容忍不多余 3 份的数据丢失,而不影响读可用性。
- Aurora 的存储具有自我修复(self-healing)功能,它不断扫描数据块和磁盘,如果有错误就自动修复。
有两种 Aurora Replicas 可供选择:
- Aurora Replicas (至多 15 个)
- MySQL Read Replicas (至多 5 个)
DynamoDB
DynamoDB 是 AWS 提供的 NoSQL 数据库服务。它有以下特性:
- 数据存储在 SSD 介质上
- 跨 3 个地理隔离的数据中心
- 最终一致性读(默认,高性能)
- 支持强一致性读(可选)
DynamoDB 相比于 RDS 具有很强的伸缩性,可以随时 scale 数据库而不用关机;RDS 就没这么容易了,你可能要换更大的 instance,或者增加 read replica。
Redshift 数据库
- 单节点模式:最大 160GB
- 多节点模式:
- Leader Node: 管理客户端连接、接受查询
- Compute Node: 存储数据、执行查询和计算任务,最多 128 个
Elasticache 缓存服务
Elasticache 通过在内存中缓存信息,来减轻应用程序访问数据库的负担。它目前支持两种 caching engines:
- Memcached
- Redis