DAX 集群组件 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DAX 集群组件

Amazon DynamoDB Accelerator (DAX) 集群由多个 Amazon 基础设施组件组成。本节介绍这些组件及其协作方式。

节点

节点是 DAX 集群的最小构建块。每个节点运行一个 DAX 软件实例,并维护一个缓存数据副本。

可以采用以下两种方法扩展 DAX 集群:

  • 将更多节点添加到集群。这会增加集群中的总体读取吞吐量。

  • 使用更大的节点类型。更大的节点类型可提供更多容量并增加吞吐量。(必须使用新节点类型创建新集群。)

一个集群的所有节点都具有相同的节点类型并运行相同 DAX 缓存软件。有关可用节点类型的列表,请参见 Amazon DynamoDB 定价

集群

集群是 DAX 将其作为一个单元来管理的一个或多个节点的逻辑分组。集群的其中一个节点指定为节点,其他节点(如果有)指定为只读副本

主节点负责完成以下工作:

  • 满足缓存数据的应用程序请求。

  • 处理对 DynamoDB 的写入操作。

  • 根据集群的移出策略,从缓存中移出数据。

更改主节点上的缓存数据后,DAX 使用复制日志将这些更改传播到所有只读副本节点。在收到所有只读副本的确认后,DynamoDB 会从主节点中删除复制日志。

只读副本负责完成以下工作:

  • 满足缓存数据的应用程序请求。

  • 根据集群的移出策略,从缓存中移出数据。

但与主节点不同,只读副本不会对 DynamoDB 进行写入。

只读副本有另外两种用途:

  • 可扩展性。如果有大量需要同时访问 DAX 的客户端,可以添加多个副本用于读取扩展。DAX 在集群中所有节点均匀分布负载。(另一种增加吞吐量的方式是使用更大的缓存节点类型。)

  • 高可用性。如果发生主节点故障,DAX 将自动故障转移到一个只读副本并指定该副本作为新的主节点。如果副本节点发生故障,DAX 集群的其他节点仍能够处理请求,直到发生故障的节点恢复为止。为实现最大容错能力,应在单独的可用区中部署只读副本。此配置将确保您的 DAX 集群可以继续正常运行,即使整个可用区变得不可用。

一个 DAX 集群最多可支持每集群 11 个节点(主节点以及最多 10 个只读副本)。

重要

对于生产使用,我们强烈建议使用具有至少三个节点的 DAX,其中每个节点都放置在不同的可用区中。DAX 集群需要三个节点才能容错。

DAX 集群可以部署在一个或两个节点上,用于开发或测试工作负载。单节点和双节点集群不具有容错能力,我们不建议对生产使用少于三个节点。如果单节点或双节点集群遇到软件或硬件错误,则集群会变得不可用或丢失缓存数据。

区域和可用区

一个 Amazon 区域的一个 DAX 集群只能与位于同一区域的 DynamoDB 表进行交互。因此,需要确保在正确的区域中启动 DAX 集群。如果其他区域有 DynamoDB 表,则必须在这些区域也启动 DAX 集群。

从设计而言,每个 区域都与其他 区域完全隔离。每个区域内有多个可用区。在不同的可用区内启动节点,可以实现可能的最大容错。

重要

请勿将集群的所有节点放置在单个可用区内。在此配置下,如果可用区发生故障,DAX 集群将变得不可用。

对于生产使用,我们强烈建议使用具有至少三个节点的 DAX,其中每个节点都放置在不同的可用区中。DAX 集群需要三个节点才能容错。

DAX 集群可以部署在一个或两个节点上,用于开发或测试工作负载。单节点和双节点集群不具有容错能力,我们不建议对生产使用少于三个节点。如果单节点或双节点集群遇到软件或硬件错误,则集群会变得不可用或丢失缓存数据。

参数组

参数组用于管理 DAX 集群的运行时设置。DAX 具有可用于优化性能(如为缓存数据定义 TTL 策略)的多个参数。参数组是一组可以应用于集群的指定参数。这样可以确保该集群中的所有节点都以完全相同的方式进行配置。

安全组

DAX 集群在 Amazon Virtual Private Cloud (Amazon VPC) 环境中运行。此环境是一个专用于 Amazon 账户的虚拟网络,并且与其他 VPC 分隔开。安全组充当 VPC 的虚拟防火墙,控制入站和出站网络流量。

在 VPC 中启动集群时,将向安全组添加入口规则以允许传入网络流量。入口规则为集群指定协议 (TCP) 和端口号 (8111)。将此规则添加到安全组后,在 VPC 中运行的应用程序可以访问 DAX 集群。

集群 ARN

将为每个 DAX 集群分配一个 Amazon Resource Name (ARN)。ARN 格式如下所示。

arn:aws:dax:region:accountID:cache/clusterName

在 IAM policy 中使用集群 ARN 定义 DAX API 操作的权限。有关更多信息,请参阅 DAX 访问控制

集群终端节点

每个 DAX 集群提供一个集群端点供应用程序使用。使用集群端点访问集群,应用程序无需知道集群中各个节点的主机名和端口号。您的应用程序将自动“获知”集群中的所有节点,即使您添加或删除只读副本也是如此。

以下是 us-east-1 区域中未配置为在传输过程中使用加密的集群端点示例。

dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

以下是同一区域中配置为在传输过程中使用加密的集群端点示例。

daxs://my-encrypted-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

节点端点

DAX 集群中的每个节点均有自己的主机名和路径点号。以下是节点端点的示例。

myDAXcluster-a.2cmrwl.clustercfg.dax.use1.cache.amazonaws.com:8111

应用程序可以使用端点直接访问节点。不过,建议您将 DAX 集群视为一个单元,通过集群端点访问。集群端点使应用程序无需维护节点列表,在集群中添加或删除节点时保持列表最新。

子网组

对 DAX 集群节点的访问限制为在 Amazon VPC 环境内的 Amazon EC2 实例上运行的应用程序。可以使用子网组授予从在特定子网上运行的 Amazon EC2 实例进行集群访问的权限。子网组是您可为在 Amazon VPC 环境中运行的集群指定的子网(通常为私有子网)集合。

创建 DAX 集群时,必须指定一个子网组。DAX 使用该子网组选择与节点关联的子网和子网中的 IP 地址。

事件

DAX 记录集群内的重大事件,如添加节点失败、添加节点成功或更改安全组。通过监控关键事件,可以了解集群的当前状态,并且能够根据事件采取相应的纠正措施。可以使用 DAX 管理 API 的 Amazon Web Services Management Console 或 DescribeEvents 操作访问这些事件。

也可以请求将通知发送到特定 Amazon Simple Notification Service (Amazon SNS) 主题。DAX 集群发生事件时将立即收到通知。

维护时段

每个集群都有一个每周维护时段,在此期间会应用任何系统更改。如果创建或修改缓存集群时未指定首选维护时段,则 DAX 将在该星期中随机选择的某一天中分配 60 分钟的维护时段。

这个 60 分钟维护时段是随机从每个 Amazon 区域的 8 小时时间段中选择出来的。下表列出分配了默认维护窗口的各个地区的时间段。

区域代码 区域名称 维护时段
ap-northeast-1 亚太(东京)区域 13:00–21:00 UTC
ap-southeast-1 亚太(新加坡)区域 14:00–22:00 UTC
ap-southeast-2 亚太(悉尼)区域 12:00–20:00 UTC
ap-south-1 亚太(孟买)区域 17:30–1:30 UTC
cn-northwest-1 中国(宁夏)区域 23:00–07:00 UTC
cn-north-1 中国(北京)区域 14:00–22:00 UTC
eu-central-1 欧洲地区(法兰克福)区域 23:00–07:00 UTC
eu-west-1 欧洲(爱尔兰)区域 22:00–06:00 UTC
eu-west-2 欧洲地区(伦敦)区域 23:00–07:00 UTC
eu-west-3 欧洲(巴黎)区域 23:00–07:00 UTC
sa-east-1 南美洲(圣保罗)区域 01:00–09:00 UTC
us-east-1 美国东部(弗吉尼亚北部)区域 03:00–11:00 UTC
us-east-2 美国东部(俄亥俄州)区域 23:00–07:00 UTC
us-west-1 美国西部(加利福尼亚北部)区域 06:00–14:00 UTC
us-west-2 美国西部(俄勒冈)区域 06:00–14:00 UTC

维护时段应当选在使用量最小的时段上,因而可能必须不时予以修改。您可以指定多达 24 小时持续时间的时间范围,您请求的任何维护活动均应在此期间进行。