从Heroku通过SSH隧道连接远程数据库?

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

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

(对于奖励积分,这是第二个问题:这是个好主意吗?一方面,这个方案可以让我免于支付Heroku数据库。另一方面,这意味着必须加密我的所有数据库流量。我想象这会大大减慢我的网络动力,并减少他们可以服务的请求数量。我在数据库上节省的资金是否会用完支付更多的动力?我可能会提前做这个吗?)

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

您最好的选择可能是使用Heroku的开发或启动层。 如果您的数据库少于10,000行,则可以使用免费开发层。 他们的15美元/月起动器层最多可运行1,000,000行。

是的你可以。

可以在Heroku上将隧道设置为外部数据库。

由于@sgrif提到的原因,你不想出于OP提到的原因(避免支付本地数据库)这样做(这会非常缓慢,可能并没有真正保存任何东西)

但是有合理的理由想要隧道到外部数据库,例如,如果数据驻留在您需要分析的遗留系统中。

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