AWS使用AMI(Amazon Machine Image)在部署新节点(服务器)时复制应用程序服务器。
问题背后的原因
我想通过普通的专用服务器实现自动扩展,Apis在那里自动创build和销毁服务器(我的意思是说,我在非AWS环境中 ),那么在新部署的服务器中自动复制应用程序的最佳方法是什么
在部署新节点(服务器)时创buildAMI默认情况下不是自动的。 您当然可以通过使用您select的AWS软件开发工具包进行操作。 图像types取决于您正在使用的EC2实例的types。 AWS的最佳做法build议让您的实例在不同地区通过自动扩展连接,并使用ELB启动configuration,以便高可用性。 你也可以dosnapshots,如果这就是你在找什么。
已更新答案:
这取决于你想花多less时间来做这件事。 您可以使用Cloudformation和Infrastructure作为代码方法以编程方式创build您的环境。 即像Ansible,Docker等等。
你也可以引导一个EC2,当部署一个使用用户数据复制回购,configuration等…
可能最快的方法是创build工作EC2实例的AMI,然后从该AMI创build新的EC2实例,而不是每次从新实例开始。 还有像Elastic Beanstalk这样的AWS工具,这取决于你的堆栈,可以大大减less花费的时间。
这也取决于你的架构,你有更多的EC2实例,你将不得不考虑像HA和容错,这使得你configuration自动调节和启动configuration等。
AWS AMI基本上就是快照这样的根驱动的克隆。 AWSbuild议在构build一个AMI后,testing并准备部署到您的环境中,但使用AutoScaling过程AMI至关重要。
要求:找出克服自身硬件中的应用程序(无状态)服务器的最佳scheme,而不是任何云提供程序。
在不了解您的后端的情况下,可以应用唯一的广泛build议:
前三个步骤是在许多环境中最个人和最复杂的。 最后一个可以通过使用常见模式来解决:
没有负载均衡器,但DNS故障切换(循环与健康检查)
负载均衡+ DNS故障转移或虚拟IP技术
要了解有关DNS和LB的更多信息,请查看以下最新的讨论: 是否可以使用多个负载平衡器将stream量redirect到我的应用程序服务器?