在EC2上部署

Jon*_*kes 12 amazon-s3 amazon-ec2 amazon-web-services

此问题适用于实际使用过Amazon EC2的任何人.我正在研究在那里部署服务器需要什么.

看起来我可以从VirtualBox开始,设置我的服务器,然后使用提供的ec2-tools导出图像.

棘手的是,如果我真的想对我正在运行的服务器进行配置更改,它们将不会持久化.

我有一些PHP代码,我需要能够部署(并重新部署)到系统,所以我认为EBS将是一个很好的选择.

我需要存储大量的数据,但事实上延迟不是问题,所以我认为像s3fs这样的东西可能有效.

所以我的问题是......你会做什么?你的配置是什么样的?也许你没有看到特别的挑战?

Eri*_* J. 10

我们在AWS环境中部署了一个大型商业应用程序.

一旦服务器运行,有三种基本方法可以控制您的更改,我们在不同情况下使用所有这些方法:

  1. 保持源代码管理中的更改.拥有一个原始图像的脚本,可以下载最新和最好的脚本.您可以根据需要下载PHP代码,Apache设置.如果您需要从AMI(亚马逊机器映像)重新启动实例,只需运行您的脚本以获取最新的代码和配置,您就可以开始了.
  2. 使用EBS(弹性块存储).EBS就像一个可以附加到您的实例的大型外部硬盘驱动器.即使您的实例消失,EBS仍然幸免于难.如果您以后需要两个(或更多)相同的实例,则可以让每个实例访问您在EBS中保存的内容.请参阅/sf/answers/254149521/
  3. 每次更改后刻录一个新的AMI.有一个工具可以从正在运行的实例创建新的AMI.如果EBS就像拥有一个外置硬盘,那么创建一个新的AMI就像拥有一个DVD-R.您可以将机器的当前状态保存到它.下次必须启动新实例时,将其基于新的AMI.很高兴去.


gar*_*les 7

我建议将您的PHP代码存储在SVN等存储库中,并编写一个脚本来检查存储库中的最新代码,并在您想要升级时重新部署它.您也可以在实例启动时运行此脚本,以便在启动新实例时获取最新代码; 节省了每次都必须创建新的AMI.

我没有看到EC2的主要挑战是实例启动时间 - 尤其是Windows.Linux实例需要5到10分钟才能启动,但我看到Windows实例需要40分钟; 如果要在负载增加时进行动态负载平衡并启动新实例,则可能会出现问题.