Amazon ElastiCache 是一项完全托管且兼容 RedisMemcached 的服务,可为现代应用程序提供实时、成本优化的性能和高达 99.99% 的可用性。ElastiCache 非常适合高性能用例,例如数据缓存、Web、移动应用程序、医疗应用程序、金融应用程序、游戏、广告技术、物联网、媒体流、会话存储、排行榜、机器学习(ML)和基于微服务的应用程序。如需了解 ElastiCache 如何能提供帮助,请参阅我们的 Amazon ElastiCache for Redis 使用案例Amazon ElastiCache for Memcached 使用案例

ElastiCache 可加快数据库和应用程序性能,以微秒级响应时间扩展到每秒数亿次操作。与开源替代方案相比,优势包括增强的安全性、可靠性、可扩展性和性能。该服务还可以为读取密集型工作负载节省成本,并为内存密集型工作负载提供数据分层等成本优化功能。了解下面有关 ElastiCache 功能和优点的更多信息。

无服务器

一分钟内即可开始使用

使用 Amazon ElastiCache Serverless,您可以在一分钟内创建高度可用的缓存,而无需进行基础设施预置或配置。通过在 AWS 管理控制台、AWS 软件开发工具包(SDK)或 AWS 命令行界面(CLI)中指定缓存名称,您只需几个步骤即可创建 ElastiCache Serverless 缓存。

无容量规划

ElastiCache Serverless 通过持续监控缓存的计算、内存和网络利用率并即时进行垂直和水平扩展以满足需求,无需复杂、耗时的容量规划过程。

Amazon ElastiCache Serverless 简介(1:30)

按使用量付费的计费模式

使用按使用量付费的计费模式时,您不必担心在缩减工作负载后,ElastiCache Serverless 缩减容量的速度快慢。您只需为存储的数据和应用程序使用的计算付费。访问 ElastiCache 定价页面了解更多信息。

易于使用

快速开始使用

凭借 ElastiCache Serverless,您可以使用控制台、AWS CLI 或 AWS SDK 在一分钟内创建新的无服务器缓存,而无需管理基础设施或容量。如果您设计自己的集群,则资源已预配置相应的参数和设置,且缓存参数组可对您的 Redis 或 Memcached 环境启用精确控制和微调功能。

请参阅我们的文档,了解如何快速开始使用 ElastiCache for Redis开始使用 ElastiCache for Memcached

完全托管的 Redis 和 Memcached

ElastiCache 是一项完全托管的服务。我们可自动执行耗时的管理任务(例如容量规划、软件修补管理、故障检测和恢复),从而让您能够专注于价值更高的应用程序开发工作。您可以通过内置方式访问底层内存数据库环境,从而直接将 ElastiCache 与现有的 Redis 和 Memcached 工具和应用程序一起使用。使用 ElastiCache Serverless 时,所有次要版本更新、性能增强和安全补丁均可自动应用,无需配置,也不会中断应用程序。

向关系数据库添加缓存

您可以使用 Amazon Relational Database Service(Amazon RDS)和 Amazon Aurora 的控制台创建 ElastiCache 集群并将其附加到您的关系数据库。这样便可通过更快的读取来提高应用程序性能,同时降低成本。如需了解更多信息,请参阅在 Amazon RDS 中创建和附加 ElastiCache 集群Aurora 文档

监控

Amazon CloudWatch 指标提供对 ElastiCache 资源的见解,且无需额外付费。您可以使用控制台查看有关您的实例的 40 多个关键运营指标,包括计算、已用内存、缓存命中率、有效连接、复制和命令。要了解有关监控缓存群集的更多信息,请参阅有关监控 ElastiCache for Redis 的 CloudWatch 指标ElastiCache for Memcached 的 CloudWatch 指标的文档。

ElastiCache 会发布有关重大事件的消息。ElastiCache Serverless 事件(包括新的缓存创建、删除和缓存配置更新)将发送到 Amazon EventBridge。使用自行设计的缓存群集时,ElastiCache 会向 Amazon Simple Notification Service(Amazon SNS)发送事件。

标记

能够标记您的 ElastiCache 资源和 Redis 或 Memcached 快照以用于跟踪和计费而从中获益。您可以使用 AWS Cost Explorer 成本管理服务将费用归于资源和资源组,以创建和维护共享一组通用标签的资源集合。如需了解有关标记 ElastiCache 资源的更多信息,请参阅有关 ElastiCache for Redis 标记ElastiCache for Memcached 标记的文档。

JSON 支持

除开源 Redis 中包含的数据结构以外,ElastiCache for Redis 还为 JavaScript 对象表示法(JSON)文档提供内置支持。您只需使用专为 JSON 文档而设计和优化的内置命令进行应用程序开发。ElastiCache for Redis 支持部分 JSON 文档更新,以及使用 JSONPath 查询语言执行的强大搜索和筛选功能。使用 ElastiCache for Redis 版本 6.2 及更高版本时,可以使用 JSON 支持。

性能和可扩展性

微秒级响应时间

ElastiCache 无需访问基于磁盘的数据库来获取经常访问的数据,这可帮助提高应用程序性能并提高读取密集型工作负载的吞吐量。ElastiCache 可以扩展到每秒数百万次操作,实现微秒级响应时间。

高吞吐量和低延迟

与 ElastiCache for Redis 版本 7.0 相比,ElastiCache for Redis 版本 7.1 的吞吐量可以提高多达 100%,P99 延迟可降低多达 50%。在 r7g.4xlarge 节点或更大节点上,可以实现每个节点每秒超过 100 万个请求,或每个集群每秒超过 5 亿个请求。

ElastiCache for Redis 版本 7.1 提供增强型 I/O 线程,通过多路传输、表示层卸载等方式,显著提高了大规模吞吐量并降低了延迟。增强型 I/O 线程非常适合具有多个客户端连接的吞吐量受限工作负载,其优势会随工作负载并发级别扩展。这些改进如图所示,显示将工作推送到专用线程。

要开始使用 ElastiCache for Redis 版本 7.1,请使用 ElastiCache 控制台创建新集群或升级现有集群,无需支付额外费用。要了解更多信息,请访问支持的 ElastiCache for Redis 版本文档并阅读我们的 ElastiCache for Redis 版本 7.1 博客文章

扩展集群以满足需求

ElastiCache Serverless 可自动弹性扩展以满足应用程序性能需求。ElastiCache Serverless 持续监控您的应用程序在缓存上使用的内存、计算和网络带宽。它使缓存能够就地纵向扩展,同时还可以并行向外扩展,以确保缓存能够支持应用程序的流量需求。详细了解如何扩展 ElastiCache for Redis 集群扩展 ElastiCache for Memcached 集群

应用程序自动扩缩

设计自己的缓存时,ElastiCache for Redis 自动扩缩使您能够自动增加或减少 ElastiCache for Redis 服务中所需的分片数或副本数,从而以尽可能低的成本保持稳定、可预测的性能。ElastiCache for Redis 使用 AWS Auto Scaling 来管理扩缩,并使用 CloudWatch 指标来确定纵向扩展和缩减的时机。

可用性和可靠性

高可用性和多个可用区

使用多个可用区(多可用区)或无服务器配置时,ElastiCache 可提供 99.99% 服务水平协议(SLA)。ElastiCache Serverless 可自动跨多个可用区冗余存储数据,无需用户配置。设计自己的缓存集群时,您可以通过在多个可用区中创建副本,利用多个 AWS 可用区来实现高可用性并扩展读取流量。在主节点丢失的情况下,AWS 将自动检测故障并将故障转移到只读副本,从而在无需人工干预的情况下提供更高的可用性。阅读有关使用复制组实现高可用性以及如何在具有多可用区的 ElastiCache for Redis 中最大限度地减少停机时间的更多信息。

使用全球数据存储进行跨区域灾难恢复

ElastiCache for Redis 中的全球数据存储提供了快速、可靠、安全的跨 AWS 区域复制。借助全球数据存储,您可以在一个区域写入 ElastiCache for Redis 集群,同时可在其他两个跨区域副本集群中读取数据,实现跨 AWS 区域的低延迟读取和灾难恢复。在发生可能性较小的区域降级的情况下,可以将其中一个运行良好的跨区域副本集群升级为具有完全读写能力的主集群。 

实例监控和修复

ElastiCache 持续监控实例的运行状况。如果节点遇到故障或其性能长时间下降,ElastiCache 将自动重启或替换该节点以及相关进程。

备份、还原和导出

通过创建集群快照,ElastiCache for Redis 可帮助保护您的数据。您只需在控制台上执行几个步骤或通过简单的 API 调用,即可设置自动化快照或启动手动备份。您可以使用这些快照或在 Amazon Simple Storage Service(Amazon S3)上存储的任何与 Redis RDB 兼容的快照,然后传播新的 ElastiCache for Redis 集群。

您还可以将快照导出到您选择的 Amazon S3 桶中,用于灾难恢复、分析或跨区域备份和还原。阅读有关 ElastiCache for Redis 备份和还原的更多信息,以保护您的数据。

安全性与合规性

网络隔离

使用 ElastiCache,您可在 Amazon Virtual Private Cloud(Amazon VPC)中运行您的资源。使用 Amazon VPC,您可以通过指定您希望用于节点的 IP 地址范围来隔离 ElastiCache 资源,以及连接同一个 Amazon VPC 内的其他应用程序。您还可以使用该服务配置防火墙设置,以便控制对资源的网络访问。阅读有关 Amazon VPC 和 ElastiCache for Redis 安全性以及 Amazon VPC 和 ElastiCache for Memcached 安全性的更多信息。

动态和静态加密

ElastiCache 支持传输中加密,这使您能够加密客户端与 ElastiCache 服务器之间以及在 ElastiCache 服务边界内的所有通信。ElastiCache 还支持静态数据加密,您可以对磁盘上使用的数据以及 Amazon S3 中的备份进行加密。了解有关加密以及 ElastiCache for Redis 数据加密Elasticache for Memcached 数据加密的更多信息。ElastiCache Serverless 始终使用传输层安全性协议(TLS)对静态和传输中的数据进行加密。 

此外,ElastiCache 还提供 AWS Key Management Service(AWS KMS)集成,允许您使用自己的 AWS KMS 密钥进行加密。另外,您还可以使用 Redis AUTH 命令增加另一层身份验证。您无需管理证书的生命周期,因为 ElastiCache for Redis 会自动管理证书的颁发、续订和过期。

Redis 身份验证与访问控制

ElastiCache for Redis 支持使用 IAM 身份、Redis AUTH 和基于角色的访问控制(RBAC)进行 AWS Identity and Access Management(IAM)身份验证。

通过 IAM 身份验证,您可以使用 AWS IAM 身份验证与 ElastiCache for Redis 的连接,以增强您的安全模型并简化许多管理安全任务。Redis 身份验证令牌或密码使 Redis 在允许客户端运行命令之前要求输入密码,从而提高数据安全性。

合规性

ElastiCache 支持 SOC 1、SOC 2、SOC 3、ISO、MTCS、C5、PCI、HIPAA 和 FedRAMP 等计划的合规性。请参阅按合规性计划提供的范围内 AWS 服务,查看受支持的合规性计划的最新列表。

您可以使用 AWS PrivateLink 从 Amazon VPC 对 ElastiCache 进行私有访问。PrivateLink 允许您对 ElastiCache API 操作进行私有访问,而无需互联网网关、NAT 设备、VPN 连接或 AWS Direct Connect 连接。了解有关 ElastiCache for Redis API 和接口 VPC 端点ElastiCache for Memcached API 和接口 VPC 端点的更多信息。

经济高效

仅按实际用量付费

使用 ElastiCache,您只需为消耗的资源付费,无需预付费用或长期承诺。 根据设计您自己的集群时选择的节点数量、节点类型和定价模型,您需要为 ElastiCache Serverless 存储的数据和消耗的计算按小时付费。 访问 ElastiCache 定价页面了解更多信息。

成本优化您的关系工作负载

您可以使用 ElastiCache 通过内存缓存来优化关系数据库成本。将 ElastiCache 与 Amazon RDS for MySQL 结合使用(与单独使用 Amazon RDS for MySQL 相比),可节省高达 55% 的成本,并将读取性能提高多达 80 倍。

数据分层

您可以使用 ElastiCache for Redis 的数据分层作为一种成本较低的方式,将集群扩展到数百 TB 的容量。数据分层为 Redis 工作负载提供了一个具有性价比的选项,除了在内存中存储数据外,还可以在每个集群节点中使用成本较低的固态硬盘(SSD)。

它非常适合于定期访问 20% 以内总体数据集的工作负载,以及在 SSD 上访问数据时能够容忍额外延迟的应用程序。在基于 Graviton2 的 R6gd 节点上使用 Redis 6.2 及更高版本时,可以使用 ElastiCache 数据分层。与 R6g 节点(仅内存)相比,R6gd 节点的总容量(内存+SSD)增加了近 5 倍,可以帮助您在最大利用率下实现 60% 以上的节省。

预留节点

当您承诺使用一年或三年期限时,ElastiCache 预留节点可为您提供可观的按需使用折扣。通过预留节点,您可以选择无预付款、部分预付款或全部预付款来创建在特定区域运行节点的预留。这些预留以一年或三年的增量提供,在持续每小时使用费率的基础上可享受大幅折扣。了解有关 ElastiCache for Redis 预留节点ElastiCache for Memcached 预留节点的更多信息。

常见问题

ElastiCache 有什么用途?

ElastiCache 是一种 Web 服务,让用户能够在中轻松部署和运行与 Redis 或 Memcached 协议兼容的服务器节点。ElastiCache 支持您从速度快的完全托管型内存系统检索信息,而不是完全依赖于速度较慢、基于磁盘的系统,从而提高了 Web 应用程序的性能。

ElastiCache 可简化并减少内存环境的管理、监控和运营任务,让您的工程资源专注于开发应用程序。借助 ElastiCache,您可以缩短用户操作和查询的加载与响应时间,降低扩展 Web 应用程序相关的费用。

ElastiCache 是否无服务器?

可以。ElastiCache Serverless 允许客户在一分钟内添加缓存,并根据应用程序流量模式即时扩展容量。您可以通过使用控制台、SDK 或 AWS CLI 指定缓存名称来轻松开始使用。访问我们的 ElastiCache 文档以了解更多信息。

ElastiCache 有哪些优势?

ElastiCache 可以完全托管并自动化执行运营分布式内存键值环境所需的常见管理任务。

使用 ElastiCache Serverless,您可以在一分钟内创建高度可用且可扩展的缓存,无需预置、规划和管理缓存集群容量。ElastiCache Serverless 自动跨三个可用区冗余存储数据,并提供 99.99% 可用性的服务水平协议(SLA)。通过与 CloudWatch 监控功能集成,ElastiCache 可以加强缓存资源相关的关键性能指标的可见性。

ElastiCache 与 Redis 和 Memcached 协议兼容,因此,您在现有 Redis 或 Memcached 环境中使用的代码、应用程序和常用工具可以与该服务无缝协作。借助 ElastiCache 对集群配置的支持,您可以使用快速、可扩展且易于使用的托管型服务,满足您的要求很高的应用程序的要求。使用 ElastiCache,您只需按使用量付费,没有最低费用、前期成本或长期承诺。

ElastiCache 内存缓存如何帮助我的应用程序?

内存缓存通过将经常访问的数据项存储在内存中来提高应用程序性能,因此后续读取速度比从可能默认为基于磁盘的存储的主数据库读取要快得多。使用 ElastiCache 内存缓存可以显著改进很多高读取量的应用程序工作负载(例如社交网络、游戏、媒体共享和 Q&A 门户)或计算密集型工作负载(例如建议引擎)的延迟和吞吐量。

内存缓存可将重要数据存储在内存中以实现低延迟访问,从而提高应用程序性能。缓存信息可能包括 I/O 密集型数据库查询的结果或计算密集型计算的结果。

如何设置并开始使用 ElastiCache?

开始使用 ElastiCache 非常简单。如果还没有注册 ElastiCache,您可以单击 ElastiCache 概述页面上的“开始使用”按钮,然后完成注册过程。您必须拥有 AWS 账户才能访问此服务;如果还没有该账户,则在您开始 ElastiCache 注册过程时,系统将提示您创建一个账户。

注册后,作为 AWS Free Tier 的一部分,新 AWS 客户可获得 750 个小时的 ElastiCache cache.t2.micro 或 cache.t3.micro 节点免费使用时间,期限最多为 12 个月。

注册 ElastiCache 后,请参阅 ElastiCache for Redis 入门指南ElastiCache for Memcached 入门指南,了解如何使用控制台、AWS CLI 或 ElastiCache API 在几分钟内启动集群。