我有一个应用程序部署到 Heroku。我正在使用一项服务,该服务要求我使用静态 IP 地址访问他们的 SFTP 服务器。我知道 Heroku dynos 在这方面是不可靠的。我已经使用 Proximo 插件成功地实现了这一点,但是,对于我将要发送的流量(大约 500 MB/月)来说,它太贵了。有替代方案吗?我倾向于使用 EC2 实例,但不太确定创建代理需要什么或其他什么。
1 回答
我会选择 EC2 微型实例;推动位并不会真正消耗太多 CPU,因此不太可能受到限制。然后,我会为该实例提供一个弹性 IP 地址,并将该地址传达给其他服务。(无论我以后选择做什么,我总是可以启动另一个实例并将其与该 IP 相关联。)然后我会部署一个 SOCKS 代理(Dante?);SOCKS 有相当广泛的应用程序支持,它可以很好地处理 SFTP。
从这里,有一些特定于 Heroku 的详细信息——其中之一,您需要配置代理服务器的 EC2 安全组,以便 Heroku 可以访问它(请参阅Dynos 和 Dyno Manifold)。您还需要在 SOCKS 服务器上启用身份验证,因为授予 Heroku 访问您的代理的权限会授予 Heroku 中的每个人访问您的代理的权限。然后,heroku config:set SOME_SERVICE_SOCKS_PROXY=socks://user:pass@ip-10-1-2-3.ec2.internal
让您的应用程序查找该环境变量并执行正确的操作。
您可能会为您的代理和 Heroku 之间的区域内数据传输支付 0.01 美元/GB,因为从统计上讲,您的应用程序大部分时间都处于不同的可用区。Heroku dynos 在生产中持续大约 24 小时,因此虽然确切的位置会在不可预测的情况下跳舞,但它的总价可能会落在 0.008 美元/GB 的范围内。您还将为微型实例本身(尽管保留实例使它们变得愚蠢便宜)以及通常的 AWS Internet 数据传输速率付费。