当前位置: 首页 > news >正文

亚马逊云科技re_Invent 2023产品体验:亚马逊云科技产品应用实践 国赛选手带你看Elasticache Serverless

本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

抛砖引玉

讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是TroubleShooting竞赛,对应的分别为AWS GameDay和AWS Jam,想必也有朋友玩过此类竞赛,那么最经典的一个Gameday,我认为是Gameday 2015那个比赛,感兴趣的朋友可以在这里看看哈
AWS-Gameday-2015-Runbook:https://github.com/fedorovdima/aws-gameday/blob/master/runbook.md

上图为一个简易架构示例图
那么在这场比赛中,是有好几个版本的,如果说延伸到后面的版本,那么Elasticache是一个拿分的好物(在不考虑Cloudfront的情况下),因为从客户端发送来的数据,会被缓存到Elasticache中,在这里当然是用的Elasticache for memcached,当客户端再次发送同样的数据请求过来的时候,首先会往memcache的查询数据,如果有就即刻返回。
那么在这个实践的过程中,我们抛开架构上的设计,我们使用Elasticache for Memcached首先是要去创建。
OK,那么问题来了

  1. 在生产实践中,我们需要考虑到成本的问题,创建多大呢?我们如何去预估这个缓存数据库的一个规模大小,这是第一个问题(虽然在竞赛中,都是扣一样的)
  2. 创建缓存数据库需要花时间,如果设置错误,删除也需要花费时间,在每个阶段会需要时间等待,大约4-5分钟

总结起来就是:弹性伸缩,成本管控

视频简介

亚马逊云科技re:Invent 2023产品体验:亚马逊云科技产品应用实践 国赛选手带你看Elasticache Serverless

Serverless助力数据拓展无极限


在2023 亚马逊云科技 re:Invent大会中,Peter宣布推出 Amazon ElastiCache Serverless,这是一种新的无服务器选项,允许客户在一分钟内创建缓存并根据应用程序流量模式立即扩展容量。Amazon ElastiCache Serverless 与两种流行的开源缓存解决方案 Redis 和 Memcached 兼容。

Amazon ElastiCache Serverless 具有以下优势:

  • 无需管理基础设施:ElastiCache Serverless 自动管理容量和扩展,因此您只需为您使用的内存和计算付费。
  • 快速启动:您只需几分钟即可创建和启动 ElastiCache Serverless 缓存。
  • 按需扩展:ElastiCache Serverless 会根据您的应用程序需求自动扩展或缩减缓存的容量。
  • 高可用性:ElastiCache Serverless 自动将数据复制到多个 Availability Zone,以确保高可用性。

通过这样简单介绍,我相信大家已经明了我的意思了,Amazon Elasticache Serverless可以满足咱们在之前所遇到的问题,一个是硬件弹性扩缩容,一个是创建/删除时间长的问题。那么我们实际来看看 Amazon Elasticache Serverless的实际表现如何。

实践环节

在本次实践测试中,使用Elasticache for Memcached的Serverless版本

控制台创建

image.png

创建时间

默认就会已经选择了Serverless版本,大家可以通过下面2个截图看到咱们一整个创建时间是在1分钟左右的,和官方宣称的1分钟内其实是有一点差异的。那么针对于这种现象呢,个人认为也许是底层资源的调用的影响,才导致这样一个差异化的出现,也许在后续的一个版本升级后,可以实现任何时间都可以在1分钟内创建出缓存数据库。

image.png

连接及使用

在我们测试某个服务端口是否开放的时候,我们用telnet来进行连接,那么在常规使用中,我们在网上看到连接redis和memcached的方法也是使用telnet,例如

telnet Cache_host:port

那么,我们可用用这个命令连接上咱们一般创建的redis/memcache,请注意,为什么我在这里说的是“一般
在默认和自定义的情况下,亚马逊云科技的Elasticache的Redis/memcached都会有一个选项,叫做“传输中加密”,该选项是“始终启用”,且无法关闭
image.png

加密连接

openssl s_client -connect Cache_host:Port

image.png
image.png

弹性测试

弹性拓展

当然,Elasticache Serverless,重就重在Serverless,在创建之初,咱们就已经提到过,我们可以自行定义可用内存和每秒ElastiCache 处理单位,当然默认情况下是不设限的。
image.png

并发测试

测试视频

并发测试-亚马逊云科技re:Invent 2023产品体验:亚马逊云科技产品应用实践 国赛选手带你看Elasticache Serverless

测试配置
Elasticache类别Redis测试客户端机型
Serverless7.1Ubuntu-C7i.metal.48xl
t4g.micro7.1Ubuntu-C7i.metal.48xl
测试脚本
  1. 首先是要安装redis
  2. 然后在脚本中定义redis终端节点
  3. 脚本每秒钟会并发10000写入
pip3 install redis
import redis
import concurrent.futures
import random
import string
import time# 定义你的redis终端节点
redis_host = ''
redis_port = 6379
redis_ssl = True
num_writes_per_second = 10000
key_prefix = "data"def generate_random_string(length=10):"""Generate a random string of the specified length."""letters = string.ascii_lowercasereturn ''.join(random.choice(letters) for _ in range(length))def write_to_redis(client, key_prefix, num_writes):"""Write data to Redis with random keys and values."""for _ in range(num_writes):key = f"{key_prefix}_{generate_random_string()}"value = generate_random_string()client.set(key, value)# Create a Redis client
client = redis.Redis(host=redis_host, port=redis_port, ssl=redis_ssl)# Function to write to Redis continuously
def continuous_writes():with concurrent.futures.ThreadPoolExecutor() as executor:while True:# Submit write tasks to the thread poolfutures = [executor.submit(write_to_redis, client, key_prefix, num_writes_per_second) for _ in range(num_writes_per_second)]# Wait for all tasks to completeconcurrent.futures.wait(futures)# Introduce a delay to control the rate of writestime.sleep(1)# Start the continuous writes
continuous_writes()
客户端情况

Serverless版本写入基本保持在124%的CPU利用率
image.png
image.png

传统预配置机型t4g.micro
客户端CPU利用率image.png
image.png
image.png

测试小节

从实际并发测试来看,Serverless版本的Elasticache在超高并发下的写入是完全可以接住,并且内存量随着写入数据的增长是没有感知的。反观传统创建出的T4g.micro数据库实例,也许在一开始是能够写入数据,但是再往后写入数据,T4g.micro机型的redis似乎就宕机了一样,从监控上的数据来看没有任何写入的迹象。

总结

Amazon ElastiCache Serverless 是一个完全托管的、无服务器的 Memcached 和 Redis 缓存服务。

  • 无需管理基础设施:ElastiCache Serverless 会自动为您创建和管理 Memcached 或 Redis 缓存实例。
  • 按需付费:您只需为使用的资源付费,无需预付费或担心容量规划。
  • 弹性伸缩:ElastiCache Serverless 会根据您的需求自动缩放您的缓存实例,以确保满足您的性能要求。

通过Amazon Elasticache Serverless,我们不再需要在缓存数据库的规划上做过多考虑,同时也不需要花费过多的时间进行等待。总的来看ElastiCache Serverless 是 Memcached 和 Redis 缓存的一种可靠、高效、经济的解决方案

相关文章:

  • 超级计算机行业分析:中国市场概念及发展现状研究
  • Qt优秀开源项目之十九:跨平台记事本Notes
  • Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
  • 在Go中导入软件包
  • 软件设计师——计算机网络(二)
  • 大数据技术7:基于StarRocks统一OALP实时数仓
  • JavaScript强制类型转换
  • TSINGSEE青犀中央厨房视频智能监控监管解决方案
  • SSD基础架构与NAND IO并发问题探讨
  • GeoTools学习笔记
  • 雅典娜Athena-signa音频算法源码与麦克风阵列角度定义互换问题
  • 【uniapp小程序】如何根据开发和发行,自动替换不同环境的baseUrl
  • strings
  • RocketMQ源码 Broker-SubscriptionGroupManager 订阅组管理组件源码分析
  • fastapi-amis-admin快速创建一个后台管理系统增加音乐管理功能(3)
  • 【Leetcode】104. 二叉树的最大深度
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • android图片蒙层
  • Apache的80端口被占用以及访问时报错403
  • axios 和 cookie 的那些事
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JS字符串转数字方法总结
  • Koa2 之文件上传下载
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • spark本地环境的搭建到运行第一个spark程序
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • supervisor 永不挂掉的进程 安装以及使用
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vue ES6 Jade Scss Webpack Gulp
  • 不上全站https的网站你们就等着被恶心死吧
  • 简析gRPC client 连接管理
  • 普通函数和构造函数的区别
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 微信小程序:实现悬浮返回和分享按钮
  • 温故知新之javascript面向对象
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • Nginx实现动静分离
  • NLPIR智能语义技术让大数据挖掘更简单
  • 国内开源镜像站点
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #{}和${}的区别是什么 -- java面试
  • #NOIP 2014#Day.2 T3 解方程
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (C语言)球球大作战
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (转)iOS字体
  • .chm格式文件如何阅读
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 反射 Reflect
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET序列化 serializable,反序列化