亚马逊AWS官方博客

适用于 Redis 和 Memcached 的 Amazon ElastiCache Serverless 现已推出



今天我们宣布推出 Amazon ElastiCache Serverless这是一种新的无服务器选项,允许客户在一分钟内创建缓存,并根据应用程序流量模式即时扩展容量。ElastiCache Serverless 与两种常用的开源缓存解决方案 Redis 和 Memcached 兼容。

即使是最苛刻的工作负载,您也可以使用 ElastiCache Serverless 来运行缓存,无需花时间进行容量规划,也无需缓存专业知识。ElastiCache Serverless 持续监控应用程序的内存、CPU 和网络资源利用率,并即时进行扩展以适应其所服务工作负载访问模式的变化。您可以创建一个具备极高可用性的缓存,其中的数据可跨多个可用区自动复制,并为所有工作负载提供高达 99.99% 的可用性服务级别协议 (SLA),从而节省您的时间和金钱。

客户希望彻底简化缓存的部署和操作。ElastiCache Serverless 提供简单的端点体验,可提取出底层集群拓扑和缓存基础架构。您无需处理重连和重新发现节点,就能降低应用程序复杂性并提高运营效率。

使用 ElastiCache Serverless,不存在预付费用,您只需为使用的资源付费。您需要为应用程序消耗的缓存数据存储空间和 ElastiCache 处理单元 (ECPU) 资源量付费。

开始使用 Amazon ElastiCache Serverless
要开始使用,请前往 ElastiCache 控制台,然后在左侧导航窗格中选择 Redis 缓存Memcached 缓存。ElastiCache Serverless 支持 Redis 7.1 或更高和 Memcached 1.6 或更高的引擎版本。

例如,对于 Redis 缓存,请选择创建 Redis 缓存。

您将看到两个部署选项:无服务器设计自己的缓存以创建基于节点的缓存群集。选择无服务器选项、新建缓存方法,然后提供名称。

使用默认设置在默认 VPC、可用区、服务拥有的加密密钥和安全组中创建缓存。我们将自动设置推荐的最佳实践。您无需输入任何其他设置。

如果要自定义默认设置,可以设置自己的安全组或启用自动备份。您还可以为计算和内存使用量设置最大限制,以确保缓存不会超过特定大小。当缓存达到内存限制时,具有生存时间 (TTL) 的密钥将根据最近最少使用 (LRU) 逻辑被逐出。当达到计算限制时,ElastiCache 将限制请求,这将导致请求延迟增加。

创建新的无服务器缓存时,您可以查看连接和数据保护设置的详细信息,包括端点和网络环境。

现在,您可以在应用程序中配置 ElastiCache Serverless 端点,并使用任何在集群模式下支持 Redis 的 Redis 客户端(例如 redis-cli)进行连接。

$ redis-cli -h channy-redis-serverless.elasticache.amazonaws.com --tls -c -p 6379
set x Hello
OK
get x
"Hello"

您可以使用 AWS 命令行界面(AWS CLI)或 AWS SDK 管理缓存。有关更多信息,请参阅 AWS 文档中的开始使用 Amazon ElastiCache for Redis

如果您已有 Redis 集群,则可以在创建 ElastiCache Serverless 缓存时以标准 Redis rdb 文件格式指定 ElastiCache 备份或备份文件的 Amazon S3 位置,将数据迁移到 ElastiCache Serverless。

对于 Memcached 缓存,您可以像 Redis 一样创建和使用新的无服务器缓存。

如果将 ElastiCache Serverless 用于 Memcached,则可以显著改善高可用性和即时扩展性,因为 Memcached 引擎本身并不具备这些功能。借助 Memcached,您不再需要编写自定义业务逻辑、管理多个缓存或使用第三方代理层来复制数据以获得高可用性。现在,您可以获得高达 99.99% 可用性的 SLA 和跨多个可用区的数据复制。

要连接到 Memcached 端点,请运行 openssl 客户端和 Memcached 命令,如以下示例输出所示:

$ /usr/bin/openssl s_client -connect channy-memcached-serverless.cache.amazonaws.com:11211 -crlf 
set a 0 0 5
hello
STORED
get a
VALUE a 0 5
hello
END

有关更多信息,请参阅 AWS 文档中的开始使用 Amazon ElastiCache Serverless for Memcache

扩展和性能
ElastiCache Serverless 允许缓存纵向扩展并同时并行启动横向扩展以及时满足容量需求,从而在不造成应用程序停机或性能下降的情况下进行扩展。

为了展示 ElastiCache Serverless 的性能,我们进行了一项简单的扩展测试。我们从一个典型的 Redis 工作负载开始,其读写比率为 80/20,密钥大小为 512 字节。我们的 Redis 客户端配置为使用 READONLY Redis 命令从副本读取 (RFR),以获得最佳读取性能。我们的目标是展示工作负载在 ElastiCache Serverless 上扩展的速度有多快,而不会对延迟产生任何影响。

如上图所示,我们能够每 10 分钟将每秒请求数 (RPS) 翻一番,直到测试的目标请求速率达到 1M RPS。在这次测试中,我们观察到 p50 GET 延迟保持在 751 微秒左右,并且始终低于 860 微秒。同样,我们观察到 p50 SET 延迟保持在 1,050 微秒左右,即使在吞吐量快速增加的情况下也没有超过 1,200 微秒。

注意事项

  • 升级引擎版本 — ElastiCache Serverless 透明地在缓存中应用新功能、错误修复和安全更新,包括新的次要版本和补丁引擎版本。当新的主要版本推出时,ElastiCache Serverless 将在控制台中向您发送通知,并在 Amazon EventBridge 中向您发送事件。ElastiCache Serverless 主要版本升级旨在不中断您的应用程序。
  • 性能和监控 – ElastiCache Serverless 向 Amazon CloudWatch 发布一套指标,包括内存使用情况 (BytesUsedForCache)、CPU 使用情况(ElastiCacheProcessingUnits) 和缓存指标,其中包括CacheMissRateCacheHitRateCacheHitsCacheMissesThrottledRequests。ElastiCache Serverless 还会针对重大事件发布 Amazon EventBridge 事件,包括缓存创建、删除和限制更新。有关可用指标和事件的完整列表,请参阅文档。
  • 安全性和合规性 — 可从 VPC 内访问 ElastiCache Serverless 缓存。您可以使用 AWS Identity and Access Management (IAM) 访问数据面板。默认情况下,只有创建 ElastiCache Serverless 缓存的 AWS 账户可以访问该面板。ElastiCache Serverless 通过传输层安全性协议(TLS)加密所有静态数据和传输中的数据,对 ElastiCache Serverless 的每个连接进行加密。您可以选择限制对 VPC 内的缓存、子网、IAM 访问和 AWS Key Management Service (AWS KMS) 加密密钥的访问。ElastiCache Serverless 符合 PCI-DSS、SOC 和 ISO,并且符合 HIPAA 资格。

现已推出
Amazon ElastiCache Serverless 现已在包括中国在内的所有商用 AWS 区域推出。使用 ElastiCache Serverless,不存在预付费用,您只需为使用的资源付费。您需要为缓存数据(以 GB 小时为单位)、消耗的 ECPU 以及快照存储(以 GB 月为单位)付费。

要了解更多信息,请参阅 ElastiCache Serverless 页面定价页面。欢迎试用,并将反馈发送给 AWS re:Post for Amazon ElastiCache 或通过您常用的 AWS Support 联系人发送。

Channy