Aws应用程序与Heroku Postgres数据库

时间:2012-11-11 20:09:22

标签: postgresql amazon-ec2 amazon-web-services

是否可以在aws EC2上运行应用程序,并让它的数据库在heroku的postgres上运行?
如果是的话,我应该考虑哪些缺点? 由于heroku托管在AWS,有没有办法知道运行我的数据库的机器的位置在哪里? 在数据库的同一区域托管我的应用程序有助于保持性能? 我想听听一些有关这方面的意见,我一直在搜索这个话题而没有太大的成功。

2 个答案:

答案 0 :(得分:4)

您可以使用traceroute在任意时间确定Heroku数据库的面向公众的位置......但不保证它会留在该位置,或者没有任何内部重新路由正在进行中。您可能希望直接与Heroku支持人员讨论如何确保您的Heroku数据库实例是您的AWS应用程序实例的本地实例,因为这肯定会使性能受益。看看你是否可以找到他们运行数据库的可用区域,或者至少是哪个主要区域,以及是否可以" pin"您的数据库实例到给定的区域/区域。

亚马逊的RDS看起来不错,但并不支持PostgreSQL。请继续唠叨他们。

如果性能不是特别重要,我可能只是在AWS上运行数据库。在EBS优化的实例上使用raid10预配置的IOPS EBS卷,您将获得良好的性能(但价格非常高);或者,您可以使用非崩溃安全的基于ssd的实例存储服务器,并依靠复制和备份来保证数据的安全。

答案 1 :(得分:3)

我对Heroku PostgreSQL没有任何经验。 通常,您当然可以在Amazon EC2上运行自己的服务并使用Heroku的托管数据库服务。

下行可能是

  • 无人保证,Herouku专门使用AWS,您可能无法确定云中的物理Heroku服务位置,因此您必须处理网络延迟
  • 除了您需要为数据库流量支付的外部流量费用之外,除非您与同一地区的同一可用区域中的服务器通信

我的建议(不知道关于Heroku的优点的任何细节)

如果您不想自己运行数据库服务器,请查看Amazon RDS。

http://aws.amazon.com/de/rds/

我在AWS上运行了大约70个服务器实例,RDS和EC2已经运行了一年多,而且我无法想象任何更简单的方法来保持您的运行