本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
此练习将指导您完成使用 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 登录 用户指南》中的以根用户身份登录。
-
为您的 root 用户开启多重身份验证 (MFA)。
有关说明,请参阅《用户指南》中的 “为 AWS 账户 root 用户(控制台)启用虚拟MFA设备” IAM。
创建具有管理访问权限的用户
-
启用IAM身份中心。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的启用 AWS IAM Identity Center。
-
在 IAM Identity Center 中,向用户授予管理访问权限。
有关使用 IAM Identity Center 目录 作为身份源的教程,请参阅《用户指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户访问权限。
以具有管理访问权限的用户身份登录
-
要使用您的 Ident IAM ity Center 用户登录URL,请使用您在创建 Ident IAM ity Center 用户时发送到您的电子邮件地址的登录信息。
有关使用 Ident IAM ity Center 用户登录的帮助,请参阅AWS 登录 用户指南中的登录 AWS 访问门户。
将访问权限分配给其他用户
授予编程式访问权限
如果用户想在 AWS 外部进行交互,则需要编程访问权限 AWS Management Console。授予编程访问权限的方式取决于正在访问的用户类型 AWS。
要向用户授予编程式访问权限,请选择以下选项之一。
哪个用户需要编程式访问权限? | 目的 | 方式 |
---|---|---|
人力身份 (在IAM身份中心管理的用户) |
使用临时证书签署向 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 和配置 AWS CLI 的说明操作。
步骤 2:创建集群
在创建用于生产使用的集群之前,您显然需要考虑如何配置集群以满足您的业务需求。这些问题在 准备集群 部分中解决。就本入门练习而言,您可以在其适用时接受默认配置值。
您所创建的集群将是活动的,不会在沙盒中运行。您需要为实例支付标准的 MemoryDB 使用费,直到您删除该实例。如果您一鼓作气完成此处描述的练习并在使用完毕后删除集群,则产生的全部费用将非常少(通常不到一美元)。有关 MemoryDB 使用费率的更多信息,请参阅 MemoryDB
您的集群将在基于 Amazon VPC 服务的虚拟私有云 (VPC) 中启动。
创建 MemoryDB 集群
以下示例说明如何使用 AWS Management Console、 AWS CLI 和 Memory API DB 创建集群。
使用 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中运行的容器化的应用程序或无服务器应用程序进行访问。最常见的场景是从同一个亚马逊虚拟私有云 (AmazonVPC) 中的亚马逊EC2实例访问 MemoryDB 集群,本练习就是这种情况。
必须先授权该EC2实例访问集群,然后才能从EC2实例连接到集群。
最常见的用例是部署在EC2实例上的应用程序需要连接到同一个集群VPC。在同一个EC2实例和集群之间管理访问权限的最简单方法VPC是执行以下操作:
-
为您的集群创建VPC安全组。此安全组可用于限制对集群的访问权限。例如,您可以为此安全组创建自定义规则,允许使用您在创建集群时分配给集群的端口和用于TCP访问集群的 IP 地址进行访问。
MemoryDB 集群的默认端口为
6379
。 -
为您的EC2实例(Web 和应用程序服务器)创建VPC安全组。如果需要,此安全组可以允许通过的路由表从 Internet 访问EC2实例。VPC例如,您可以在此安全组上设置规则,允许TCP通过端口 22 访问EC2实例。
-
在集群的安全组中创建自定义规则,允许来自您为EC2实例创建的安全组的连接。这将允许安全组的任何成员均可访问集群。
在安全组中创建允许来自其他VPC安全组的连接的规则
-
登录 AWS 管理控制台并在 https://console.aws.amazon.com/v
pc 上打开亚马逊VPC控制台。 -
在左侧导航窗格中,选择安全组。
-
选择或创建一个要用于集群的安全组。在入站规则下,选择编辑入站规则,然后选择添加规则。此安全组将允许访问其他安全组的成员。
-
从 “类型” 中选择 “自定义TCP规则”。
-
对于 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 的客户端。你也可以在亚马逊 Linux 和SSL亚马逊 Linux 2 TLS 上将 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 和可用工具的更多信息: