我有一个名为主要的aws ec2实例。我有另一个名为 secondary 的ec2实例。主实例IP链接到域,并包含所有托管代码和服务。我希望能够实时将所有数据(文件/ deamons /服务等)从主要数据复制到次要数据。
这可以通过AWS上的某些服务完成吗?或者如果我必须编写代码,我在看什么样的代码/ linux脚本等?
编辑
我希望辅助实例能够立即运行正在复制的系统。一旦检测到故障转移,我就会将链接到域的IP更改为此辅助计算机。
目前系统正在使用数据库存储数据,但我们会将其移至RDS实例
系统是linux机器
我查看了Load Balancer,Auto Scaling组和EFS,但他们没有解决我的目的。我看着Elastic Bean Stalk,但对于我想要实现的目标来说,这似乎有些过分。我也可能在这里错了。非常感谢任何帮助。
答案 0 :(得分:1)
传统的高可用性设计是:
这样,两个实例都在为流量提供服务(如果您愿意,可以使用两个较小的实例)。 Load Balancer执行连续的运行状况检查。如果实例未通过运行状况检查,则负载均衡器会停止向其发送流量,因此用户受到的影响最小。
如果配置了Auto Scaling,它可以自动替换不健康的实例。这可以通过提供完全配置的AMI,或通过提供在启动时安装和配置软件的用户数据脚本(或两者的组合)来完成。
执行软件更新时:
这与Elastic Beanstalk提供的非常相似 - 它将为您创建Load Balancer和Auto Scaling组,并部署代码更新。
结果是一个高度可用的弹性架构,可以自动从故障中恢复。它还会强制您使用代码存储库而不是手动更新服务器,从而提高可靠性和可重复性。