将您自行管理的开源软件 (OSS) Redis 工作负载转移到亚马逊 ElastiCache,从而优化成本

在这篇博客文章中,我们解释了为什么你应该考虑将自己的开源软件 (OSS) Redis 工作负载迁移到适用于 Redis 的 亚马逊弹性 缓存 托管版。 OSS Redis 是一种功能强大的内存数据存储,旨在满足现代高性能应用程序的需求。使用 OSS Redis,您可以处理各种用例,包括缓存、实时分析、排行榜、功能存储、消息和会话管理。虽然 OSS Redis 是许多应用程序的绝佳选择,但对其进行管理可能会带来大量的成本和运营开销。我们将仔细研究与自我管理的 OSS Redis 相关的费用和管理挑战,并探讨 Amazon ElastiCache 如何帮助减轻负担。我们将讨论 ElastiCache 的功能,这些功能使您能够在不影响功能的情况下优化成本,从而为您提供洞察力,以便根据您的应用程序需求做出明智的决策。

开发人员经常选择自行管理的 OSS Redis 部署,因为在自己的基础架构上托管 OSS Redis 可以提供灵活性和控制力。随着应用程序使用率和采用率的增长,扩展和分片对于确保弹性和避免性能下降变得至关重要。最初,可以在单个中型服务器上部署一个简单的缓存。但是,随着数据集大小增长到数十千兆字节以及吞吐量要求的增加,开发人员需要设置一个 OSS Redis 集群,以通过只读副本和分片来处理吞吐量。随着缓存成为关键架构组件,确保 Redis 哨兵或 Redis 集群的可用性变得至关重要。

在亚马逊弹性计算云( 亚马逊 EC2 )上自行管理 OSS Redis 或使用 EKS 部署 Kubernetes 可以帮助部分降低基础设施成本。这使您可以预置所需的内容并根据流量模式扩展实例。尽管如此,管理 OSS Redis 集群的复杂性以及监控、警报、修补和确保高可用性等额外开销仍然给组织带来挑战。管理 OSS Redis 集群时,需要密切监控延迟、CPU 使用率和内存使用率等关键指标,并需要设置特定的阈值来生成警报,以避免潜在的停机情况。为了确保高可用性并缩短总体停机时间,需要使用带有自动或手动恢复配置的复制和故障转移机制。随着 OSS Redis 的采用扩展到排行榜等其他用例,部署变得越来越复杂。任何计划外中断都可能对组织的用户体验和收入产生重大影响。为了确保为高峰负荷做好准备,组织通常会选择提供额外的资源,从而导致更高的维护成本和更高的总拥有成本 (TCO)。作为参考,商业支出管理 (BSM) 领域的领导者Coupa公司推出了适用于所有现有用例的Am azon ElastiC ache for Redis,同时将数据集大小扩大了5倍,从而显著减少了运营时间和精力。有关他们迁移的更多详细信息,请查看 这篇博客文章

完全托管的云端缓存 — 亚马逊 ElastiCache

Amazon ElastiCache 是一项完全托管的服务,可以轻松地在云 中 部署、操作和扩展 缓存 该服务允许您从快速、托管的内存数据存储中检索信息,而不是完全依赖速度较慢的基于磁盘的数据库,从而提高了 Web 应用程序的性能。托管服务可以减轻维护工作负担,大规模提供性能和功能。它使企业能够专注于核心能力以推动创新,同时确保安全性、灵活性和效率。根据最近的 IDC 白皮书 ,迁移到托管数据库可以降低39%的运营成本,同时将新数据库的部署加快到86%,并将计划外停机时间减少97%。

适用于 Redis 的 Amazon ElastiCache 是一项与 Redis 兼容的内存服务,具有易用性、Redis 的强大功能以及适用于最苛刻应用程序的可用性、可靠性和性能。ElastiCache 集群可以支持多达 500 个分片,可扩展至高达 310 TiB 的内存数据,每秒可处理数亿个请求。

降低总拥有成本

通过将工作负载迁移到 ElastiCache,企业可以利用在线扩展、自动备份、具有自动故障转移的弹性、内置监控和警报,而不会产生任何底层资源管理开销。这可以显著减少管理 OSS Redis 工作负载所需的时间和资源,同时提高可用性。

工作负载示例 — 让我们来看一下工作负载,并将其实施成本与自行管理的 OSS Redis 内部部署与 ElastiCache 的部署成本进行比较。任何公司都运营零售电子商务应用程序,其产品目录在推动销售方面起着至关重要的作用。为了提高性能和用户体验,他们需要缓存产品目录和用户数据,以便更快地做出响应。

基础架构开销 :随着公司扩大产品范围,缓存大小不断增加,从而将其基础设施扩展到具有只读副本的集群 Redis 实施。这使他们能够满足从每秒几百个请求到节假日期间数万个请求不等的吞吐量需求,同时确保可用性。这促使人们需要预先配置环境以处理高峰流量,从而导致非高峰时段的容量未使用,总成本不必要地增加。

基础设施安全、合规和审计开销 :随着用户体验的改善和增长促使购物车管理和结账等其他服务采用 OSS Redis,Anycompany 都需要实施强有力的安全措施来保护敏感的用户信息和信用数据。这些审计和认证对基础架构的合规性要求不断提高,导致与合规性和审计相关的成本增加。

监控和警报开销 :当 OSS Redis 集群出现间歇性或长期的节点故障时,Anycompany 都必须重建实例并补充缓存,从而导致收入损失。这增加了监控和警报软件以及操作设置和处理故障的支持资源的成本。

在自我管理工作负载时,企业需要考虑基础设施和核心软件、基础架构合规性、安全性和运营成本。使用托管 ElastiCache,成本主要包括缓存实例和云支持服务的成本。Elasticache 可以帮助任何公司根据使用模式同步进行扩展或缩小。因此,他们决定将工作负载转移到ElastiCache,这消除了额外的基础架构、合规性和监控成本。这使他们能够简化操作。

有助于成本优化的关键 ElastiCache 功能

ElastiCache 提供多项功能,使公司能够高效地扩展其应用程序、降低成本和推动增长。

高可用性 :ElastiCache 具有高可用性(运行多可用区时 SLA 为 99.99%)且具有弹性,具有内置的故障转移和数据复制功能。这降低了停机风险及其相关成本,例如收入损失和声誉受损。使用 支持 多可用区的 集群,ElastiCache 将在不同的可用区智能放置每个分片的主节点和至少一个副本节点。如果主节点受损,ElastiCache 会在几秒钟内自动将复制延迟最小的只读副本提升为新的主节点。然后,该服务会自我修复受损的主节点或将其替换为新的副本节点,并将数据同步到新的主节点。有关更多信息,请参阅 多可用区响应 的 故障场景

可扩展性 :使用适用于 Redis 的 Amazon ElastiCache,您可以从小规模开始,然后随着应用程序的增长轻松扩展集群。ElastiCache 提供各种各样的实例类型和配置,包括对 Graviton 实例的支持。它旨在支持在线集群大小调整以在不停机的情况下横向扩展、向内扩展和在线重新平衡您的 Redis 集群。ElastiCache 的自动扩展允许根据流量模式部署资源和节点,从而确保在相同的工作负载下减少资源消耗,并允许根据需求进行配置。这避免了为应对未来需求高峰而预先配置资源所产生的成本。

监控 :ElastiCache 可通过 Amazon CloudWatch 增强对与您的资源相关的关键性能指标的可见性,而无需支付额外费用。CloudWatch 警报允许您设置指标阈值,触发通知以在需要采取预防措施时通知您。监控一段时间内的趋势可以帮助您检测工作负载的增长。数据点的可用期长达 455 天(15 个月),观察 CloudWatch 指标的扩展时间范围所得出的结论可以帮助您预测资源利用率。使用范围广泛的指标和 CloudWatch 警报,您可以严格管理 ElastiCache 集群,提高利用率,避免浪费。

极致性能(性价比) :E lastiCache 的 增强型 I/O 多路复用 功能非常适合具有多个客户端连接的吞吐量限制型工作负载,其优势随工作负载并发水平而扩大。2019 年 3 月,我们推出了 增强型 I/O ,可将吞吐量提高多达 83%,并将每个节点的延迟减少多达 47%。2021 年 11 月,我们通过将 加密 转移 到非 Redis 引擎线程,提高了启用 TLS 的集群 的吞吐量。增强的 I/O 多路传输可在不更改应用程序的情况下进一步提高吞吐量并减少延迟。例如,当使用 r6g.xlarge 节点并运行 5,200 个并发客户端时,吞吐量最多可以提高 72%(每秒读取和写入操作数)。

数据分层 :当工作负载占用大量内存时, 数据分层 可以帮助降低将整个数据集保存在内存中的成本。ElastiCache 可自动、透明地在 DRAM 和本地连接的 NVMe 固态硬盘 (SSD) 之间对数据进行分层。与 R6g 节点(仅限内存)相比,以最大利用率运行时,它可以帮助节省60%以上的存储成本,同时对应用程序的性能影响最小。

安全性与合规性: ElastiCache 是一项符合 PCI 标准、符合 HIPAA 要求的 FedRAMP 授权 服务 ,提供传输中和静态加密,以帮助保护敏感数据的安全。这可以显著降低获得和维护基础设施认证的成本开销,并确保满足关键的合规性和数据安全要求。您可以利用增强的安全性,将集群隔离在亚马逊虚拟私有云 (Amazon VPC) 中。

预留实例 (RI): 最后,ElastiCache 通过 预留实例 提供了一种经济实惠的定价模式。这基于 Redis 节点的使用情况,允许企业仅为所需的资源付费。当工作负载稳定且可预测时,预留实例 (RI) 可能很有用,使用承诺可以在 1-3 年之间。

总而言之,以下功能重点介绍了 Elasticache 为帮助客户优化成本而提供的繁重负担

Feature Self-managed OSS Redis Amazon ElastiCache
Autoscaling No Yes
Data-tiering No Yes
Availability Redis Sentinel or Cluster with manual intervention. 99.99% with fast failover and automatic recovery.
Compliance Additional price and effort SOC1, SOC2, SOC3, ISO, MTCS, C5, PCI-DSS, HIPAA
Enhanced security No Yes
Online horizontal scaling No Yes
Monitoring External tools Native CloudWatch integration and aggregated metrics.
Enhanced I/O Multiplexing No Yes

结论

适用于 Redis 的 Amazon ElastiCache 与开源版本完全兼容,可在优化成本的同时提供安全性、合规性、高可用性和可靠性。正如这篇文章所解释的,管理 OSS Redis 可能很乏味。ElastiCache 消除了与所有管理任务(包括监控、修补、备份和自动故障转移)相关的无差别繁重工作。您可以自动将集群扩展和调整为兆字节的数据。ElastiCache 托管的好处使您能够优化整体总体拥有成本,将精力集中在业务和数据上,而不是运营上。要了解有关 Elasticache 的更多信息,请访问 aw s.amazon.com/elasticache/。


作者简介

Sashi V aranas i是专业解决方案架构、内存和区块链数据服务的全球领导者。她拥有 25 年以上的 IT 行业经验,自 2019 年以来一直在 亚马逊云科技 工作。在加入 亚马逊云科技 之前,她曾在 Sabre Corp、Kemper Insurance 和摩托罗拉等多家公司担任产品工程和企业架构领导职务。

Lakshmi Peri 是一位高级解决方案架构师,专门研究 NoSQL 数据库。她在使用各种 NoSQL 数据库以及使用分布式技术架构高度可扩展的应用程序方面拥有十多年的经验。在业余时间,她喜欢去新的地方旅行和与家人共度时光。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。