用于SFTP的Heroku静态IP

时间:2012-11-12 19:28:45

标签: heroku amazon-ec2

我有一个部署到Heroku的应用程序。我正在使用一项服务,要求我使用静态IP地址访问其SFTP服务器。我知道Heroku dynos在这方面是不可靠的。我已经使用Proximo插件成功实现了这一点,但是,它对于我将要发送的流量(大约500 MB /月)来说太贵了。有替代品吗?我倾向于使用EC2实例,但不太确定创建代理或其他什么所需。

1 个答案:

答案 0 :(得分:5)

我选择EC2 micro实例;推送位并不会消耗太多CPU,因此不太可能受到限制。然后,我会给该实例一个弹性IP地址,并将该地址传递给另一个服务。 (无论我以后选择做什么,我总是可以启动另一个实例并将其与该IP相关联。)然后我将部署一个SOCKS代理(Dante?); SOCKS具有相当广泛的应用支持,它可以很好地处理SFTP。

从这里开始,有一些特定于Heroku的详细信息 - 例如,您需要配置代理服务器的EC2安全组,以便Heroku可以访问它(请参阅Dynos and the Dyno Manifold)。您还需要在SOCKS服务器上启用身份验证,因为授予对代理的Heroku访问权限可授予Heroku访问代理的所有人。然后,heroku config:set SOME_SERVICE_SOCKS_PROXY=socks://user:pass@ip-10-1-2-3.ec2.internal,让您的应用程序查找该环境变量并做正确的事情。

您可能需要支付0.01美元/ GB用于代理和Heroku之间的区域内数据传输,因为从统计上来说,您的应用程序大多数时间都位于不同的可用区域。 Heroku dynos在生产中持续了大约24小时,因此虽然确切的位置会不可预测地跳舞,但它可能总计在$ 0.008 / GB范围内。您还将为微实例本身付费(尽管reserved instances使它们变得愚蠢便宜)以及通常的AWS Internet数据传输速率。