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


    一、前言

    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云原生数据库产品:

    ​​​​​​https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all&trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&sc_channel=el

    1.2 选择Amazon ElastiCache

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

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

     1.3 创建AWS账户

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

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

     输入验证码

    验证通过之后,设置密码

      

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

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

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

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

    二、获取AWS访问秘钥

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

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

    2. 在导航窗格中选择Users

     

    3.设置权限

     

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

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

     

     

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

     6.下载和配置AWS CLI

    1. 下载并运行适用于 Windows(64 位)的 AWS CLI MSI 安装程序:
    2. https://awscli.amazonaws.com/AWSCLIV2.msi

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

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

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

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

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

    三、准备Redis集群

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

    $ sudo yum install gcc
    

    下载并编译 Redis 客户端:

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

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

    确认“集群模式已启用”

    配置Redis名称

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

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

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

    选择子网组

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

    为 Redis 集群选择安全组

    配置备份

    维护设置

    四、检查和创建

    点击

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

    1. $ aws elasticache create-replication-group \
    2. --replication-group-id elc-tutorial \
    3. --replication-group-description "Tutorial example" \
    4. --num-node-groups 3 \
    5. --cache-node-type cache.t2.micro \
    6. --cache-parameter-group default.redis5.0.cluster.on \
    7. --engine redis \
    8. --engine-version 5.0.3 \
    9. --cache-subnet-group-name sn-value \
    10. --security-group-ids sg-value \
    11. --node-group-configuration \
    12. "ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
    13. "ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
    14. "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 替换为子网组的名称。如果需要创建子网组,请使用以下命令:

    1. $ aws elasticache create-cache-subnet-group \
    2. --cache-subnet-group-name elc-tutorial-subnet \
    3. --cache-subnet-group-description "Tutorial Subnet Group" \
    4. --subnet-ids sn-ids

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

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

    1. https://elasticache.us-east-1.amazonaws.com/
    2. ?Action=CreateReplicationGroup
    3. &CacheParameterGroup=default.redis5.0.cluster.on
    4. &Engine=redis
    5. &EngineVersion=5.0.3
    6. &ReplicationGroupDescription=Tutorial%20example
    7. &ReplicationGroupId=elc-tutorial
    8. &NumNodeGroups=3
    9. &PrimaryClusterId=elc-primary
    10. &ReplicasPerNodeGroup=2
    11. &Version=<version>
    12. &SignatureVersion=4
    13. &SignatureMethod=HmacSHA256
    14. &Timestamp=<timestamp>
    15. &X-Amz-Credential=<credential>

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

    复制配置终端节点

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

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

    通过 PING 测试连接

    1. endpoint:6379> PING
    2. PONG

    触发故障转移

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

    检查终端节点的角色

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

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

    找到主节点后:选择任意节点,单击“操作”并选择“故障转移主节点”。阅读消息,了解当前正在发生的事件,然后单击“继续”。其中一个副本成为新的主节点后,系统将会恢复每个主节点的副本数量。您可以运行 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标准存储容量。

    https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all&trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&sc_channel=el

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

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

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

  • 相关阅读:
    NIO原理浅析(三)
    Clickhouse备份恢复_clickhouse-client方式backup命令之备份目录的设置
    19 C++设计模式之中介者(Mediator)模式
    如何写好git commit log
    ctfshow JWT (Web345-350)
    R语言按周为采样规则计算dataframe数据中、指定数据列的每周最大值并生成新的dataframe
    线性数据结构集会
    Stable Diffusion 提示词入门指南
    GO语言 | go work 神一般的管理 多个module没烦恼
    别再死记硬背JVM参数了!实战“双十一”大促,亲手调教服务器
  • 原文地址:https://blog.csdn.net/Follow_24/article/details/125102375