AWS Solutions Architecture of DBS

RDB (Relational Database)

解决方案架构一:读副本(左) 解决方案架构二:多可用区(右)

可用区概念

  • 读副本有助于提升读效率,多可用区支持灾难恢复
  • 共同点是只能写入数据至主数据库

解决方案架构三:多区域读副本

请注意可用区和区域的概念! 可用区是一个区域内的单个数据中心或一组数据中心。可用区彼此相距数十英里(光信号毫秒级传输)。这个距离足够近,可以在可用区之间实现低延迟(请求内容与接收内容之间的时间)。但是,如果区域内的某个部分发生灾难,这个距离又足够远,可以降低多个可用区受到影响的几率。

区域的距离远超过数十英里

方案优势

  • 容灾能力极强
  • 部署在不同区域(如中国、美国),全球读效率高
  • 主节点将数据备份给从节点需要付费(流量传输)

总结

RDS Multi-AZ 部署的主要目的是高可用性,而 RDS Read Replicas 的主要目的是可扩展性。此外,多区域部署的主要目的是灾难恢复和本地性能

高可用是指数据库的持久性、冗余性和自动故障转移能力。 容灾是指在相隔较远的异地,搭建一个完整的集群环境,当一个地方发生灾难停止工作时,可以切换到另一处,使得系统可以正常提供服务。

Aurora

可以看作是云原生(cloud-native)版本的RDB

ElasticCache

类似于redis,不过拥有AWS的features:弹性伸缩,故障恢复,自动备份

DynamoDB

AWS旗舰产品,features:

  1. 自动托管在三个可用区
  2. NoSQL database
  3. serveless(无法访问服务器底层)
  4. low latency

表结构

结合DAX(DynamoDB专用缓存)

DynamoDB Global Tables

解决方案架构

  1. 多区域部署,实现低延迟
  2. Active-Active replication,任何副本都能进行读和

Redshift

  1. 数仓
  2. serverless

EMR(Elastic MapReduce)

  • 用于创建Hadoop集群(包含数百个EC2实例)处理大数据
  • 支持Spark, HBase, Presto, Flink

Athena

  • serverless,用于分析存储在S3中的数据

  • 使用标准SQL

  • Use Cases: BI(Business Intelligence/analytic/reportings/logs/CloudTrail trails)

QuickSight

  • 基于机器学习生成交互dashboard
  • 主要用于分析,可视化

DocumentDB

类似于云原生版本的MongoDB

Neptune

  • 图数据库
  • 主要用于社交网络

Timestream

时间序列数据库

QLDB

  1. Quantum Ledger Database:量子分类账数据库
  2. 检阅所有发生改变的应用数据的历史记录
  3. immutable(无法被修改或者删除)
  4. 主要用于财务

Managed Blockchain

  • 区块链:在多方执行事务时,无需授权,构建应用

  • 兼容两种框架

Glue

  • serverless,ETL(extract, transform, load)服务
  • 从S3或者RDS中提取数据,清洗,导入到RedShift中进行分析

DMS(Database Migration Service)

  • 提供同质数据迁移(oracle to oracle)与异质数据迁移(Microsoft SQL Server to Aurora)