工作方式 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

工作方式

在这里,您可以找到 ElastiCache (Memcached)部署的主要组件的概述。

缓存和缓存引擎

缓存是一种内存中的数据存储,可用于存储缓存的数据。通常,您的应用程序会将经常访问的数据缓存在缓存中,以优化响应时间。 ElastiCache (Memcached) 提供两种部署选项:无服务器集群和自行设计的集群。请参阅 选择部署选项

注意

亚马逊同时 ElastiCache 使用 Redis OSS 和 Memcached 引擎。使用您感兴趣的引擎的指南。如果您不确定要使用哪个引擎,请参阅本指南中的比较 Memcached 和 Redis OSS 自行设计的缓存

ElastiCache (Memcached)的工作原理

ElastiCache (Memcached) 无服务器

ElastiCache (Memcached) Serverless 使您能够创建缓存,而不必担心容量规划、硬件管理或集群设计。您只需为缓存提供一个名称,即可收到一个端点,可以在 Memcached 客户端中配置此端点以开始访问缓存。

注意

ElastiCache (Memcached) Serverless 仅与支持 TLS 的 Memcached 客户端兼容。

主要优势

  • 无需进行容量规划:ElastiCache 无服务器让您无需规划容量。 ElastiCache Serverless 持续监控缓存的内存、计算和网络带宽利用率,并可纵向和横向扩展。它可以增大缓存节点,同时并行启动横向扩展操作,以确保缓存能够扩展以始终满足您的应用程序需求。

  • Pay-per-use:使用 ElastiCache Serverless,您需要为缓存中的工作负载所存储的数据和使用的计算量付费。请参阅 定价维度

  • 高可用性:ElastiCache Serverless 会自动跨多个可用区 (AZ) 复制您的数据,以实现高可用性。它会自动监控底层缓存节点,并在出现故障时将其替换。它为每个缓存提供 99.99% 可用性 SLA。

  • 自动软件升级:ElastiCache Serverless会自动将您的缓存升级到最新的次要版本和补丁软件版本,而不会对您的应用程序的可用性产生任何影响。当有新的 Memcached 主版本可用时, ElastiCache 将向您发送通知。

  • 安全性:无服务器始终对传输中数据和静态数据进行加密。您可以使用服务托管密钥或您自己的客户自主管理型密钥,对静态数据进行加密。

下图说明了 ElastiCache 无服务器的工作原理。

ElastiCache 无服务器缓存操作示意图,从可用区到客户 VPC,再到服务 VPC。

创建新的无服务器缓存时, ElastiCache 将在您的 VPC 中您选择的子网中创建一个虚拟私有云 (VPC) 终端节点。您的应用程序可以通过这些 VPC 端点连接到缓存。

使用 ElastiCache Serverless,您可以收到应用程序连接到的单个 DNS 终端节点。当您请求与端点建立新连接时, ElastiCache Serverless 会通过代理层处理所有缓存连接。代理层有助于减少复杂的客户端配置,因为在底层集群发生变化时,客户端无需重新发现集群拓扑。代理层是一组使用网络负载均衡器处理连接的代理节点。当应用程序创建新的缓存连接时,网络负载均衡器会将请求发送到代理节点。当应用程序执行缓存命令时,连接到应用程序的代理节点会在缓存中的缓存节点上执行请求。代理层从客户端提取缓存群集拓扑和节点。这使您 ElastiCache 能够智能地进行负载平衡、横向扩展和添加新的缓存节点、在缓存节点出现故障时更换缓存节点以及更新缓存节点上的软件,所有这些都不会影响应用程序的可用性,也不必重置连接。

自行设计 ElastiCache 的集群

您可以通过为 ElastiCache 集群选择缓存节点系列、大小和节点数量来选择设计自己的集群。通过设计自己的集群,您可以更精细地控制集群的配置和扩展。

主要优势

  • 设计自己的集群:使用 ElastiCache,您可以设计自己的集群并选择要放置缓存节点的位置。例如,如果您的应用程序需要放弃高可用性来换取低延迟,则可以选择在单个可用区中部署缓存节点。或者,在设计集群时,您可以使用跨多个可用区的节点,从而实现高可用性。

  • 精细控制:在设计自己的集群时,您可以通过微调缓存上的设置来实现更多控制。例如,您可以使用 使用参数组配置引擎参数 配置缓存引擎。

  • 垂直和水平扩展:在需要时,您可以选择增大或减小缓存节点大小来手动扩缩集群。您也可以通过添加节点来横向扩展。

下图说明了 ElastiCache 自行设计的集群的工作原理。

ElastiCache 自行设计的集群操作示意图,从可用区到客户 VPC,再到 ElastiCache 托管缓存节点。

定价维度

您可以通过两个部署 ElastiCache 选项进行部署。在部署 ElastiCache Serverless 时,您需要为以 GB 小时存储的数据和按 ElastiCache 处理单元 (ECPU) 计算的数据的使用量付费。选择设计自己的 ElastiCache (Memcached) 集群时,您需要按每小时的缓存节点使用量付费。请参阅此处的定价详细信息。

数据存储

您需要为存储在 ElastiCache 无服务器中的数据付费,按千兆字节小时 (GB-Hr) 计费。 ElastiCache Serverless 持续监控存储在缓存中的数据,每分钟采样多次,并计算每小时平均值以确定缓存的数据存储使用量(以 GB-Hr 为单位)。每个 ElastiCache 无服务器缓存按流量计量存储至少 1 GB 的数据。

ElastiCache 处理单元 (ECPU)

您需要为应用程序在 ElastiCache 无服务器 ElastiCache 处理单元 (ecPU) 上执行的请求付费,该单位包括 vCPU 时间和传输的数据。

  • 对于传输的每 KB 数据,简单读取和写入需要 1 个 ECPU。例如,传输最多 1 KB 数据的 GET 命令将使用 1 个 ECPU。传输 3.2 KB 数据的 SET 请求将使用 3.2 个 ECPU。

  • 对多个项目执行操作的命令将按比例消耗更多的 ECPU。例如,如果您的应用程序对 3 个项目执行 multiget,则它将消耗 3 个 ECPU。

  • 操作更多项目和传输更多数据的命令,会根据两个维度中的较高者使用 ECPU。例如,如果您的应用程序使用 GET 命令,检索 3 个项目并传输 3.2 KB 的数据,则它将使用 3.2 个 ECPU。或者,如果它仅传输 2 KB 数据,则将使用 3 个 ECPU。

ElastiCache Serverless 会发出一个名为的新指标ElastiCacheProcessingUnits,该指标可帮助您了解工作负载消耗的 ECPU。

节点小时数

您可以通过选择 EC2 节点系列、大小、节点数和跨可用区放置,来设计自己的缓存群集。在自行设计集群时,您需要按小时为每个缓存节点付费。