亚马逊EBS的网站文件

我是亚马逊EC2 / EBS系统的新手。 我试图找出托pipe一个Web应用程序(PHP,ASP.NET等)的“最佳做法”。 我看到它的方式有两种select:

  1. 让实例拥有我的networking文件 – 不必担心附加音量等?
  2. 让EBS卷容纳我的networking文件 – 轻松更新新代码,而无需重新创buildAMI更新?

别人怎么处理呢?

如果您的实例是“EBS支持的”,那么您的根卷将是EBS。 从操作系统的angular度来看,它看起来就像一个普通的卷,但是数据将被保存到EBS存储中。 你不需要做任何特别的事情。 如果您愿意,您可以附加第二个EBS卷来存储您的数据。 一旦连接,它就会看起来像其他任何卷。

如果您的实例是“实例存储”,那么您没有停止和重新启动实例的选项。 你只能终止它,如果你这样做(无论是否有意),任何更新你的根音量将会丢失,你将需要重新安装和重新上传你的数据。

即使您使用EBS支持的EC2实例,我也build议您创build一个AMI映像,以防需要创build新实例(如果原始实例已closures或无法访问)。

我build议遵循一个黄金实例模式:

  1. 创build一个被认为是“主副本”的“黄金”EC2实例。 所有的更新都是针对这个实例完成的,但是这个实例永远不会被访问者访问,只有你通过RDP,SSH等进行访问。除非更新,否则closures这个实例。
  2. 创build您的黄金实例的AMI。
  3. 根据需要从AMI映像创build尽可能多的实例。 将您的弹性IP或ELB指向这些实例(而不是您的黄金实例)。 这些实例应该具有RDP,使用安全组来阻止SSH访问。 只允许http / https通过。
  4. 当您需要更新您的网站时,启动您的黄金实例,更新该实例上的站点,创build新的AMI,然后从新的AMI启动新实例并终止旧实例。