考虑到亚马逊 ElastiCache 的容错性
首先
这篇文章是《DevOps on AWS大全》的一部分。
《DevOps on AWS大全》的目录在这里。
本文从容耐故障性角度对亚马逊ElastiCache进行了深入解析。
我会以下的具体流程进行解释。
-
- Amazon ElastiCacheとは
-
- Amazon ElastiCacheのスケーラビリティ
-
- Amazon ElastiCacheのディザスタリカバリ
- Amazon ElastiCache for RedisとAmazon ElastiCache for Memcachedの比較
在AWS的分类中,这是指“Level 200:在具备主题的基础知识的前提下,解释最佳实践和服务功能的水平”的内容。
希望阅读这篇文章的人
-
- Amazon ElastiCacheを採用するときのベストプラクティスを説明できるようになりたい人
-
- Amazon ElastiCacheの耐障害性に不安を感じている人
- AWS Certified DevOps Engineer Professionalを目指している人
Amazon ElastiCache是什么?
Amazon ElastiCache 是由 AWS 提供的全托管分布式缓存服务,提供高速、可扩展和低延迟的解决方案,以提升应用程序的性能。
ElastiCache支持主要分布式内存对象缓存引擎Memcached和Redis,可以减轻应用程序对数据库和后端的查询负载,提高应用程序的响应时间。
除了考試准备外,它也适用于实际工作,但需要注意一点。
这一点是普遍的,即为了使用Amazon ElastiCache,需要对应用程序的代码进行大幅修改。
因此,在架构设计的初期,检查是否使用亚马逊ElastiCache是很重要的。
Amazon ElastiCache的用途常常包括1)数据库缓存和2)会话存储。
因为很少有人在意外的情况下使用过会话存储,所以当在考试中出现这个问题时,经常会听到人们感到困惑的声音。让我们记住这一点。
亚马逊云缓存的可扩展性
如果你想要考虑可扩展性,基本上最佳实践是使用Amazon ElastiCache for Redis的Amazon ElastiCache。
尽管Amazon ElastiCache for Memcached可以实现水平和垂直方向的扩展,但由于各自的实用性有限,因此在这里我们将重点介绍Amazon ElastiCache for Redis。
复制和分片
亚马逊ElastiCache为Redis通过复制和分片实现了可扩展性。
首先是复制。
复制是在禁用群集模式时的选项。
ElastiCache可以为主缓存节点创建多个读取副本。

通过这样做,可以分散读取流量,减轻单个主节点的负载。
此外,读取副本与主节点进行异步更新,提高了容错性。
接下来是分片。
如果启用了集群模式,分片将成为一个选项。
通过将缓存数据分割成多个分片,ElastiCache可以实现水平扩展。

每个分片都拥有自己独特的缓存引擎实例,以便负载能均匀分配。这使得它能够灵活应对大量的数据和流量。
自動擴展
只有在使用Amazon ElastiCache for Redis的集群模式时,才能使用自动扩展功能。
在亚马逊云缓存(Amazon ElastiCache)中,提供了自动伸缩功能。启用自动伸缩后,可以根据缓存的负荷增减自动调整节点数。
在这种情况下,Shard和Replica都可以自动进行扩展/收缩。这样一来,可以灵活应对变化的工作负载,并优化成本。
亚马逊弹性缓存的灾难恢复方案
在考虑使用Amazon ElastiCache进行灾难恢复时,定期获取快照和进行多可用区部署是最佳实践。
请注意,上述功能仅适用于Amazon ElastiCache for Redis,而无法在Amazon ElastiCache for Memcached中使用。
快照
Amazon ElastiCache定期存储并将快照保存到Amazon S3,以确保数据的持久性,并在发生故障或数据丢失时能够从快照中恢复数据。快照也可以手动创建,以确保在需要时能够可靠地保存数据状态。
多区域部署
在ElastiCache中,支持多AZ部署。这样一来,主缓存节点和从缓存节点会被放置在不同的可用区,一旦主节点发生故障,系统会自动切换到从节点上。这将确保高可用性并提升灾难恢复的可靠性。
Amazon ElastiCache for Reids和Amazon ElastiCache for Memcached之间的比较。
最终,我们将对Amazon ElastiCache for Redis和Amazon ElastiCache for Memcached进行比较总结。
如果您认为Redis比Memcached更高性能,那是因为Redis有更多的配置项可供设置。而Memcached的配置相对简单,因此功能更少。
在引入Amazon ElastiCache时,整理高可用性、永久性和备份恢复的要求是最佳实践。
如果需要这些要求,最好使用Redis;如果不需要这些要求,最好使用Memcached。
总结
在这篇文章中,我们从耐障害性的角度对亚马逊ElastiCache进行了详细解释。
-
- Amazon ElastiCacheとは
-
- Amazon ElastiCacheのスケーラビリティ
-
- Amazon ElastiCacheのディザスタリカバリ
- Amazon ElastiCache for ReidsとAmazon ElastiCache for Memcachedの比較
下一步我们将讨论Amazon DynamoDB的容错性。