为 Valkey 创建基于节点的 ElastiCache 集群
以下是在为 Valkey 创建基于节点的 ElastiCache 集群时必须执行的一次性操作。
步骤 1:创建子网组
在创建 ElastiCache(Valkey)集群之前,请先创建一个子网组。缓存子网组是您要为 VPC 中的集群指定的子网集合。当您启动 VPC 中的某个集群时,您需要选择一个缓存子网组。然后,ElastiCache 使用这个缓存子网组为集群中的每个缓存节点分配子网范围内的 IP 地址。
当您创建新的子网组时,请记下可用 IP 地址的数量。如果子网拥有的空闲 IP 地址很少,则您可以向集群中添加的额外节点数可能会受限制。要解决此问题,您可以对某一子网组分配一个或多个子网,这样集群的可用区中便会有充足数量的 IP 地址。之后,便可向您的集群中添加更多节点。
有关设置 ElastiCache 的更多信息,请参阅设置 ElastiCache。
以下过程演示如何创建名为 mysubnetgroup 的子网组(控制台)和 Amazon CLI。
以下过程介绍如何创建子网组(控制台)。
创建子网组(控制台)
-
登录 Amazon 管理控制台并打开 ElastiCache 控制台(https://console.aws.amazon.com/elasticache/
)。 -
在导航列表中,选择 Subnet Groups。
-
选择 Create Subnet Group。
-
在 Create Subnet Group(创建子网组)向导中,执行以下操作。根据需要完成所有设置后,选择 Yes, Create。
-
在 Name 框中,为子网组键入名称。
-
在 Description 框中,为子网组键入描述。
-
在 VPC ID 框中,选择您创建的 Amazon VPC。
-
在可用区和子网 ID 列表中,选择您的私有子网的可用区或 将 Local Zones 与 ElastiCache 结合使用 和 ID,然后选择添加。
-
-
在出现的确认信息中,选择 Close。
您的新子网组会显示在 ElastiCache 控制台的 Subnet Groups(子网组)列表中。您可以在窗口底部选择子网组以查看详细信息,例如与此组关联的所有子网。
在命令提示符处,使用命令 create-cache-subnet-group 创建子网组。
对于 Linux、macOS 或 Unix:
aws elasticache create-cache-subnet-group \ --cache-subnet-group-namemysubnetgroup\ --cache-subnet-group-description"Testing"\ --subnet-idssubnet-53df9c3a
对于 Windows:
aws elasticache create-cache-subnet-group ^ --cache-subnet-group-namemysubnetgroup^ --cache-subnet-group-description"Testing"^ --subnet-idssubnet-53df9c3a
该命令应该生成类似于下述信息的输出:
{
"CacheSubnetGroup": {
"VpcId": "vpc-37c3cd17",
"CacheSubnetGroupDescription": "Testing",
"Subnets": [
{
"SubnetIdentifier": "subnet-53df9c3a",
"SubnetAvailabilityZone": {
"Name": "us-west-2a"
}
}
],
"CacheSubnetGroupName": "mysubnetgroup"
}
}有关更多信息,请参阅 Amazon CLI 主题 create-cache-subnet-group。
步骤 2:创建集群
在创建用于生产使用的集群之前,您显然需要考虑如何配置集群以满足您的业务需求。这些问题在 准备在 ElastiCache 中创建集群 部分中解决。就本入门练习而言,您将创建一个禁用集群模式的集群,并且您可以在其适用时接受默认配置值。
您所创建的集群将是活动的,不会在沙盒中运行。您需要为实例支付标准的 ElastiCache 使用费,直到您删除该实例。如果您一鼓作气完成此处描述的练习并在使用完毕后删除集群,则产生的全部费用将非常少(通常不到一美元)。有关 ElastiCache 使用费率的更多信息,请参阅 Amazon ElastiCache
在虚拟私有云(VPC)中基于 Amazon VPC 服务启动集群。
创建 Valkey(已禁用集群模式)集群(控制台)
使用 ElastiCache 控制台创建 Valkey(已禁用集群模式)集群
-
登录 Amazon Web Services 管理控制台 并打开 Amazon ElastiCache 控制台(https://console.aws.amazon.com/elasticache/
)。 -
从右上角的列表中,选择要在其中启动此集群的 Amazon 区域。
-
从导航窗格中,选择 Get started(入门)。
选择 Create VPC(创建 VPC)并按照创建虚拟私有云(VPC)中的步骤操作。
在 ElastiCache 控制面板页面上,选择 Valkey 缓存或 Redis OSS 缓存,然后选择创建 Valkey 缓存或创建 Redis OSS 缓存。
-
在 Cluster settings(集群设置)下,执行以下操作:
选择 Configure and create a new cluster(配置和创建新集群)。
对于 Cluster mode(集群模式),选择 Disabled(已禁用)。
-
对于 Cluster info(集群信息),为 Name(名称)输入一个值。
-
(可选)为 Description(描述)输入一个值。
在 Location(位置)下:
当您的集群状态为 available(可用)时,您可向其授予 Amazon EC2 访问权限,连接到集群并开始使用它。有关更多信息,请参阅第 3 步:授予对集群的访问权限和第 4 步:连接到集群的节点。
重要
您的集群变为可用状态后,您便需要为集群处于活动状态的每个小时或分钟支付费用(即使您并未主动使用集群)。要停止此集群产生的费用,您必须将其删除。请参阅在 ElastiCache 中删除集群。
要在启用集群模式的情况下工作,请参阅以下主题:
要使用控制台,请参阅创建 Valkey 或 Redis OSS(已启用集群模式)集群(控制台)。
要使用 Amazon CLI,请参阅创建 Valkey 或 Redis OSS(已启用集群模式)集群(Amazon CLI)。
第 3 步:授予对集群的访问权限
此部分假设您熟悉 Amazon EC2 实例的启动和连接。有关更多信息,请参阅 Amazon EC2 入门指南。
所有 ElastiCache 集群旨在通过 Amazon EC2 实例进行访问。最常见的情况是从同一 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon EC2 实例访问 ElastiCache 集群,这将是本练习的情况。
原定设置情况下,对您的集群的网络访问仅限于用于创建集群的账户。必须先授权 EC2 实例访问集群,然后您才能从 EC2 实例连接到集群。
最常见的使用场景是,当 EC2 实例上部署的应用程序需要连接到同一 VPC 中的集群时。要管理同一 VPC 中 EC2 实例与集群之间的访问,最简单方法如下所示:
-
为集群创建 VPC 安全组。此安全组可用于限制对集群实例的访问权限。例如,可为此安全组创建自定义规则,允许使用您创建集群时分配给该集群的端口以及将用来访问集群的 IP 地址进行 TCP 访问。
Valkey 或 Redis OSS 集群和复制组的默认端口为
6379。重要
Amazon ElastiCache 安全组仅适用于未运行于 Amazon Virtual Private Cloud 环境 (VPC) 中的集群。如果您正在 Amazon Virtual Private Cloud 中运行,安全组将在控制台导航窗格中将不可用。
如果您在 Amazon VPC 中运行 ElastiCache 节点,则可使用 Amazon VPC 安全组(与 ElastiCache 安全组不同)控制对集群的访问。有关在 Amazon VPC 中使用 ElastiCache 的更多信息,请参阅 Amazon VPC 和 ElastiCache 安全性
-
为 EC2 实例(Web 和应用程序服务器)创建 VPC 安全组。如果需要,此安全组可允许通过 VPC 的路由表从 Internet 访问 EC2 实例。例如,您可设置此安全组的规则以允许通过端口 22 对 EC2 实例进行 TCP 访问。
-
在集群的安全组中创建自定义规则,允许从为 EC2 实例创建的安全组连接。这将允许安全组的任何成员均可访问集群。
注意
如果您计划使用 Local Zones,请确保已将其启用。当您在该本地区域中创建子网组时,您的 VPC 也会扩展到该本地区域,并且您的 VPC 会将该子网视为任何其他可用区中的任何子网。所有相关网关和路由表都将自动调整。
在 VPC 安全组中创建允许从另一安全组连接的规则
-
登录 Amazon 管理控制台并通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc
。 -
在导航窗格中,选择安全组。
-
选择或创建一个要用于集群实例的安全组。在入站规则下,选择编辑入站规则,然后选择添加规则。此安全组将允许访问其他安全组的成员。
-
从 Type 中选择 Custom TCP Rule。
-
对于 Port Range,指定在创建集群时使用的端口。
Valkey 或 Redis OSS 集群和复制组的默认端口为
6379。 -
在 Source 框中,开始键入安全组的 ID。从列表中选择要用于 Amazon EC2 实例的安全组。
-
-
完成后选择 Save。
启用访问后,您现在就可以连接到节点,如下一部分中所述。
有关从其他 Amazon VPC、其他 Amazon 区域或企业网络访问您的 ElastiCache 集群的信息,请参阅:
第 4 步:连接到集群的节点
在继续之前,请完成第 3 步:授予对集群的访问权限。
此部分假设您已创建了 Amazon EC2 实例并可以连接到该实例。有关如何执行此操作的说明,请参阅 Amazon EC2 入门指南。
仅当您进行授权后,Amazon EC2 实例才能连接到集群节点。
查找您的节点端点
在您的集群处于可用状态且您已授予对该集群的访问权限时,您可以登录 Amazon EC2 实例并连接到该集群。为此,您必须先确定端点。
查找 Valkey(已禁用集群模式)集群的端点(控制台)
如果 Valkey(已禁用集群模式)集群只有一个节点,则使用该节点的端点进行读取和写入操作。如果该集群具有多个节点,则有三种类型的端点,即主端点、读取器端点和节点端点。
主端点是一个 DNS 名称,始终解析为集群中的主节点。主端点不受集群更改的影响,如将只读副本提升为主角色。对于写入活动,我们建议您的应用程序连接到主端点。
读取器端点将在 ElastiCache 集群中的所有只读副本之间均匀地分配指向端点的传入连接。应用程序何时创建连接或应用程序如何(重复)使用连接等附加因素将决定流量分配。读取器端点会在添加或删除副本时实时跟踪集群更改。您可以将 ElastiCache 集群的多个只读副本置于不同的 Amazon 可用区(AZ)中以确保读取器端点的高可用性。
注意
读取器端点不是负载均衡器。它是一个 DNS 记录,将以循环方式解析为副本节点之一的 IP 地址。
对于读取活动,应用程序还可以连接到集群中的任何节点。与主端点不同,节点端点会解析为特定端点。如果您在您的集群中进行更改(例如添加或删除副本),则必须在您的应用程序中更新节点端点。
查找 Valkey(已禁用集群模式)集群的端点
-
登录 Amazon Web Services 管理控制台 并打开 ElastiCache 控制台(https://console.aws.amazon.com/elasticache/
)。 -
从导航窗格中,选择 Valkey 缓存或 Redis OSS 缓存。
集群屏幕将显示一个列表,其中包含任何现有 Valkey 或 Redis OSS 无服务器缓存、Valkey(已禁用集群模式)和 Valkey(已启用集群模式)集群。选择在 创建 Valkey(已禁用集群模式)集群(控制台) 部分中创建的集群。
-
要查找集群的主端点和/或读取器端点,请选中集群的名称(不是单选按钮)。
Valkey(已禁用集群模式)集群的主端点和读取器端点
如果该集群只有一个节点,则没有主端点,您可以继续下一步。
-
如果 Valkey(已禁用集群模式)集群有副本节点,您可以通过选择此集群的名称、然后选择节点选项卡来找到集群副本的节点端点。
此时会显示节点屏幕,其中列出了集群中的每个节点(主节点和副本节点)及其端点。
Valkey(已禁用集群模式)集群的节点端点
-
将端点复制到剪贴板:
-
逐一找到要复制的端点。
-
直接选择端点前面的复制图标。
端点现已复制到剪贴板。有关使用端点连接到节点的信息,请参阅 连接到节点。
-
Valkey(已禁用集群模式)主端点类似以下内容。根据是否已启用传输中加密而有所不同。
未启用传输中加密
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
已启用传输中加密
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port
master.ncit.ameaqx.use1.cache.amazonaws.com:6379
为进一步了解如何查找您的端点,请参阅您正在运行的引擎和集群类型的相关主题。
现在您有了所需的端点,便可以登录 EC2 实例并连接到集群或复制组。在以下示例中,您使用 valkey-cli 实用工具连接到集群。最新版本的 valkey-cli 还支持 SSL/TLS 用于连接启用加密/身份验证的集群。
以下示例使用运行 Amazon Linux 和 Amazon Linux 2 的 Amazon EC2 实例。有关使用其他 Linux 发行版安装和编译 valkey-cli 的详细信息,请参阅特定操作系统的文档。
注意
此过程包括使用仅供计划外使用的 valkey-cli 实用工具测试连接。有关受支持 Valkey 和 Redis OSS 客户端的列表,请参阅 Valkey 文档
连接到已禁用集群模式的未加密的集群
运行以下命令以连接到集群,并将
primary-endpoint和port number替换为您的集群端点和您的端口号。(Valkey 或 Redis OSS 的默认端口为 6379。)src/valkey-cli -hprimary-endpoint-pport numberValkey 或 Redis OSS 命令提示符的结果类似于以下内容:
primary-endpoint:port number现在您就可以运行 Valkey 或 Redis OSS 命令了。
set x Hello OK get x "Hello"
连接到已启用集群模式的未加密集群
运行以下命令以连接到集群,并将
configuration-endpoint和port number替换为您的集群的端点和您的端口号。(Valkey 或 Redis OSS 的默认端口为 6379。)src/valkey-cli -hconfiguration-endpoint-c -pport number注意
在上述命令中,选项 -c 可遵循 -ASK 和 -MOVED 重新导向
启用集群模式。 Valkey 或 Redis OSS 命令提示符的结果类似于以下内容:
configuration-endpoint:port number现在您就可以运行 Valkey 或 Redis OSS 命令了。请注意,重新导向发生是因为您使用 -c 选项启用了它。如果未启用重新导向,则命令将返回 MOVED 错误。有关 MOVED 错误的更多信息,请参阅 Redis OSS 集群规范
。 set x Hi -> Redirected to slot [16287] located at 172.31.28.122:6379 OK set y Hello OK get y "Hello" set z Bye -> Redirected to slot [8157] located at 172.31.9.201:6379 OK get z "Bye" get x -> Redirected to slot [16287] located at 172.31.28.122:6379 "Hi"
连接到启用加密/身份验证的集群
默认情况下,valkey-cli 在连接到 Valkey 或 Redis OSS 时使用未加密的 TCP 连接。选项 BUILD_TLS=yes 在 valkey-cli 编译时启用 SSL/TLS,如上述 下载并设置命令行访问权限 部分所示。启用 AUTH 是可选的。但是,您必须启用传输过程中的加密才能启用 AUTH。有关 ElastiCache 加密和身份验证的更多详细信息,请参阅 ElastiCache 传输中加密(TLS)。
注意
您可以通过 valkey-cli 使用选项 --tls 连接到已启用和已禁用集群模式的加密集群。如果集群设置了 AUTH 令牌,则可以使用选项 -a 以提供 AUTH 密码。
在以下示例中,确保将 cluster-endpoint(集群端点) 和 port number(端口号) 替换为您的集群端点和您的端口号。(Valkey 或 Redis OSS 的默认端口为 6379。)
连接到已禁用集群模式的加密群集
以下示例连接到已启用加密和身份验证的集群:
src/valkey-cli -hcluster-endpoint--tls -ayour-password-pport number
以下示例连接到仅启用加密的集群:
src/valkey-cli -hcluster-endpoint--tls -pport number
连接到已启用集群模式的加密群集
以下示例连接到已启用加密和身份验证的集群:
src/valkey-cli -c -hcluster-endpoint--tls -ayour-password-pport number
以下示例连接到仅启用加密的集群:
src/valkey-cli -c -hcluster-endpoint--tls -pport number
连接到集群后,您可以为未加密集群运行上述示例中的 Valkey 或 Redis OSS 命令。
valkey-cli 替代方案
如果集群未启用集群模式,并且您需要与集群建立连接以进行短期测试(但不经过 valkey-cli 编译),则可以使用 telnet 或 openssl。在以下示例命令中,确保将 cluster-endpoint(集群端点) 和 port number(端口号) 替换为您的集群端点和您的端口号。(Valkey 或 Redis OSS 的默认端口为 6379。)
以下示例连接到已启用加密和/或身份验证且已禁用集群模式的集群:
openssl s_client -connectcluster-endpoint:port number
如果集群已设置密码,请先连接到集群。连接后,使用以下命令对集群进行身份验证,然后按 Enter 键。在以下示例中,将 your-password 替换为您的集群密码。
Authyour-password
以下示例连接到未启用加密或身份验证的已禁用集群模式的集群:
telnetcluster-endpointport number
要使用 Valkey CLI 或 Redis OSS CLI 从 EC2 Windows 实例连接到 Valkey 或 Redis OSS 集群,您必须下载 valkey-cli 软件包并使用 valkey-cli.exe 从 EC2 Windows 实例连接到 Valkey 或 Redis OSS 集群。
在以下示例中,您使用 valkey-cli 实用工具连接到未启用加密的运行 Valkey 或 Redis OSS 的集群。有关 Valkey 或 Redis OSS 和可用命令的更多信息,请参阅 Valkey 网站上的 Valkey 和 Redis OSS 命令
使用 valkey-cli 连接未启用加密的 Valkey 或 Redis OSS 集群
-
使用您选择的连接实用工具连接到 Amazon EC2 实例。有关如何连接到 Amazon EC2 实例的说明,请参阅 Amazon EC2 入门指南。
复制链接 https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip
并将其粘贴到互联网浏览器中,以便从 GitHub https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504 提供的可用版本中下载 Valkey 客户端的 zip 格式文件 将 zip 文件提取到您指定的文件夹/路径。
打开命令提示符并更改为 Valkey 目录,然后运行命令
c:\Valkey>valkey-cli -h。Redis_Cluster_Endpoint-p 6379例如:
c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379-
运行 Valkey 或 Redis OSS 命令。
您现已连接至集群并且可以按以下方式运行 Valkey 或 Redis OSS 命令。
set a "hello"// Set key "a" with a string value and no expiration OKget a// Get value for key "a" "hello"get b// Get value for key "b" results in miss (nil)set b "Good-bye" EX 5// Set key "b" with a string value and a 5 second expiration "Good-bye"get b// Get value for key "b" "Good-bye" // wait >= 5 secondsget b(nil) // key has expired, nothing returnedquit// Exit from valkey-cli
接下来该做什么?
至此,您已尝试入门练习,接下来可以探索以下部分以了解有关 ElastiCache 和可用工具的更多信息:
完成入门练习之后,您可以阅读以下部分了解有关 ElastiCache 管理的更多信息:
-
您希望缓存足够大以容纳要进行缓存的所有数据。同时,您不希望为所需缓存之外的缓存付费。使用本主题可帮助您选择最佳节点大小。
-
确定并解决会影响集群效率的问题。