本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 MemoryDB
此练习将指导您完成使用 MemoryDB 管理控制台创建、授予访问权限、连接并最终删除 MemoryDB 集群的步骤。
注意
在此次练习中,我们建议您在创建集群时使用轻松创建选项,并在进一步探索 MemoryDB 的功能后再尝试其他两个选项。
步骤 1:设置
下面,您可以找到描述开始使用 MemoryDB 时必须采取的一次性操作的主题。
注册获取 Amazon Web Services 账户
如果您没有 Amazon Web Services 账户,请完成以下步骤来创建一个。
报名参加 Amazon Web Services 账户
按照屏幕上的说明操作。
在注册时,将接到电话,要求使用电话键盘输入一个验证码。
当您注册时 Amazon Web Services 账户,就会创建Amazon Web Services 账户根用户一个。根用户有权访问该账户中的所有 Amazon Web Services 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
Amazon 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 https://aws.amazon.com/
保护 IAM 用户
注册后 Amazon Web Services 账户,请开启多重身份验证 (MFA),保护您的管理用户。有关说明,请参阅《IAM 用户指南》中的 为 IAM 用户启用虚拟 MFA 设备(控制台)。
要允许其他用户访问您的 Amazon Web Services 账户 资源,请创建 IAM 用户。为了保护您的 IAM 用户,请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。
有关创建和保护 IAM 用户的更多信息,请参阅《IAM 用户指南》中的以下主题:
授权以编程方式访问
如果用户想在 Amazon 外部进行交互,则需要编程访问权限 Amazon Web Services Management Console。 Amazon APIs 和 Amazon Command Line Interface 需要访问密钥。可能的话,创建临时凭证,该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。
要向用户授予编程式访问权限,请选择以下选项之一。
哪个用户需要编程式访问权限? | 目的 | 方式 |
---|---|---|
IAM | 使用短期证书签署对 Amazon CLI 或的编程请求 Amazon APIs(直接或使用 Amazon SDKs)。 | 按照 IAM 用户指南中的将临时证书与 Amazon 资源配合使用中的说明进行操作。 |
IAM | (不推荐使用) 使用长期证书签署对 Amazon CLI 或的编程请求 Amazon APIs(直接或使用 Amazon SDKs)。 |
按照《IAM 用户指南》中管理 IAM 用户的访问密钥中的说明进行操作。 |
设置权限(仅限新的 MemoryDB 用户)
要提供访问权限,请为您的用户、组或角色添加权限:
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中针对第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
MemoryDB 会代表您创建并使用服务相关角色以预配置资源并访问其他 Amazon 资源和服务。要让 MemoryDB 为您创建服务相关角色,请使用名为的托 Amazon管策略。AmazonMemoryDBFullAccess
此角色预配置了该服务您代表您创建服务相关角色所需的权限。
您可能决定不使用默认策略,而是使用自定义托管策略。在这种情况下,请确保您具有调用 iam:createServiceLinkedRole
的权限或创建了 MemoryDB 服务相关角色。
有关更多信息,请参阅下列内容:
下载和配置 Amazon CLI
可在以下 Amazon CLI 网址获得:http://aws.amazon.com/cli
步骤 2:创建集群
在创建用于生产使用的集群之前,您显然需要考虑如何配置集群以满足您的业务需求。这些问题在 准备集群 部分中解决。就本入门练习而言,您可以在其适用时接受默认配置值。
您所创建的集群将是活动的,不会在沙盒中运行。您需要为实例支付标准的 MemoryDB 使用费,直到您删除该实例。如果您一鼓作气完成此处描述的练习并在使用完毕后删除集群,则产生的全部费用将非常少(通常不到一美元)。有关 MemoryDB 使用费率的更多信息,请参阅 MemoryDB
在虚拟私有云(VPC)中基于 Amazon VPC 服务启动集群。
创建 MemoryDB 集群
以下示例展示了如何使用 Amazon Web Services Management Console、 Amazon CLI 和 MemoryDB API 创建集群。
使用 MemoryDB 控制台创建集群
-
登录 Amazon Web Services Management Console 并打开 MemoryDB 控制台,网址为。https://console.aws.amazon.com/memorydb/
-
在左侧导航窗格中,选择集群,然后选择创建。
要使用创建集群 Amazon CLI,请参阅create-cluster
。以下是示例:
对于 Linux、macOS 或 Unix:
aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6g.large \ --acl-name my-acl \ --engine valkey \ --subnet-group my-sg
对于 Windows:
aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6g.large ^ --acl-name my-acl ^ --engine valkey --subnet-group my-sg
您应得到以下 JSON 响应:
{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6g.large", "EngineVersion": "7.2", "EnginePatchVersion": "7.2.6", "ParameterGroupName": "default.memorydb-valkey7", "Engine": "valkey" "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN":
"arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster"
, "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering": "false", "AutoMinorVersionUpgrade": true } }
一旦集群的状态更改为 available
,您即可开始使用该集群。
重要
一旦您的集群变为可用状态,您便需要为集群处于活动状态的每个小时或分钟支付费用(即使您并未主动使用集群)。要停止此集群产生的费用,您必须将其删除。请参阅 步骤 5:删除集群。
要使用 MemoryDB API 创建集群,请使用操作。CreateCluster
重要
一旦您的集群变为可用状态,您便需要为集群处于活动状态的每个小时或分钟支付费用(即使您并未使用集群)。要停止此集群产生的费用,您必须将其删除。请参阅 步骤 5:删除集群。
设置身份验证
有关为集群设置身份验证的信息,请参阅 使用 IAM 进行身份验证 和 使用访问控制列表对用户进行身份验证 () ACLs。
步骤 3:授予对集群的访问权限
本节假设您熟悉启动和连接 Amazon EC2 实例。有关更多信息,请参阅 Amazon EC2 入门指南。
MemoryDB 集群专为从亚马逊 EC2 实例访问而设计。它们也可以通过在 Amazon 弹性容器服务或 Amazon Lambda中运行的容器化的应用程序或无服务器应用程序进行访问。最常见的场景是从同一个亚马逊虚拟私有云 (Amazon VPC) 中的亚马逊 EC2 实例访问 MemoryDB 集群,本练习就是这种情况。
必须先授权该 EC2 实例访问集群,然后才能从 EC2 实例连接到集群。
最常见的用例是部署在 EC2 实例上的应用程序需要连接到同一 VPC 中的集群。管理同一 VPC 中 EC2 实例和集群之间访问权限的最简单方法是执行以下操作:
-
为集群创建 VPC 安全组。此安全组可用于限制对集群的访问权限。例如,可为此安全组创建自定义规则,允许使用您创建集群时分配给该集群的端口以及将用来访问集群的 IP 地址进行 TCP 访问。
MemoryDB 集群的默认端口为
6379
。 -
为您的 EC2 实例(Web 和应用程序服务器)创建 VPC 安全组。如果需要,此安全组可以允许通过 VPC 的路由表从 Internet 访问 EC2 实例。例如,您可以在此安全组上设置规则,允许 TCP 通过端口 22 访问 EC2 实例。
-
在集群的安全组中创建自定义规则,允许来自您为 EC2 实例创建的安全组进行连接。这将允许安全组的任何成员均可访问集群。
在 VPC 安全组中创建允许从另一安全组连接的规则
-
登录 Amazon 管理控制台并在 https://console.aws.amazon.com/
vpc 上打开 Amazon VPC 控制台。 -
在左侧导航窗格中,选择安全组。
-
选择或创建一个要用于集群的安全组。在入站规则下,选择编辑入站规则,然后选择添加规则。此安全组将允许访问其他安全组的成员。
-
从 Type 中选择 Custom TCP Rule。
-
对于 Port Range,指定在创建集群时使用的端口。
MemoryDB 集群的默认端口为
6379
。 -
在 Source 框中,开始键入安全组的 ID。从列表中选择您将用于 Amazon EC2 实例的安全组。
-
-
完成后选择 Save。
启用访问后,您现在就可以连接到集群,如下一部分中所述。
有关从不同的 Amazon VPC、不同的 Amazon 区域甚至您的公司网络访问您的 MemoryDB 集群的信息,请参阅以下内容:
步骤 4:连接到集群
在继续之前,请完成步骤 3:授予对集群的访问权限。
本节假设您已经创建了一个 Amazon EC2 实例并且可以连接到该实例。有关如何执行此操作的说明,请参阅《Amazon EC2 入门指南》。
只有在您授权后,Amazon EC2 实例才能连接到集群。
查找您的集群端点
当您的集群处于可用状态并且您已获得访问权限时,您可以登录 Amazon EC2 实例并连接到该集群。为此,您必须先确定端点。
为进一步了解如何查找您的端点,请参阅以下内容:
连接到 MemoryDB 集群(Linux)
现在您已经有了所需的终端节点,可以登录 EC2 实例并连接到集群。在以下示例中,您通过 Ubuntu 22 使用 cli 实用工具连接到集群。最新版本的 cli 还支持SSL/TLS for connecting encryption/authentication已启用的集群。
使用 redis-cli 连接到 MemoryDB 节点
要从 MemoryDB 节点中访问数据,您可以使用与安全套接字层(SSL)一起工作的客户端。您也可以在 Amazon Linux 和 Amazon Linux 2 上使用具有 TLS/SSL 的 redis-cli。
使用 redis-cli 连接到 Amazon Linux 2 或 Amazon Linux 上的 MemoryDB 集群
下载并编译 redis-cli 实用工具。此实用工具包含在 Redis OSS 软件发布版中。
在您的 EC2 实例的命令提示符处,键入与您正在使用的 Linux 版本相对应的命令。
Amazon Linux 2023
如果使用的是 Amazon Linux 2023,请输入以下命令:
sudo yum install redis6 -y
然后键入以下命令,并使用您集群的端点和端口来替换此示例中显示的相应内容。
redis-cli -h
Primary or Configuration Endpoint
--tls -p 6379有关查找端点的更多信息,请参阅查找您的节点端点。
Amazon Linux 2
如果使用的是 Amazon Linux 2,请输入以下命令:
sudo yum -y install openssl-devel gcc wget https://download.redis.io/releases/redis-7.2.5.tar.gz tar xvzf redis-7.2.5.tar.gz cd redis-7.2.5 make distclean make redis-cli BUILD_TLS=yes sudo install -m 755 src/redis-cli /usr/local/bin/
Amazon Linux
如果使用的是 Amazon Linux,请输入以下命令:
sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget wget https://download.redis.io/releases/redis-7.2.5.tar.gz tar xvzf redis-7.2.5.tar.gz cd redis-7.2.5 make redis-cli CC=clang BUILD_TLS=yes sudo install -m 755 src/redis-cli /usr/local/bin/
在 Amazon Linux 上,您可能还需要执行以下额外步骤:
sudo yum install clang CC=clang make sudo make install
下载并安装 redis-cli 实用程序后,建议运行可选的
make-test
命令。-
要连接到已启用加密和身份验证的集群,请输入以下命令:
redis-cli -h
Primary or Configuration Endpoint
--tls -a'your-password'
-p 6379注意
如果您在 Amazon Linux 2023 上安装 redis6,那么现在可以使用命令
redis6-cli
,而不是使用redis-cli
:redis6-cli -h Primary or Configuration Endpoint --tls -p 6379
步骤 5:删除集群
只要集群处于可用 状态,您就绪需为它付费,无论您是否主动使用它。要停止产生费用,请删除此集群。
警告
当您删除 MemoryDB 集群时,您的手动快照将保留。您也可以在删除集群之前创建最终快照。自动快照不会保留。有关更多信息,请参阅 快照和还原 。
创建最终快照需要
CreateSnapshot
权限。如果没有此权限,API 调用将失败,并出现Access Denied
异常。
以下过程从您的部署中删除单个集群。要删除多个集群,请对要删除的每个集群重复此过程。在开始删除一个集群的过程之前,您无需等待删除另一个集群完成。
删除集群
-
登录 Amazon Web Services Management Console 并打开 MemoryDB 控制台,网址为。https://console.aws.amazon.com/memorydb/
-
要选择要删除的集群,请从集群列表中选择该集群的名称旁边的单选按钮。在这种情况下,是您在 步骤 2:创建集群 创建的集群的名称。
-
对于操作,选择删除。
-
首先选择是否在删除集群之前创建集群的快照,然后在确认框中输入
delete
并选择删除删除集群,或者选择取消保留集群。如果选择了 Delete,集群的状态将变为正在删除。
只要您的集群不再在集群列表中列出,您就无需为该集群付费。
以下代码删除集群 my-cluster
。在这种情况下,将 my-cluster
替换为您在 步骤 2:创建集群 中创建的集群的名称。
aws memorydb delete-cluster --cluster-name
my-cluster
delete-cluster
CLI 操作仅删除一个集群。要删除多个集群,请对要删除的每个集群调用 delete-cluster
。在删除一个集群之前,您无需等待删除另一个集群的完成。
对于 Linux、macOS 或 Unix:
aws memorydb delete-cluster \ --cluster-name
my-cluster
\ --regionus-east-1
对于 Windows:
aws memorydb delete-cluster ^ --cluster-name
my-cluster
^ --regionus-east-1
有关更多信息,请参阅 delete-cluster
。
以下代码删除集群 my-cluster
。在这种情况下,将 my-cluster
替换为您在 步骤 2:创建集群 中创建的集群的名称。
https://memory-db.us-east-1.amazonaws.com/ ?Action=DeleteCluster &ClusterName=my-cluster &Region=us-east-1 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20210802T220302Z &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Date=20210802T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20210802T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>
DeleteCluster
API 操作仅删除一个集群。要删除多个集群,请对要删除的每个集群调用 DeleteCluster
。在删除一个集群之前,您无需等待删除另一个集群的完成。
有关更多信息,请参阅 DeleteCluster。
后续步骤
至此,您已尝试入门练习,接下来可以探索以下部分以了解有关 MemoryDB 和可用工具的更多信息: