Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

DAX 集群组件

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

节点

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

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

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

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

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

集群

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

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

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

  • 处理对 DynamoDB 的写入操作。

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

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

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

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

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

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

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

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

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

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

重要

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

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

区域和可用区

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

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

重要

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

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

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

参数组

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

安全组

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

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

集群 ARN

将为每个 DAX 集群分配一个 Amazon 资源名称 (ARN)。ARN 格式如下所示。

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

在 IAM 策略中使用集群 ARN 定义 DAX API 操作的权限。有关更多信息,请参阅DAX 中的 Identity and Access Management

集群终端节点

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

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

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

节点终端节点

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

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

维护时段

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

这个 60 分钟维护时段是随机从每个AWS 地区的 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
eu-central-1 欧洲(法兰克福)区域 23:00–07:00 UTC
eu-west-1 欧洲(爱尔兰)区域 22:00–06: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 小时持续时间的时间范围,您请求的任何维护活动均应在此期间进行。