本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ElastiCache 组件和功能
接下来,您可以找到 Amazon ElastiCache 部署的主要组件的概述。
主题
ElastiCache 节点
节点是 ElastiCache 部署的最小构建块。一个节点可独立于其他节点存在,也可与其他节点之间有某种关系。
节点是固定大小的安全、网络连接的区块。RAM每个节点都运行在您创建集群时选择的引擎和版本的实例。如果需要,您可以将集群中的节点纵向扩展或缩减到不同的实例类型。有关更多信息,请参阅 缩放 ElastiCache。
一个集群中的每个节点都是相同的实例类型且运行相同的缓存引擎。每个缓存节点都有自己的域名服务 (DNS) 名称和端口。支持多种缓存节点类型,每种可有不同的关联内存量。有关受支持的节点实例类型的列表,请参阅受支持的节点类型。
您可以 pay-as-you-go按需购买节点,您只需为使用节点付费。您也可以相当优惠的小时费率购买预留节点。如果使用率高,则购买预留节点可节省资金。假设您的集群几乎始终在使用中,并且您有时会添加节点来满足使用峰值的需求。在这种情况下,您可以购买大量预留节点以在大多数情况下运行。然后,您可以根据偶尔需要添加节点的时间购买 pay-as-you-go节点。有关预留节点的更多信息,请参阅预留节点。
有关节点的更多信息,请参阅管理中的节点 ElastiCache。
ElastiCache 碎片
Valkey 或 Redis 分OSS片(在API和中称为节点组CLI)是由一到六个相关节点组成的分组。启用OSS集群模式的 Valkey 或 Redis 集群始终至少有一个分片。
分片是一种数据库分区方法,它将大型数据库分成更小、更快、更易于管理的部分,称为数据分片。这可以通过将操作分配到多个单独的部分来提高数据库效率。使用分片可以带来许多好处,包括提高性能、可扩展性和成本效益。
启用OSS集群模式的 Valkey 和 Redis 集群最多可以有 500 个分片,您的数据将分区到各个分片中。如果 Valkey 或 Redis OSS 引擎版本为 5.0.6 或更高,则每个集群的节点或分片限制可以增加到最多 500 个。例如,您可以选择配置一个 500 节点的集群,范围介于 83 个分片(一个主分片和 5 个副本分片)和 500 个分片(一个主分片,无副本分片)之间。确保可提供足够的 IP 地址来满足增长需求。常见的缺陷包括子网组中的子网CIDR范围太小,或者子网被其他集群共享并大量使用。有关更多信息,请参阅 创建子网组。对于低于 5.0.6 的版本,每个集群的限制为 250。
若要请求提高限制,请参阅 Amazon Service Limits 并选择限制类型 Nodes per cluster per instance type(每个实例类型的每个集群的节点数)。
多节点分区通过指定一个读/写主节点和 1 到 5 个副本节点来实现复制。有关更多信息,请参阅 使用复制组时的高可用性。
有关分片的更多信息,请参阅在中处理分片 ElastiCache。
ElastiCache 集群
集群是由一个或多个节点组成的逻辑分组。数据在 Memcached 集群中的节点之间以及启用了集群模式的 Valkey 或 Redis OSS 集群中的分片之间进行分区。
许多 ElastiCache 操作都是针对集群的:
-
创建集群
-
修改集群
-
为集群拍摄快照(所有版本的 Redis)
-
删除集群
-
查看集群中的元素
-
在集群中添加和删除成本分配标签
有关更多详细信息,请参阅以下相关主题:
在中管理集群 ElastiCache 和 管理中的节点 ElastiCache
有关集群、节点和相关操作的信息。
-
Amazon 服务限制:Amazon ElastiCache
有关 ElastiCache 限制的信息,例如节点或集群的最大数量。要超出这些限制中的某些限制,您可以使用 Amazon ElastiCache 缓存节点申请表提出请求
。 -
有关提高集群和 Valkey 或 Redis OSS 复制组容错能力的信息。
典型集群配置
以下是典型的集群配置。
Valkey 或 Redis 集群 OSS
禁用OSS集群模式的 Valkey 或 Redis 集群始终只包含一个分片(在API和中CLI,一个节点组)。一个 Valkey 或 Redis OSS 分片包含一到六个节点。如果分区中有多个节点,则该分区支持复制。在这种情况下,一个节点是读/写主节点,其他为只读副本节点。
为了提高容错能力,我们建议在 Valkey 或 Redis OSS 集群中至少有两个节点并启用多可用区。有关更多信息,请参阅 缓解故障。
随着对 Valkey 或 Redis OSS 集群的需求发生变化,您可以向上或向下扩展。为此,请将您的集群移至其他节点实例类型。如果您的应用程序是读取密集型的,我们建议向集群添加只读副本。通过执行此操作,您可以将读取分布到更多数量的节点上。
您还可以使用数据分层功能。将访问频率更高的数据存储在内存中,而将访问频率较低的数据存储在磁盘上。使用数据分层的优点是可以减少内存需求。有关更多信息,请参阅 数据分层 ElastiCache。
ElastiCache 支持动态将 Valkey 或 Redis OSS 集群的节点类型更改为更大的节点类型。有关纵向扩展或缩减的信息,请参阅扩展 Valkey 或 Redis 的单节点集群OSS(已禁用集群模式)或扩展 Valkey 或 Redis 的副本节点OSS(已禁用集群模式)。
Memcached 的典型集群配置
Memcached 为每个 Amazon 区域的每个客户最多支持 300 个节点,每个集群有 1-60 个节点。您可以跨 Memcached 集群中的节点对数据进行分区。
当你运行 Memcached 引擎时,集群可以由 1-60 个节点组成。您可以将数据库分配到多个节点上。应用程序会对每个节点的终端节点进行读写操作。有关更多信息,请参阅自动发现。
为了提高容错能力,请在集群 Amazon 区域内的各个可用区 (AZs) 中找到 Memcached 节点。这样一来,可最大程度地减小某个可用区内的故障对整个集群和应用程序的影响。有关更多信息,请参阅 缓解故障。
由于 Memcached 集群需求不断变化的,您可通过添加或删除节点来进行向外扩展或向内扩展,从而跨新数量的节点对数据进行重新分区。对数据进行分区时,建议使用一致性哈希处理。有关一致性哈希处理的更多信息,请参阅配置您的 ElastiCache 客户端以实现高效的负载平衡 (Memcached)。
ElastiCache 复制
对于 Valkey 和 RedisOSS,复制是通过将分片(在API和CLI中,称为节点组)中的两到六个节点进行分组来实现的。在这些节点中,有一个是读取/写入主节点。所有其他节点均为只读副本节点。复制仅适用于 ElastiCache Valkey 和 RedisOSS,不适用于 ElastiCache (Memcached)。
每个副本节点保留一个主节点中的数据的副本。复制节点使用异步复制机制来与主节点保持同步。应用程序可从集群中的任何节点进行读取,但只能对主节点进行写入。只读副本通过跨多个终端节点分布读取来增强可扩展性。只读副本还通过维护数据的多个副本来增强容错能力。在多个可用区内定位只读副本可进一步增强容错能力。有关容错能力的更多信息,请参阅缓解故障。
Valkey 或 Redis OSS 集群支持一个分片(在API和中CLI,称为节点组)。
从API和的CLI角度来看,复制使用不同的术语来保持与先前版本的兼容性,但结果是一样的。下表显示了实施复制的API和CLI术语。
比较复制:Valkey 或 RedisOSS(已禁用集群模式)和 Valkey 或 RedisOSS(已启用集群模式)--> 启用集群模式的 Valkey 或 Redis OSS 集群与禁用集群模式的 Valkey 或 Redis 集群对比 OSS
在下表中,您可以找到 Valkey 或 Redis(已禁用集群模式)和 Valkey 或 RedisOSS(已启用集群模式)复制OSS组功能的比较。
已禁用OSS集群模式的 Valkey 或 Redis 集群 | 启用了OSS集群模式的 Valkey 或 Redis 集群 | |
---|---|---|
分区(节点组) | 1 | 1-500 |
每个分片的副本数 (节点组) | 0-5 | 0-5 |
数据分区 | 否 | 是 |
添加/删除副本 | 是 | 是 |
添加/删除组节点 | 否 | 是 |
支持扩展 | 是 | 是 |
支持引擎升级 | 是 | 是 |
将副本提升为主副本 | 是 | 自动 |
多可用区 | 可选 | 必需 |
备份/还原 | 是 | 是 |
备注: | ||
如果任何主副本没有副本,则在主副本失败时,您将失去该主副本的所有数据。 | ||
您可以使用备份和还原迁移到 Valkey 或 RedisOSS(已启用集群模式)。 | ||
您可以使用备份和还原来调整 Valkey 或 RedisOSS(已启用集群模式)集群的大小。 |
所有分片(在API和CLI节点组中)和节点都必须位于同一个 Amazon 区域中。但是,您可以 Amazon 在该区域内的多个可用区中配置单个节点。
只读副本可防止潜在的数据丢失,因为数据是在两个或多个节点(主节点和一个或多个只读副本)上复制的。为获得更高可靠性和更快地恢复,建议您在不同可用区内创建一个或多个只读副本。
您还可以利用全局数据存储。通过使用适用于 Redis 的全球数据存储OSS功能,您可以跨 Amazon 区域进行完全托管、快速、可靠和安全的复制。使用此功能,您可以为创建跨区域只读副本集群, ElastiCache 以实现跨 Amazon 区域的低延迟读取和灾难恢复。有关更多信息,请参阅使用全球数据存储跨 Amazon 区域复制。
复制:限制和局限
节点类型 T1 不支持多可用区。
ElastiCache 端点
终端节点是您的应用程序用于连接到 ElastiCache 节点或集群的唯一地址。
禁用集群模式的 Valkey 或 Redis OSS 的单节点终端节点
单节点 Valkey 或 Redis OSS 集群的终端节点用于连接到集群进行读取和写入。
禁用集群模式的 Valkey 或 Redis OSS 的多节点终端节点
禁用OSS集群模式的多节点 Valkey 或 Redis 集群有两种类型的终端节点。主终端节点始终连接到集群中的主节点,即使主角色中的特定节点发生更改也是如此。使用主终端节点执行对集群的所有写入操作。
使用读取器端点 将在所有只读副本之间均匀地分配指向端点的传入连接。使用单个节点终端节点进行读取操作(在 API /中,CLI这些终端节点被称为读取端点)。
Valkey 或 RedisOSS(已启用集群模式)终端节点
启用了OSS集群模式的 Valkey 或 Redis 集群只有一个配置终端节点。通过连接到配置端点,您的应用程序可以查找集群中每个分片的主端点和读取端点。
有关更多信息,请参阅 在中查找连接端点 ElastiCache。
ElastiCache (内存缓存)终端节点
Memcached 集群中的每个节点都有自己的终端节点。该集群还具有一个称为配置终端节点 的终端节点。如果您启用 Auto Discovery 并连接到配置终端节点,则即使是在集群中添加或移除节点后,应用程序仍将自动获知每个节点终端节点。有关更多信息,请参阅自动发现。
有关更多信息,请参阅 终端节点。
ElastiCache 参数组
缓存参数组是为受支持的引擎软件管理运行时设置的简单方法。参数用于控制内存使用率、移出策略、项目大小等。 ElastiCache 参数组是可以应用于集群的引擎特定参数的命名集合。通过这样做,您可以确保该集群中的所有节点都以完全相同的方式进行配置。
有关支持的参数、其默认值以及可以修改的参数的列表,请参见 DescribeEngineDefaultParameters (CLI: describe-engine-default-parameters).
有关 ElastiCache 参数组的更多详细信息,请参阅使用参数组配置引擎 ElastiCache 参数。
ElastiCache 安全
为了增强安全性, ElastiCache 只有在您允许的 Amazon EC2 实例上运行的应用程序才能访问节点。您可以使用安全组控制可以访问您的集群的 Amazon EC2 实例。
默认情况下,所有新 ElastiCache 集群都是在亚马逊虚拟私有云 (AmazonVPC) 环境中启动的。您可以使用子网组向在特定子网上运行的 Amazon EC2 实例授予集群访问权限。
除了限制节点访问外,还为运行指定版本的节点提供 ElastiCache 支持TLS和就地加密。 ElastiCache有关更多信息,请参阅下列内容:
ElastiCache 子网组
子网组是您可以为在 Amazon VPC 环境中运行的集群指定的子网(通常是私有子网)的集合。
如果您在 Amazon 中创建集群VPC,则必须指定缓存子网组。ElastiCache 使用该缓存子网组选择子网和该子网内的 IP 地址以与您的缓存节点相关联。
有关 Amazon VPC 环境中缓存子网组使用情况的更多信息,请参阅以下内容:
ElastiCache 备份
备份是 Valkey 或 Redis OSS 集群或无服务器缓存的 point-in-time副本,或者是 Memcached 无服务器缓存的副本。备份可用于还原现有集群或为新集群做种。备份包含集群中的所有数据和某些元数据。
根据集群上OSS运行的 Valkey 或 Redis 版本,备份过程需要不同的预留内存量才能成功。有关更多信息,请参阅下列内容:
ElastiCache 事件
当缓存集群上发生重要事件时, ElastiCache 会向特定的 Amazon SNS 主题发送通知。这些事件可能包括诸如添加节点失败、添加节点成功、修改安全组等内容。通过监控关键事件,您可以了解集群的当前状态,并且在许多情况下,您都可用采取相应的纠正措施。
有关 ElastiCache 事件的更多信息,请参阅Amazon SNS 监控 ElastiCache 事件。