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