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

本文主要是介绍亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

抛砖引玉

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

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

image.png

 上图为一个简易架构示例图

那么在这场比赛中,是有好几个版本的,如果说延伸到后面的版本,那么 Elasticache 是一个拿分的好物(在不考虑 Cloudfront 的情况下),因为从客户端发送来的数据,会被缓存到 Elasticache 中,在这里当然是用的 Elasticache for memcached,当客户端再次发送同样的数据请求过来的时候,首先会往 memcache 的查询数据,如果有就即刻返回。

那么在这个实践的过程中,我们抛开架构上的设计,我们使用 Elasticache for Memcached 首先是要去创建。

OK,那么问题来了

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

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

视频简介

点击下方链接,观看视频简介

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

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

Serverless 助力数据拓展无极限

image.png

在 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_哔哩哔哩_bilibili

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

测试配置

image.png

测试脚本

  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 缓存的一种可靠、高效、经济的解决方案

文章来源:
https://dev.amazoncloud.cn/column/article/658a31d979476548e3e1f935?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

这篇关于亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/542144

相关文章

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库