我正在考虑在Heroku上部署一个小型Rails应用程序。为了省钱,我希望我的应用程序使用外部数据库(我可以免费访问),而不是Heroku托管的数据库。麻烦的是免费数据库只接受本地连接。要从Heroku访问它,我需要通过SSH隧道这样做。
Heroku应用程序是否可以将其数据保存在通过SSH访问的外部数据库中?如果是这样,怎么样?
(对于奖励积分,这是第二个问题:这是一个好主意吗?一方面,这个方案可以让我免于支付Heroku数据库。另一方面,这意味着必须加密我的所有数据库流量我想这会大大减慢我的网络动力,并减少他们可以服务的请求数量。我节省在数据库上的钱是否会用完支付更多的动力?我可能会提前做这个吗? )
答案 0 :(得分:3)
可以在Heroku上为外部数据库设置隧道。
你不想因O.P.提到的原因(避免支付本地数据库)而出于@sgrif提到的原因(这会非常缓慢而且可能没有真正保存任何东西)
但是有合理的理由想要隧道到外部数据库,例如,如果数据驻留在您需要分析的遗留系统中。
不是简单地重复自己(很长时间),而是指向适用于我的食谱的链接:SSH tunneling from Heroku
答案 1 :(得分:1)
不,即使这是一个选项,它也是一个非常糟糕的主意,因为您要为每个请求添加大量延迟,因为您的所有意图和目的必须打开一个新的每个请求的隧道。
您最好的选择可能是使用Heroku的开发或启动层。如果您的数据库少于10,000行,则可以使用免费开发层。他们的15美元/月起动器层最多可以运行1,000,000行。