Amazon ec2 如何在多个ec2实例上更改应用程序?

Amazon ec2 如何在多个ec2实例上更改应用程序?,amazon-ec2,amazon-ebs,amazon-elb,Amazon Ec2,Amazon Ebs,Amazon Elb,我是AWS的新手。有人能告诉我如何更新驻留在多个ec2实例上的应用程序的正确方向吗 我找到了这个答案:它指向了这篇文章:这篇文章已经更新,并解释了您可以从EBS支持的AMI启动,到目前为止,AMI的大小基本上是无限的 这是否意味着我可以在ec2实例上加载应用程序,创建保存到ebs卷的ami,然后从ebs支持的ami启动,而不是使用我的应用程序更新ebs实例 这是否意味着我使用ami将启动配置设置为ebs卷,而不是仅使用ami 本质上,我的问题是,如何更新在多个ec2实例上运行的应用程序,而不登录

我是AWS的新手。有人能告诉我如何更新驻留在多个ec2实例上的应用程序的正确方向吗

我找到了这个答案:它指向了这篇文章:这篇文章已经更新,并解释了您可以从EBS支持的AMI启动,到目前为止,AMI的大小基本上是无限的

这是否意味着我可以在ec2实例上加载应用程序,创建保存到ebs卷的ami,然后从ebs支持的ami启动,而不是使用我的应用程序更新ebs实例

这是否意味着我使用ami将启动配置设置为ebs卷,而不是仅使用ami

本质上,我的问题是,如何更新在多个ec2实例上运行的应用程序,而不登录到每台机器并更改应用程序


谢谢

Netflix使用您描述的方法,每个新的应用程序版本都会创建自己的AMI,然后他们使用开源软件进行滚动重启,终止旧实例并生成运行新AMI的新实例

这是一种完全有效的工作方式,但对于我的大部分工作来说,这是过分的。AMI的构建和管理通常比简单地在服务器上安装新软件更麻烦。我主要用于自动启动代码,这主要涉及执行git拉取和重新启动Web服务器,我还用于更改服务器配置和第三方软件安装。如果涉及到足够多的系统更改,我将烧录一个新的AMI并重新使用它


因此,我认为这取决于您的工作流程的哪些方面产生了瓶颈。如果只是部署自动化,请查看capistrano和chef。如果更新你的应用程序涉及很多摩擦和部署问题,那么AMI可能是一个不错的选择。不管是哪种方式,我总是确保我的厨师食谱可以根据任何特定的软件版本规范构建服务器。希望这能有所帮助。

Netflix使用您描述的方法,每个新的应用程序版本都会创建自己的AMI,然后他们使用开源软件进行滚动重启,终止旧实例并生成运行新AMI的新实例

这是一种完全有效的工作方式,但对于我的大部分工作来说,这是过分的。AMI的构建和管理通常比简单地在服务器上安装新软件更麻烦。我主要用于自动启动代码,这主要涉及执行git拉取和重新启动Web服务器,我还用于更改服务器配置和第三方软件安装。如果涉及到足够多的系统更改,我将烧录一个新的AMI并重新使用它


因此,我认为这取决于您的工作流程的哪些方面产生了瓶颈。如果只是部署自动化,请查看capistrano和chef。如果更新你的应用程序涉及很多摩擦和部署问题,那么AMI可能是一个不错的选择。无论哪种方式,我总是确保我的厨师食谱可以根据任何特定的软件版本规范构建服务器。希望这能有所帮助。

我认为实现这一点的方法是在推出每一个新的软件时创建一个新的ami。然后为每个ami构建一个新的启动配置。然后用新的启动配置更新您的扩展组。

我认为实现这一点的方法是在推出每一个新的软件时创建一个新的ami。然后为每个ami构建一个新的启动配置。然后,使用新的启动配置更新缩放组。

现在已发布,场景已发生了一些变化。看看这一点,因为这是亚马逊支持的一种做你想做的事情的方式,但对于你的需求来说可能有些过头了。

现在发布了,场景已经发生了一些变化。看看这一点,因为这是亚马逊支持的一种做你想做的事情的方式,但对于你的需求来说可能有些过头了。

看看,这是一个用Ruby编写的部署工具,它完全可以解决你描述的问题

虽然它是一个Ruby工具,但它可以用于部署非Ruby的应用程序

它管理多台服务器的同步SSH,更新代码,并根据每台服务器的角色执行定制的部署任务。

Check out,一个用Ruby编写的部署工具,完全可以解决您描述的问题

虽然它是一个Ruby工具,但它可以用于部署非Ruby的应用程序

它管理到多个服务器的同步SSH,更新代码,并根据每个服务器的角色执行定制的部署任务。

您可以使用它在多个EC2上更新应用程序。它通过逐步跨实例工作并允许应用程序保持可用并继续为流量提供服务,将停机时间降至最低

您还可以跟踪部署、停止、回滚。。如果你的应用程序在EC2上运行,它是免费的。

你可以使用它在多个EC2上更新你的应用程序。它通过逐步跨实例工作并允许应用程序保持可用性,最大限度地减少停机时间 标记并继续为流量服务


您还可以跟踪部署、停止、回滚。。如果您的应用程序在EC2上运行,它是免费的。

我只想在EC2实例上推送我的应用程序的新版本,我没有其他服务器配置更改。我如何才能在一个地方更改我的应用程序,并让它更新到我的所有实例?好吧,要做到这一点,您可以使您的一个实例成为NFS服务器,导出一个卷,并让您的所有实例共享该文件系统。但是,通过git pull之类的工具,让每台服务器获得相同代码更新的过程自动化要容易得多,rsync命令或scp命令。这是否意味着在某个时间点x,我们将不可避免地有一些应用程序实例正在运行旧的代码库,直到它们使用git pull或类似方法更新自身?如何处理?假设引入了一个突破性的更改,实例a已经拉取了更改,而实例B还没有。。。如果实例A出于某种原因必须与实例B对话,或者相反,那么在两个实例都使用相同的代码库更新之前,事情可能无法按预期工作。。。您将如何处理这种情况?非常感谢。我只想在ec2实例上推送我的应用程序的新版本,我没有其他服务器配置更改。我如何才能在一个地方更改我的应用程序,并让它更新到我的所有实例?好吧,要做到这一点,您可以使您的一个实例成为NFS服务器,导出一个卷,并让您的所有实例共享该文件系统。但是,通过git pull之类的工具,让每台服务器获得相同代码更新的过程自动化要容易得多,rsync命令或scp命令。这是否意味着在某个时间点x,我们将不可避免地有一些应用程序实例正在运行旧的代码库,直到它们使用git pull或类似方法更新自身?如何处理?假设引入了一个突破性的更改,实例a已经拉取了更改,而实例B还没有。。。如果实例A出于某种原因必须与实例B对话,或者相反,那么在两个实例都使用相同的代码库更新之前,事情可能无法按预期工作。。。您将如何处理这种情况?非常感谢。