AWS 上电子邮件服务器的最佳故障转移策略,以确保高可用性

AWS 上电子邮件服务器的最佳故障转移策略,以确保高可用性

我们的电子邮件服务器托管在 AWS 上。上周,亚马逊东海岸地区发生故障,导致我们的服务器和许多其他服务器瘫痪。

我们现在想要实施一个故障转移策略,以便如果邮件服务器再次不可用,那么我们可以简单地切换到不同区域的另一个邮件服务器,用户可以继续发送和接收邮件,并且仍然可以访问他们现有的邮件。

显然,定期备份消息并不是一个好的解决方案,因为有源源不断的传入和传出电子邮件被写入磁盘。

我们正在使用 Windows 2008 Server 并运行 Mailenable Enterprise。MailEnable 的配置(例如用户帐户、密码等)存储在邮件服务器上的 SQL Server 数据库中。

我们正在考虑以下解决方案:

  • 使用类似工具将 S3 存储安装为 Windows 驱动器来存储消息tnt驱动。与 EBS 存储(仅限于单个可用区域)不同,S3 存储可跨可用区域使用,即使单个区域发生故障,我们的存储仍然可用。
  • 我们每天对邮件服务器进行快照并将其复制到 S3。
  • 如果邮件服务器出现故障,我们会从快照中创建一个新的邮件服务器实例(这意味着自拍摄快照以来发生的配置更改(例如密码更改或新用户帐户创建)将不会包括在内,但我们可以接受这种风险)
  • 我们将包含消息的 S3 存储作为驱动器安装在新服务器上。
  • 我们将邮件服务器的弹性 IP 切换到新服务器,并且我们有一个再次可用的邮件服务器!

这个解决方案有效吗?与 EBS 相比,我有点担心 S3 的延迟和成本(请参阅http://jimliddle.sys-con.com/node/1103438/mobile)。我们是否应该考虑其他方法?您会推荐不同的 Amazon 工具来解决这个问题吗?

答案1

您可以在另一个 EC2 实例中克隆当前邮件服务器并将其作为备份 MX 服务器运行。两个服务器的数据库都应与数据库级复制同步,磁盘应与 rsync/ 每小时同步一次增量复制。当主服务器宕机时,发送电子邮件的服务器将自动尝试使用辅助 MX 服务器,用户仍然可以访问新旧电子邮件。当主服务器恢复时,备份服务器将再次与主服务器同步最新的电子邮件。

相关内容