EC2configuration

我正在尝试为我的EC2帐户创build一个服务器结构。 我select的devise包括在不同可用区域运行的两个实例,弹性负载均衡器,configuration了cloudwatch监视的自动扩展组以及定义访问实例规则的安全组。 这个设置是为了支持用PHP编写的在线Web应用程序。

我正试图决定什么是更好的政策:

  1. 将MySQL DB存储在单独的实例上
  2. 将MySQL DB存储在附加的EBS卷上(从我所知的自动缩放不会复制附加的EBS卷,但会从选定的AMI生成新的实例 – 此视图是否正确?)

关于AMI我打算使用基本的亚马逊Linux 64位AMI,并安装bastille(也许是OSSEC),但我也希望使用encryption的文件系统。

  1. 使用encryption的文件系统有什么问题,数据库和Web应用程序之间的通信我需要知道?
  2. 在webapp的实例中是否有使用encryption文件系统的通信问题?
  3. 我打算在第二个可用区启动第二个实例或附加第二个卷作为数据库的备用数据库 – 我只是想找一些关于如何让这两个数据库进行交谈的build议 – 这是一个大的任务
  4. 关于安全性更新是最好的创build一个最近的快照,只是重新启动,并允许亚马逊在启动时安装更新或是yum更新机制一个合适的替代scheme – 更好的做法是重新启动,而不是强制重新启动安装的更新。
  5. 我打算创build两个AMI快照,一个用于应用服务器,另一个用于数据库,每个都有相同的安全措施 – 这是否合理 – 我认为这是一个更好的策略,比AMI中不需要包含其他应用程序我打算使用。
  6. 我的备份计划是创buildWeb应用程序和数据库实例的定期快照(如果我使用额外的EBS卷而不是单独的实例,我的理解是EBS卷将在意外终止的情况下在S3存储中持续存在,我可以创build卷备份的快照)。

预先感谢您的build议和build议。 我是新来的EC2,我可能已经描述了不必要的矫枉过正,但我​​想尝试实施什么可以被认为是最佳实践解决scheme,所以所有的意见是赞赏。

数据库应尽可能在专用实例上。 这将允许您独立于您可能具有的任何其他服务器(添加磁盘空间,更换服务器等)来pipe理该服务器。

数据库也应该放在根卷的单独EBS卷上。 这使您可以设置新的服务器,并轻松地将数据“移动”到新实例。

我不会将AutoScaling应用于您的数据库。 AutoScaling从AMI图像中创build新的实例,这些实例在数据方面肯定会过时。 您可以让AutoScaling启动的所有其他实例使用您的单个数据库。

您可以使用MySQL复制将数据复制到另一个可用区域中的从属实例。 请参阅http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html

从属实例有很多用途:

  • 如果主服务器出现故障,请保持待机状态
  • 对从服务器执行只读操作以减轻主服务器的负载
  • 备份从站而不是主服务器,以避免表锁和/或其他数据库可访问性问题