我计划在 AWS 上运行 Odoo。我需要实时复制,以便我们进行故障转移。EC2 实例只会运行 Odoo 并将置于 ELB 之下。RDS(多可用区)postgres 将成为数据库,EFS 存储将托管所有上传/动态文件。除非发生区域范围的中断,否则这将正常工作。
我想获得有关跨区域故障转移的建议。我想我会在不同区域使用 Route 53 和 EC2 实例。由于 EFS 不支持它,我假设我必须使用类似 Gluster 的东西。RDS 支持跨区域的只读副本。但我们是否可以自动将其用作主数据库,而无需在 AWS 控制台中执行任何操作(即人工干预)。此外,在这种情况下故障转移究竟如何工作?会不会有停机时间?
答案1
如果您设置了 ELB 和 RDS 的多可用区实例,那么您就相当安全了。区域范围内的中断很少见。我建议在进行多区域设置之前进行成本/收益分析 - 您需要相当高的 RTO/RPO 或正常运行时间要求才能证明这一点。
如果您确实需要多区域,那么实现多区域负载平衡的最佳且可能唯一的选择是 Route53。您需要使用多区域复制来设置 RDS,尽管更新只读副本存在风险。您可能需要根据您的用例对此进行一些考虑。我可能会使用故障转移类型的路由,因此只有当第一个区域完全关闭时才会使用第二个区域。
您可能想要一个试点方案,在第二个区域中始终运行最少的资源。如果您可以容忍更多的停机时间,您可以复制数据库但不启动任何 EC2 实例,然后根据需要手动启动或使用 lambda 之类的脚本进行编写。