使用Amazon Elasticache构建你的专属内存缓存服务集群

3 阅读1分钟

一、前言

1.1 AWS系列产品

Amazon ElastiCache 是一种 Web 服务,让用户能够在云中轻松部署和运行与 Memcached 或 Redis 协议兼容的服务器节点。Amazon ElastiCache 支持您从速度快的托管型内存系统检索信息,而不是完全依赖于速度较慢、基于磁盘的数据库,从而提高了 Web 应用程序的性能。本服务可简化并减少内存环境的管理、监控和运营任务,让您的工程资源专注于应用程序开发。借助 Amazon ElastiCache,您不仅能够改善用户操作和查询的加载与响应时间,还可降低扩展 Web 应用程序所需的费用。

亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量 永久免费。 

点击下方链接即可免费体验6种AWS云原生数据库产品:

​​​​​​aws.amazon.com/cn/free/?nc…

1.2 选择Amazon ElastiCache

如图所示有6种免费体验AWS云原生数据库产品和套餐,我们可以按需要选择点击其中一个去体验使用。

体验前先做一些准备工作,点击第二个菜单“技术文档中心”

 1.3 创建AWS账户

虽然AWS提供了一系列免费体验产品和套餐,但是想要使用这些产品,用户必须注册AWS账号

输入邮箱地址和账户名称,官方会发一封验证码邮件到你的个人邮箱

 输入验证码

验证通过之后,设置密码

  

选择地区和输入姓名等信息

注册最后一步,需要用个人的VISA/MASTERCARD等外币信用卡验证,可能会扣你1美元用于验证。

 信息输入之后,恭喜你注册成功!注册成功之后可以先查阅下以下两教程:数据库免费试用链接及上手教程:上手试用

另外AWS经常会举办一些在线学习会议:云原生数据库在线大会:云原生数据库在线大会

二、获取AWS访问秘钥

在您可以以编程方式或通过 AWS Command Line Interface (AWS CLI) 访问 ElastiCache 之前,您必须具有 AWS 访问密钥。

登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:console.aws.amazon.com/iam/。 

在导航窗格中选择Users

 

3.设置权限

 

4.选择要为其创建访问密钥的用户的名称,然后选择 Security credentials (安全凭证) 选项卡。

5.在 Access keys(访问密钥)部分,选择 Create access key(创建访问密钥)。

 

 

 创建好秘钥之后,注意要下载和保存好秘钥

 6.下载和配置AWS CLI

下载并运行适用于 Windows(64 位)的 AWS CLI MSI 安装程序:

https://awscli.amazonaws.com/AWSCLIV2.msi

或者,您可以运行 msiexec 命令来运行 MSI 安装程序。

D:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

要确认安装,请打开 Start(开始)菜单,搜索 cmd 以打开命令提示符窗口,然后在命令提示符处使用 aws --version 命令。

D:\> aws --version
aws-cli/2.4.5 Python/3.8.8 Windows/10 exe/AMD64 prompt/off

看到如下图所示即表明已下载安装成功 

三、准备Redis集群

本示例是用Redis来搭载Amazon ElastiCache构建云缓存服务,运行以下命令进行安装

$ sudo yum install gcc

下载并编译 Redis 客户端:

$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean  # Ubuntu systems only
$ make

选择“Redis”作为“集群引擎”。

确认“集群模式已启用”

配置Redis名称

将“节点类型”更改为 cache.t2.micro。对于本教程来说,此节点类型没有问题,但是对于生产集群而言,节点的大小应该取决于您的工作负载,您应该从 m5 或 r5 实例系列开始。

在“分区数量”中,选择 3。这表示数据将分区到三个不同的主节点中。

在“每个分区的副本数量”中,选择 2。这表示每个主节点将拥有两个副本。如果发生故障,将触发自动故障转移,其中一个副本将接管主节点的角色。

选择子网组

选中“具有自动故障转移功能的多可用区”对应的框

为 Redis 集群选择安全组

配置备份

维护设置

四、检查和创建

点击

也使用 Amazon CL,下面的命令将会一次性创建整个 Redis 集群:

$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"

对于 --security-group-ids 的参数,您需要将 sg-value 替换为您想要使用的安全组的 ID。

而对于 --cache-subnet-group-name 的参数,请将 sn-value 替换为子网组的名称。如果需要创建子网组,请使用以下命令:

$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids

sn-ids 的值必须是子网 ID 列表。

如果您倾向于使用 Amazon API,下面的请求可创建 Redis 集群:

https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup 
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=
&X-Amz-Credential=

需要提供 Version、Timestamp 和 X-Amz-Credential 的值。

复制配置终端节点

使用 redis-cli 实用工具连接 Redis 节点

$ ./src/redis-cli -c -h endpoint

通过 PING 测试连接

endpoint:6379> PING
	PONG

触发故障转移

集群模式的一种功能是如果一个节点发生故障,集群可以自我修复。为了测试这一功能,您可以手动触发故障转移,这样将发生以下事件:系统将选择只读副本来接管主节点的角色,在系统执行故障转移后,您就能够连接到新的主节点。同时,系统会自动添加新的只读副本,以便集群仍拥有一个主节点和两个副本。

检查终端节点的角色

endpoint:6379> ROLE
	1) "master"
 	...

 想要连接到主节点。如果没有连接到主节点,尝试其他终端节点。您有三次尝试机会

找到主节点后:选择任意节点,单击“操作”并选择“故障转移主节点”。阅读消息,了解当前正在发生的事件,然后单击“继续”。其中一个副本成为新的主节点后,系统将会恢复每个主节点的副本数量。您可以运行 CLUSTER NODES 命令验证正在发生的事件。

已创建启用了集群模式的 Redis 集群。节点分散在各个可用区中,并配置有自动故障转移功能。您还学习了关于 Redis 集群部署的最佳实践。

五、粉丝福利

亚马逊云科技专为开发者们打造了多种学习平台:

①入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源。AWS入门_AWS入门使用教程_AWS云计算资源-AWS云服务

② 架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等。AWS架构中心部署说明_AWS云架构白皮书-AWS云服务

③构建者库:了解亚马逊云科技如何构建和运营软件。Amazon Builders' Library

④用于在亚马逊云科技平台上开发和管理应用程序的工具包:aws工具下载_aws开发工具_资源下载-AWS云服务

【专属福利】

福利一:100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量。

aws.amazon.com/cn/free/?nc…

福利二:最新优惠大礼包,200数据与分析抵扣券,200数据与分析抵扣券,200机器学习抵扣券,200$微服务与应用开发抵扣券。最新优惠活动_云服务器促销 - 亚马逊云科技

福利三:解决方案CloudFormation一键部署模版库

云服务解决方案部署快速入门_云服务部署-AWS云服务