我刚开始尝试使用Amazon的EC2服务来运行一个使用SQL Server 2005 Express数据库的asp.net web应用程序。 我有一些关于如何configuration和操作最适合可靠性的问题,我希望能在这里获得一些集体智慧,因为这是我第一次进入EC2。
以下是我如何configuration它:
操作系统:Windows 2003 SQL Server Express 2005
存储在EBS卷(E Drive)上的Web内容存储在EBS卷(E Drive)上的数据库数据备份到“C Drive”,然后复制到S3。 附加到生产实例的弹性IP地址。
现在,当我对操作系统configuration进行更改时,我使用捆绑function创build了一个新的AMI。 不幸的是,我发现这会导致严重的停机。 捆绑被创build并且新的实例被启动。 看来,当我准备好新的AMI时,我应该:
这是事件的正确顺序,以防止任何机会腐蚀EBS卷? 如果在数据库写入过程中分离,EBS卷会损坏吗? 我应该快照生产实例的EBS卷并将其附加到临时实例吗? 或者在使用EBS卷的过程中拍摄快照会导致腐败? 任何提高可靠性和操作的build议?
这取决于您正在进行的更改的types以及您如何进行AMI设置。
假设您只是对操作系统进行了更改,而您的AMI不会自动挂载您的EBS卷…
在这一点上,你应该有一个更新的实例运行,只需要将IP地址和EBS卷转移到您的新实例。 可能最简单的方法是彻底closures第一个Windows实例,一旦完成,只需将IP和EBS卷连接到新实例。 就个人而言,我更喜欢做以下事情…以防万一二审失败,我想回到一审…
由于您正在对您的ami的第二个实例进行所有更新,因此在捆绑过程中没有停机时间。 您也可以随时进行更新,即使是在工作date间,因为您没有触碰您的生产实例。 您唯一的停机时间是将EBS卷和IP传输到新实例。 另一件好事是,如果更新或新实例的任何内容不能解决,您可以退回到使用原始实例。
此外,还有一件事情…当写入发生时,您可以通过强制将数据库分离到数据库中,从而导致问题。 请注意您的EBS卷以及备份和快照。 EBS是伟大的,但它仍然可能失败。