当S3脱机时,使我的网站保持在线的好策略是什么?
如果S3 US East 1离线,我应该如何配置/构建我的应用程序,以防止整个网站离线?
在这种情况下实现多元化的最佳策略是什么?
当S3脱机时,使我的网站保持在线的好策略是什么?
如果S3 US East 1离线,我应该如何配置/构建我的应用程序,以防止整个网站离线?
在这种情况下实现多元化的最佳策略是什么?
Answers:
2015年3月,Amazon AWS 宣布支持跨区域的S3复制。当S3中的某个区域脱机时,您可以从另一个区域中的镜像服务文件。
来源:https : //aws.amazon.com/blogs/aws/new-cross-region-replication-for-amazon-s3/
通过切换到另一个区域来保持基础结构在线的做法很复杂,但是S3是一个相对较小且简单的组件。Netflix 关于他们在混沌大猩猩方面的经历发表了一篇很棒的文章。
这也适用于服务降级,例如延迟增加。不仅是您依赖的服务完全脱机时。Netflix对此也有一篇文章:Chaos Engineering Upgraded。
您所要求的基本上是高可用性。为了使系统高度可用,您需要三件事:
在S3的情况下,正如Evgeny指出的那样,点#1是通过S3跨区域复制来解决的。
但是,复制不是瞬时的,您将要检查是否要使应用程序知道复制。万一发生中断,则可能是某些写入到您的源存储桶中的内容尚未(未复制)到目标存储桶中。您必须考虑应用程序如何处理这种情况。这实际上取决于数据类型,数据处理方式以及(可能)最终用户或管理层的期望。
对于S3,这意味着在发生中断的情况下,您希望应用程序停止对存储区A进行读写,而要使用存储区B。
据我所知,如何实现这一目标目前还取决于您。其他一些AWS服务提供了完全透明的故障转移,但是目前我还不知道S3会有这种情况。
有多种方法可以实现此目的。一个示例是使用代理,它将流量路由到适当的存储桶。在中断期间,您将更新/更改代理以将流量路由到不受中断影响的存储桶。另一个示例是使应用程序配置动态化并将其存储在键值存储中。如果应用程序经常读取KV存储库中的更新属性,则可以切换读取和写入的位置(例如,Spring Cloud支持“ EnvironmentChange”侦听器)。
好吧,我认为那很容易。只需设置写+读循环并在出现问题时立即发出警报:)