【问题标题】:Does AWS take down each availability zones(A-Z) or whole regions for maintenanceAWS 是否会关闭每个可用区 (A-Z) 或整个区域进行维护
【发布时间】:2019-04-09 06:37:01
【问题描述】:

AWS 对每个区域都有一个维护窗口。 https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/maintenance-window.html 但找不到任何关于它如何与同一区域中的多个 A-Z 一起工作的文档。

我配置了一个 Redis 缓存,并且在同一区域的不同 (A-Z) 上有一个副本。如果一个 (A-Z) 不可用,则在不同 (A-Z) 上配置副本的全部目的是从下一个 (A-Z) 提供它 当他们进行维护时,他们是关闭整个区域还是单独的可用区

【问题讨论】:

    标签: amazon-web-services redis


    【解决方案1】:

    您应该阅读有关 ElastiCache 维护的常见问题解答https://aws.amazon.com/elasticache/elasticache-maintenance/

    这表示,如果您有一个多可用区部署,它将一次关闭一个实例,触发故障转移到只读副本,然后在关闭其余实例之前创建新实例,因此您不会遇到任何问题服务中断。

    【讨论】:

      【解决方案2】:

      感谢@morras 提供上述link 并解释了 elasticache 的工作原理维护窗口期。下面3个问题我从上面的链接中取出并解释一下。

      1.更换节点需要多长时间?

      更换通常会在几分钟内完成。在某些实例配置和流量模式中,替换可能需要更长的时间。例如,Redis 主节点可能没有足够的可用内存,并且可能正在经历高写入流量。当一个空副本从这个主节点同步时,主节点可能会耗尽内存来尝试解决传入的写入以及同步副本。在这种情况下,主服务器断开副本并重新启动同步过程。副本可能需要多次尝试才能成功同步。如果传入的写入流量继续保持高位,副本也可能永远不会同步。

      Memcached 节点在替换期间不需要同步,并且无论节点大小如何,总是快速替换。

      2。节点更换对我的应用程序有何影响?

      对于 Redis 节点,替换过程旨在尽最大努力保留现有数据,并且需要成功的 Redis 复制。对于单节点 Redis 集群,ElastiCache 动态启动副本,复制数据,然后故障转移到该副本。对于由多个节点组成的复制组,ElastiCache 会替换现有副本并将数据从主副本同步到新副本。如果启用了多可用区或集群模式,替换主节点会触发故障转移到只读副本。如果禁用多可用区,ElastiCache 将替换主缓存,然后从只读副本同步数据。在此期间,主节点将不可用。 对于 Memcached 节点,替换过程会产生一个空的新节点并终止当前节点。切换期间,新节点将在短时间内不可用。切换后,当空的新节点填充缓存数据时,您的应用程序可能会出现性能下降。

      3.为了获得顺畅的更换体验并最大限度地减少数据丢失,我应该遵循哪些最佳做法?

      对于 Redis 节点,替换过程旨在尽最大努力保留现有数据,并且需要成功的 Redis 复制。我们尝试一次从同一集群中替换足够多的节点以保持集群稳定。您可以在不同的可用区预配主副本和只读副本。在这种情况下,当一个节点被替换时,数据将从不同可用区域的对等节点同步。对于单节点 Redis 集群,我们建议为 Redis 提供足够的内存,如此处所述。对于具有多个节点的 Redis 复制组,我们还建议在传入写入流量较低的时段安排替换。 对于 Memcached 节点,将您的维护时段安排在传入写入流量较低的时段,测试您的应用程序的故障转移并使用 ElastiCache 提供的“更智能”客户端。您无法避免数据丢失,因为 Memcached 的数据完全在内存中。

      【讨论】:

        猜你喜欢
        • 2020-11-28
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        相关资源
        最近更新 更多