3

我正在考虑在 Heroku 上部署一个小型 Rails 应用程序。为了省钱,我希望我的应用程序使用外部数据库(我可以免费访问),而不是 Heroku 托管的数据库。问题是免费数据库只接受本地连接。要从 Heroku 访问它,我需要通过 SSH 隧道进行访问。

Heroku 应用程序是否可以将其数据保存在通过 SSH 访问的外部数据库中?如果是这样,怎么做?

(对于奖励积分,这是第二个问题:这是个好主意吗?一方面,这个方案可以让我免于支付 Heroku 数据库的费用。另一方面,这意味着必须加密我所有的数据库流量。我想这会大大降低我的网络测功机的速度,并减少他们可以服务的请求数量。我在数据库上节省的钱会被用来购买更多的测功机吗?这样做我可能会领先吗?)

4

2 回答 2

4

是的你可以。

可以在 Heroku建立一条通往外部数据库的隧道。

由于 OP 提到的原因(为了避免为本地数据库付费),您不想这样做,因为@sgrif 提到的原因(它会非常缓慢并且可能不会真正节省任何东西)

但是想要通过隧道连接到外部数据库是有正当理由的,例如,如果数据驻留在需要分析的遗留系统中。

而不是简单地重复我自己(它很长),这是一个对我有用的配方的链接:来自 Heroku 的 SSH 隧道

于 2014-12-08T15:37:09.507 回答
1

不,即使这是一个选项,这也是一个非常糟糕的主意,因为您会为每个请求添加大量延迟,因为您出于所有意图和目的都必须为每个请求打开一个新隧道。

您最好的选择可能是使用 Heroku 的开发层或入门层。如果您的数据库少于 10,000 行,则免费开发层将起作用。他们每月 15 美元的入门级适用于多达 1,000,000 行。

于 2012-08-12T01:47:42.287 回答