Skip to content

Latest commit

 

History

History
253 lines (128 loc) · 11.1 KB

aws-memorydb.md

File metadata and controls

253 lines (128 loc) · 11.1 KB

前言

说到云厂商,大家可能第一反应是阿里云、华为云、腾讯云等,国内阿里云是市场份额占用最多的,但全球范围的云计算市场份额,亚马逊才是老大哥:

img

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

它有三种不同类型的免费优惠可供选择:

没有任何套路,纯纯是白嫖,AWS 免费套餐,白嫖入口

image-20220604114758482

本文将以 Amazon MemoryDB 为例,介绍如何从零开始并构建你专属的 Redis 内存数据库。

MemoryDB 优势

搭建传统的自建 Redis,需要考虑性能、数据持久性、扩展性、防火墙等一系列搭建环境,步骤很繁琐,费时费力。通过云数据库搭建 Redis,从效率、性能、数据安全、扩展性等方面来说,解决了传统方式的痛点,节省大量时间与运维成本。如:

通过 Redis 快速构建

通过连续五年被 Stack Overflow 评为“最受欢迎”的数据库 Redis 来快速构建应用程序。使用灵活的 Redis 数据结构和 API(例如,流式传输、列表和集合)。

实现超快性能

以微秒级的读取和个位数毫秒级的写入延迟和高吞吐量来访问数据。MemoryDB 每天可以处理超过 13 万亿个请求,并支持每秒超过 1.6 亿个请求的峰值。

以持久性和高可用性存储数据

MemoryDB 将数据存储在内存中,并使用多可用区事务日志实现快速数据库恢复和重启,而不会丢失数据。由于 MemoryDB 可以持久地存储数据,因此可以将其用作主数据库。

轻松扩展

MemoryDB 可将每个集群的存储空间从几 GB 无缝扩展到 100 TB 以上,以满足您的应用程序需求。

注册账号

没有 AWS 帐号的小伙伴需要先进行帐号注册:注册及上手试用地址 (在账单登记页可以使用国内的信用卡

image-20220604153731187

登录控制台

控制台登录入口

输入邮箱地址与密码即可

image-20220604154228343

进来以后 Service 内容超级多,为了方便,我们可以像下图一样在这里搜 MemoryDB,选择搜索结果的第一个选项

image-20220604154445529

可以看到整体的界面,点击开始使用即可:

image-20220604160924065

MemoryDB 上手教程

Amazon MemoryDB for Redis 是一项与 Redis 兼容、极具持久性的内存数据库服务,可实现超快性能。为具有微服务架构的现代化应用程序提供亚毫秒级延迟、高吞吐量和多可用区持久性。

官方文档:https://docs.aws.amazon.com/zh_cn/memorydb/latest/devguide/getting-started.html

创建集群

在左侧导航窗格中选择集群,然后点击创建集群

image-20220604161832964

  • 集群信息

    输入集群的名称、描述信息

    image-20220604163456916

  • 子网组

    创建一个新的子网组,或从可用列表中选择要应用于此集群的现有子网组。子网类似于局域网

    image-20220605181514795

  • 集群设置

    使用 t4g.small 实例,2个月内免费(每月免费提供实例和 20GB 数据)

    • 适用于Redis 版本兼容性中,接受默认值 6.2
    • 适用于端口,接受默认 Redis 端口 6379
    • 适用于参数组中,接受 default.memorydb-redis6 参数组

    image-20220605181156173

  • 安全性

    安全组 - 充当防火墙来控制对集群的网络访问,很重要!!!

    静态加密 – 对磁盘上存储的数据启用加密

    设置后,最后点击创建即可

    image-20220605182441915

当您的集群状态为 available 时,便可向其授予 EC2 访问权限,连接到集群并开始使用它。

image-20220605184105508

授予访问权限

  • 创建 EC2 实例

    此部分假设你已经熟悉 Amazon EC2 实例的启动和连接。有关更多信息,请参阅 Amazon EC2 入门指南

    密钥对(登录) 信息,千万不要选择【在没有密钥对的情况下继续】的选项,否则会导致 EC2 实例创建后无法直接连接访问

  • 授权访问权限

    通过安全组配置授权访问。

    所有 MemoryDB 集群旨在通过 Amazon EC2 实例进行访问。最常见的情况是从同一 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon EC2 实例访问 MemoryDB 集群。必须先授权 EC2 实例访问集群,然后您才能从 EC2 实例连接到集群。

    这里为了演示,直接配置完整入站访问,0.0.0.0/0 即所有设备都可以访问

    image-20220605203834451

连接集群

要从 MemoryDB 节点中访问数据,可以使用利用安全套接字层 (SSL) 的客户端,也可以在 Amazon Linux 2 上使用具有 TLS/SSL 的 redis-cli。

若要使用 redis-cli 连接到 Amazon Linux 2 上的 MemoryDB 集群,步骤如下:

  • 登录 EC2 命令行控制台

    选择 EC2 Instance Connect 连接类型

    image-20220605204242117

  • 下载并编译 redis-cli 实用工具

    在 EC2 实例的命令提示符处,键入以下命令

    #Amazon Linux 2
    $ sudo yum -y install openssl-devel gcc
    $ wget http://download.redis.io/redis-stable.tar.gz
    $ tar xvzf redis-stable.tar.gz
    $ cd redis-stable
    $ make distclean
    $ make redis-cli BUILD_TLS=yes
    $ sudo install -m 755 src/redis-cli /usr/local/bin/
  • 在 EC2 实例的命令提示符处,键入以下命令,并使用你的集群和端口的终端节点替换此示例中显示的相应内容

# 示例
# src/redis-cli -c -h Cluster Endpoint --tls -p 6379
$ src/redis-cli -c -h clustercfg.redis-free.uyejvs.memorydb.ap-southeast-1.amazonaws.com --tls -p 6379

其中 Cluster Endpoint 位于 MemoryDB 集群信息下 集群端点

image-20220605211153340

实操结果如下: image-20220605211612948

受限 Redis 命令

为了提供托管服务体验,MemoryDB 限制了对某些需要高级特权的命令的访问。以下命令不可用:

  • acl deluser
  • acl load
  • acl save
  • acl setuser
  • bgrewriteaof
  • bgsave
  • cluster addslot
  • cluster delslot
  • cluster setslot
  • config
  • debug
  • migrate
  • module
  • psync
  • replicaof
  • save
  • shutdown
  • slaveof
  • sync

总结

MemoryDB 与 Redis 兼容,是一个很受欢迎的开源数据存储,使您能够使用他们目前已经使用的同样灵活友好的 Redis 数据结构、API 和命令快速构建应用程序。使用 MemoryDB,您的所有数据都存储在内存中,这使您能够实现微秒读取和单位数毫秒的写入延迟和高吞吐量。MemoryDB 还使用多可用区事务日志跨多个可用区 (AZ) 持久存储数据,以实现快速故障切换、数据库恢复和节点重启。

Memory DB 既具有内存中的性能和多可用区持久性,可用作微服务应用程序的高性能主数据库,从而无需分别管理缓存和持久数据库。

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

  • 入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源:点我访问

  • 架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等:点我访问

  • 构建者库:了解亚马逊云科技如何构建和运营软件:点我访问

  • 用于在亚马逊云科技平台上开发和管理应用程序的工具包:点我访问