本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
此练习将指导您完成使用 MemoryDB 管理控制台创建、授予访问权限、连接并最终删除 MemoryDB 集群的步骤。
注意
在此次练习中,我们建议您在创建集群时使用轻松创建选项,并在进一步探索 MemoryDB 的功能后再尝试其他两个选项。
步骤 1:设置
下面,您可以找到描述开始使用 MemoryDB 时必须采取的一次性操作的主题。
注册获取 AWS 账户
如果您没有 AWS 账户,请完成以下步骤来创建一个。
报名参加 AWS 账户
打开https://portal.aws.amazon.com/billing/注册。
按照屏幕上的说明操作。
在注册时,将接到电话,要求使用电话键盘输入一个验证码。
当您注册时 AWS 账户,就会创建AWS 账户根用户一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 https://aws.amazon.com/
创建具有管理访问权限的用户
注册后,请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center,启用并创建管理用户,这样您就不会使用 root 用户执行日常任务。
保护你的 AWS 账户根用户
-
选择 Root 用户并输入您的 AWS 账户 电子邮件地址,以账户所有者的身份登录。AWS Management Console
在下一页上,输入您的密码。 要获取使用根用户登录方面的帮助,请参阅《AWS 登录 用户指南》中的 Signing in as the root user。
-
为您的根用户启用多重身份验证(MFA)。
有关说明,请参阅 I A M 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备(控制台)。
创建具有管理访问权限的用户
-
启用 IAM Identity Center。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Enabling AWS IAM Identity Center。
-
在 IAM Identity Center 中,为用户授予管理访问权限。
有关使用 IAM Identity Center 目录 作为身份源的教程,请参阅《用户指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户访问权限。
以具有管理访问权限的用户身份登录
-
要使用您的 IAM Identity Center 用户身份登录,请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录网址。
有关使用 IAM Identity Center 用户登录的帮助,请参阅AWS 登录 用户指南中的登录 AWS 访问门户。
将访问权限分配给其他用户
-
在 IAM Identity Center 中,创建一个权限集,该权限集遵循应用最低权限的最佳做法。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Create a permission set。
-
将用户分配到一个组,然后为该组分配单点登录访问权限。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Add groups。
授权以编程方式访问
如果用户想在 AWS 外部进行交互,则需要编程访问权限 AWS Management Console。授予编程访问权限的方式取决于正在访问的用户类型 AWS。
要向用户授予编程式访问权限,请选择以下选项之一。
哪个用户需要编程式访问权限? | 目的 | 方式 |
---|---|---|
人力身份 (在 IAM Identity Center 中管理的用户) |
使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |
按照您希望使用的界面的说明进行操作。
|
IAM | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 | 按照 IAM 用户指南中的将临时证书与 AWS 资源配合使用中的说明进行操作。 |
IAM | (不推荐使用) 使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |
按照您希望使用的界面的说明进行操作。
|
设置权限(仅限新的 MemoryDB 用户)
要提供访问权限,请为您的用户、组或角色添加权限:
-
中的用户和群组 AWS IAM Identity Center:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中针对第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
MemoryDB 会代表您创建并使用服务相关角色以预配置资源并访问其他 AWS 资源和服务。要让 MemoryDB 为您创建服务相关角色,请使用名为的托 AWS管策略。AmazonMemoryDBFullAccess
此角色预配置了该服务您代表您创建服务相关角色所需的权限。
您可能决定不使用默认策略,而是使用自定义托管策略。在这种情况下,请确保您具有调用 iam:createServiceLinkedRole
的权限或创建了 MemoryDB 服务相关角色。
有关更多信息,请参阅下列内容:
下载和配置 AWS CLI
可在以下 AWS CLI 网址获得:http://aws.amazon.com/cli
按照安装 AWS CLI 和配置 CL AWS I 的说明进行操作。
步骤 2:创建集群
在创建用于生产使用的集群之前,您显然需要考虑如何配置集群以满足您的业务需求。这些问题在 准备集群 部分中解决。就本入门练习而言,您可以在其适用时接受默认配置值。
您所创建的集群将是活动的,不会在沙盒中运行。您需要为实例支付标准的 MemoryDB 使用费,直到您删除该实例。如果您一鼓作气完成此处描述的练习并在使用完毕后删除集群,则产生的全部费用将非常少(通常不到一美元)。有关 MemoryDB 使用费率的更多信息,请参阅 MemoryDB
在虚拟私有云(VPC)中基于 Amazon VPC 服务启动集群。
创建 MemoryDB 集群
以下示例展示了如何使用 AWS Management Console、 AWS CLI 和 MemoryDB API 创建集群。
使用 MemoryDB 控制台创建集群
-
登录 AWS Management Console 并打开 MemoryDB 控制台,网址为。https://console.aws.amazon.com/memorydb/
-
在左侧导航窗格中,选择集群,然后选择创建。
要使用创建集群 AWS 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 弹性容器服务或 AWS 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 安全组中创建允许从另一安全组连接的规则
-
登录 AWS 管理控制台并在 https://console.aws.amazon.com/
vpc 上打开 Amazon VPC 控制台。 -
在左侧导航窗格中,选择安全组。
-
选择或创建一个要用于集群的安全组。在入站规则下,选择编辑入站规则,然后选择添加规则。此安全组将允许访问其他安全组的成员。
-
从 Type 中选择 Custom TCP Rule。
-
对于 Port Range,指定在创建集群时使用的端口。
MemoryDB 集群的默认端口为
6379
。 -
在 Source 框中,开始键入安全组的 ID。从列表中选择您将用于 Amazon EC2 实例的安全组。
-
-
完成后选择 Save。
启用访问后,您现在就可以连接到集群,如下一部分中所述。
有关从不同的 Amazon VPC、不同的 AWS 区域甚至您的公司网络访问您的 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
异常。
以下过程从您的部署中删除单个集群。要删除多个集群,请对要删除的每个集群重复此过程。在开始删除一个集群的过程之前,您无需等待删除另一个集群完成。
删除集群
-
登录 AWS 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 和可用工具的更多信息: