ElastiCache for Redis Components and Features - 用于 Redis 的 Amazon ElastiCache
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

ElastiCache for Redis Components and Features

下面,您可以找到 Amazon ElastiCache 部署的主要组件概述。

ElastiCache Nodes

A node 是 ElastiCache 部署。一个节点可独立于其他节点存在,也可与其他节点之间有某种关系。

节点是固定大小、与网络连接的安全 RAM 区块。每个节点都运行在您创建集群时选择的引擎和版本的实例。如果需要,您可以将集群中的节点纵向扩展或缩减到不同的实例类型。有关更多信息,请参阅 扩展 ElastiCache for Redis 集群。)

一个集群中的每个节点都是相同的实例类型且运行相同的缓存引擎。每个缓存节点都有自己的域名服务 (DNS) 名称和端口。支持多种缓存节点类型,每种可有不同的关联内存量。有关受支持的节点实例类型的列表,请参阅受支持的节点类型

您可以按需付费的形式购买节点,这样一来,您只需为使用的节点付费,或者,您可以按小时费率购买保留节点。如果使用率高,则购买预留节点可节省资金。假设您的集群几乎始终在使用中,并且您有时会添加节点来满足使用峰值的需求。在这种情况下,您可以购买大多数时间运行的保留节点。您可以在偶尔需要添加节点的时间购买即用即用节点。有关预留节点的更多信息,请参阅ElastiCache 预留节点

有关节点的更多信息,请参阅管理节点

ElastiCache for Redis Shards

红色 shard (称为A node group 在API和CLI中) six 相关节点。Redis (已禁用集群模式)集群始终只有一个分片。一个 Redis (已启用集群模式)集群最多可以有 1–90 个分片。

A multiple node shard 通过具有一个读/写主节点和1实现复制–5 复制副本节点。有关更多信息,请参阅 使用复制组的高可用性。)

有关分片的更多信息,请参阅使用分片

ElastiCache for Redis Clusters

红色 cluster 是一个或多个逻辑分组 ElastiCache for Redis Shards. 数据分配在 Redis (已启用集群模式)集群中的分片上。

许多 ElastiCache 操作面向集群:

  • Creating a cluster

  • Modifying a cluster

  • Taking snapshots of a cluster (all versions of Redis)

  • Deleting a cluster

  • Viewing the elements in a cluster

  • Adding or removing cost allocation tags to and from a cluster

有关更多详细信息,请参阅以下相关主题:

Typical Cluster Configurations

Redis 集群包含 1–90 个分片(在 API 中称为节点组),每个分片都是数据的一个分区。Redis (已禁用集群模式)始终只有一个分片。

以下是典型的集群配置。

Redis Clusters

A Redis (已启用集群模式) 群集包含1个–90 shards(API和CLI中,称为 node groups)。 Redis (已禁用集群模式) 群集总是只包含一个SHARD(在API和CLI中,一个节点组)。一个 Redis 分片包含 1 到 six 个节点。如果碎片中有多个节点,则会支持复制。在这种情况下,一个节点是读/写主节点,其他节点为只读复制副本节点。

为了提高容错能力,我们建议在 Redis 集群中包含至少两个节点,并启用多可用区。有关更多信息,请参阅 缓解故障。)

根据您的 Redis (已禁用集群模式) 群集更改,您可以向上或向下扩展。为此,您将群集移动到不同的节点实例类型。如果您的应用程序读取密集型,建议添加只读副本 Redis (已禁用集群模式) 群集。通过这样做,您可以跨越更合适的节点数传播读取。

ElastiCache 支持将 Redis (已禁用集群模式)集群节点类型动态地更改为较大的节点类型。有关纵向扩展或缩减的信息,请参阅扩展单节点 Redis(已禁用集群模式) 集群扩展具有副本节点的 Redis(已禁用集群模式) 集群

ElastiCache for Redis Replication

在继续阅读以下内容之前,请先参阅ElastiCache for Redis Terminology,以更好地了解 ElastiCache 控制台与 ElastiCache API、AWS CLI 之间的术语区别。

通过在一个分片(在 API 和 CLI 中,称为节点组)中对 2 到 six 个节点进行分组来实现复制。在这些节点中,有一个是读取/写入主节点。所有其他节点均为只读副本节点。

每个副本节点保留一个主节点中的数据的副本。复制节点使用异步复制机制来与主节点保持同步。应用程序可从集群中的任何节点进行读取,但只能对主节点进行写入。只读副本通过跨多个终端节点分布读取来增强可扩展性。只读副本还通过维护数据的多个副本来增强容错能力。在多个可用区内定位只读副本可进一步增强容错能力。有关容错能力的更多信息,请参阅缓解故障

Redis (已禁用集群模式) 群集支持一个碎片(API和CLI中,称为A node group)。 Redis (已启用集群模式) 群集支持1–90 shards(API和CLI中,称为节点组)。

从 API 和 CLI 的视角来看,复制使用了不同的术语来维护与之前版本的兼容性,但结果是相同的。下表显示了用于实现复制的 API 和 CLI 术语。

复制比较:Redis (已禁用集群模式) 和 Redis (已启用集群模式)

在下表中,您可以查找 Redis (已禁用集群模式) 和 Redis (已启用集群模式) 复制组的功能比较。

Redis (已禁用集群模式) Redis (已启用集群模式)
分片(节点组) 1 1–90
每个分片的副本数 (节点组) 0–5 0–5
数据分区
添加/删除副本
添加/删除组节点
支持扩展
支持引擎升级
将副本提升为主副本 自动
多可用区 可选 必需
备份/还原
备注:
如果任何主副本没有副本,则在主副本失败时,您将失去该主副本的所有数据。
您可以使用备份和恢复功能来迁移到 Redis (已启用集群模式)。
您可以使用备份和恢复功能来调整您的 Redis (已启用集群模式) 集群的大小。

所有分片 (在 API 和 CLI 中称为节点组) 和节点必须位于同一 AWS 区域内。但是,您可在该 AWS 区域内的多个可用区中预配置各个节点。

由于您的数据会在两个或更多节点(主节点和一个或多个只读副本节点)中复制,因此只读副本节点会防止可能的数据丢失。为获得更高的可靠性和更快的恢复,建议您在不同可用性区域创建一个或多个读取副本。此外,启用多可用区,而不是使用 Redis 仅附加文件 (AOF)。启用多可用区时,AOT 处于禁用状态。有关更多信息,请参阅 利用多可用区最大限度地减少 ElastiCache for Redis 停机时间。)

Replication: Limits and Exclusions

  • AOF is not supported on node type cache.t1.micro and cache.t2. For nodes of these types, the appendonly parameter value is ignored.

  • Multi-AZ is not supported on node types T1.

有关 AOF 和多可用区的更多信息,请参阅缓解故障

AWS Regions and Availability Zones

Amazon ElastiCache 在全世界多个 AWS 区域可用。因此,您可在满足您业务需求的位置启动 ElastiCache 集群。例如,您可以在最靠近您客户或者满足特定法规要求的 AWS 区域启动。

默认情况下,AWSSDK, AWS CLI, ElastiCache API,以及 ElastiCache 控制台参考 美国西部(俄勒冈) 地区。AS ElastiCache 也可以扩展新的AWS区域可用性,这些AWS区域的新端点也可用。您可以在您的HTTP请求、AWSSDK中使用 AWS CLI,和 ElastiCache 控制台。

每个 AWS 区域都被设计为与其他 AWS 区域完全隔离。每个区域内有多个可用区。通过在不同的可用区内启动节点,您可以实现可能的最大容错。有关 AWS 区域和可用区的更多信息,请参阅选择区域和可用区。在下图中,您可以看到 AWS 区域和可用区如何工作的宏观视图。


					映像 AWS 区域和可用区

有关 ElastiCache 及其终端节点支持的 AWS 区域的信息,请参阅支持的区域和终端节点

ElastiCache for Redis Endpoints

一个 endpoint 是您应用程序用于连接到AN的唯一地址 ElastiCache 节点或群集。

Single Node Endpoints for Redis(已禁用集群模式)

单节点 Redis 集群的终端节点用于连接到用于读取和写入的集群。

Multi-Node Endpoints for Redis(已禁用集群模式)

多节点 Redis (已禁用集群模式)集群包含两种类型的终端节点。主终端节点始终连接到集群中的主节点,即使主角色中的特定节点发生更改也是如此。使用主终端节点执行对集群的所有写入操作。

Redis (已禁用集群模式)集群中的读取终端节点始终指向特定节点。当您添加或移除只读副本时,必须更新应用程序中关联的节点终端节点。

Redis(已启用集群模式) Endpoints

Redis (已启用集群模式)集群只有一个配置终端节点。通过连接到配置终端节点,您的应用程序可以查找集群中每个分片的主终端节点和读取终端节点。

有关更多信息,请参阅 查找连接终端节点。)

ElastiCache Parameter Groups

缓存参数组是为受支持的引擎软件管理运行时设置的简单方法。参数用于控制内存使用率、移出策略、项目大小等。ElastiCache 参数组是可应用于集群的特定于引擎的参数的命名集合。通过这样做,您可以确保该集群中的所有节点都以完全相同的方式进行配置。

有关受支持的参数、其默认值以及其中可以修改的参数的列表,请参阅 ()。DescribeEngineDefaultParameters CLI 描述-引擎-默认参数).

有关 ElastiCache 参数组的更多详细信息,请参见使用参数组配置引擎参数

ElastiCache for Redis Security

为了增强安全性, ElastiCache for Redis 节点访问仅限于在 Amazon EC2 您允许的实例。您可以控制可以访问集群安全组的 Amazon EC2 实例。

默认情况下,所有新 ElastiCache for Redis 集群都在 Amazon Virtual Private Cloud (Amazon VPC) 环境中启动。您可以使用 subnet groups 如何授予群集访问 Amazon EC2 在特定子网上运行的实例。如果您选择在以外运行群集 Amazon VPC,您可以创建 security groups。这些允许您授权 Amazon EC2 在特定情况下运行的实例 Amazon EC2 安全组。

除了限制节点访问外, ElastiCache for Redis 为运行指定版本的节点支持TLS和就地加密 ElastiCache for Redis. 有关更多信息,请参阅以下内容:。

ElastiCache Security Groups

注意

ElastiCache 安全组仅适用于不在 Amazon Virtual Private Cloud (Amazon VPC) 环境中运行的集群。如果您运行 ElastiCache 虚拟私有云(vpc)中的节点 Amazon VPC,您可以控制对缓存群集的访问 Amazon VPC 安全组。这些不同于 ElastiCache 安全组。有关将 ElastiCache 与 Amazon VPC 配合使用的更多信息,请参阅Amazon VPC 和 ElastiCache 安全性

带有 ElastiCache,您可以使用安全组控制对群集的访问。A security group 像防火墙一样,控制对您群集的网络访问。默认情况下,对集群的网络访问处于关闭状态。如果您希望应用程序访问群集,请明确启用特定主机的访问 Amazon EC2 安全组。配置入口规则后,相同规则便会适用于与该安全组关联的所有集群。

要允许对您的集群进行网络访问,请首先创建一个安全组。然后使用 AuthorizeCacheSecurityGroupIngress API操作或 授权缓存安全组-进入 AWS CLI 命令以授权所需的 Amazon EC2 安全组。执行此操作反过来可指定允许的 Amazon EC2 实例。您可以在创建时将安全组与群集关联。您也可以使用 ElastiCache 管理控制台,ModifyCacheCluster API操作,或 修改缓存群集 AWS CLI command

重要

基于IP范围的访问控制目前尚未为群集启用。集群的所有客户端必须在 Amazon EC2 通过使用以前所述的安全组来获得授权。

(有关安全组的更多信息,请参阅 安全组 EC2-Classic。)

ElastiCache Subnet Groups

A subnet group 是一系列子网(通常是私有),可以指定您的群集 Amazon VPC 环境。

如果您在 Amazon VPC 中创建集群,则必须指定缓存子网组。ElastiCache 使用该缓存子网组选择一个子网和该子网内的 IP 地址,以便与您的缓存节点关联。

有关 Amazon VPC 环境中缓存子网组使用情况的更多信息,请参阅以下内容:

ElastiCache for Redis Backups

A backup 是Redis群集的时间点拷贝。备份可用于还原现有集群或为新集群做种。备份包含集群中的所有数据和某些元数据。

根据您集群上运行的 Redis 版本,备份过程需要不同的预留内存量才能成功。有关更多信息,请参阅以下内容:。

ElastiCache Events

在缓存群集上发生重要事件时, ElastiCache 发送通知至特定 Amazon SNS 主题。这些事件可能包括添加节点、安全组修改以及其他方面的故障或成功。通过监控关键事件,您可以了解群集的当前状态,以及许多情况下的纠正措施。

有关 ElastiCache 事件的更多信息,请参阅监控 ElastiCache 事件