Amazon EC2 和本地服务器混合使用

Amazon EC2 和本地服务器混合使用

我正在开展一个项目,需要大量计算密集型服务 24/7 全天候运行,如爬虫、推荐计算等。我的计划是将用户可以登录并交互的公共网站托管在 Amazon 的 EC2 服务上,以确保它几乎始终处于运行状态(是的,我知道 Amazon 最近发生了严重的停电)。由于 EC2 是根据 CPU 时间收费的,所以我想在我自己的本地计算机上运行所有计算密集型服务。然后,我会将 Amazon 云上的数据库与我的本地数据库同步。我认为这应该会让我的成本保持在相当低的水平。我唯一的问题是连接一切的最佳方式是什么。尝试提供更多细节但仍然不明确:假设用户通过 Web 界面添加了我在此处调用的对象。然后,我需要以某种方式让本地服务器知道用户已添加此对象并执行任务t。假设任务t修改数据库。我可以让它修改 Amazon 数据库,以便用户立即看到更改,也可以让它修改我的本地数据库,最终将其复制到 Amazon 数据库。因此,我有两个主要问题:

  1. 您将如何在云和本地服务器之间传输信息?您是否会为 S3 上的 Web 应用程序和本地服务提供 REST API,以便它们可以通过 HTTP 通信进行通信,或者您是否会以某种方式使用 SSH 来保持两者之间的持续连接?
  2. 您是否会将所有数据库更改都发送到 Amazon 数据库,以便用户立即可以看到这些更改,或者本地服务是否只对本地数据库进行更改。

非常感谢您的所有建议或推荐。

答案1

如果不进一步了解您的情况,很难回答。如果用户添加了对象但一小时内没有看到它,这有关系吗?对象是什么?数据库记录,还是文件?

您的计算是数据库密集型的还是数据库只存储计算的输出?如果是后者,为什么要有本地数据库?如果是前者,您的计算主要是选择吗?您可以在两个数据库之间设置主从复制,计算仅在从属数据库上运行。

答案2

在你的情况下,你可能需要研究一下亚马逊虚拟私有云 (VPC)用于您的 EC2 实例和本地服务器之间的通信。

相关内容