Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

DAX 集群组件

一个 DAX 集群由多个 AWS 基础设施组件组成。本节将介绍这些组件及其协作方式。

节点

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

您可采用以下两种方法之一来扩展 DAX 集群:

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

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

Valid node types are as follows:

  • dax.r3.large

  • dax.r3.xlarge

  • dax.r3.2xlarge

  • dax.r3.4xlarge

  • dax.r3.8xlarge

一个集群中的所有节点都具有相同的节点类型并运行相同的 DAX 缓存软件。

集群

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

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

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

  • 处理对 DynamoDB 的写入操作。

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

当对主节点上的缓存数据进行更改时,DAX 会将这些更改传播到所有只读副本节点。

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

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

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

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

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

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

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

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

重要

可使用单一节点部署 DAX 集群。当开发或测试工作负载可接受此配置时,单节点集群无法容错,建议您不要将单节点集群用于生产用途。如果此单一节点遇到软件或硬件错误,则集群会变得不可用或丢失缓存数据。

对于生产用途,我们强烈建议使用至少包含 3 个节点 (主节点和至少 2 个只读副本) 的 DAX,并且将这些节点放在不同的可用区中。

区域和可用区

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

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

重要

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

对于生产用途,我们强烈建议使用至少包含 3 个节点 (主节点和至少 2 个只读副本) 的 DAX,并且将这些节点放在不同的可用区中。

参数组

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

安全组

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

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

集群 ARN

将为每个 DAX 集群分配一个 Amazon 资源标识符 (ARN)。ARN 格式为:

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

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

集群终端节点

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

以下是集群终端节点的示例:

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

节点终端节点

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

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

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

子网组

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

当您创建 DAX 集群时,必须指定一个子网组。DAX 使用该子网组选择一个子网和此子网内的 IP 地址,以便与您的节点相关。

事件

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

您还可以请求将通知发送到特定 Amazon SNS 主题,这样,当您的 DAX 集群中发生事件时,你就能立即知道。

Maintenance Window

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

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

区域代码 区域名称 维护时段
ap-northeast-1 亚太区域(东京) 13:00–21:00 UTC
eu-west-1 欧洲(爱尔兰)区域 22:00–06:00 UTC
us-east-1 美国东部(弗吉尼亚北部)地区 03:00–11:00 UTC
us-west-1 美国西部(加利福利亚北部)区域 06:00–14:00 UTC
us-west-2 美国西部(俄勒冈)区域 06:00–14:00 UTC

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