是否可以在aws EC2上运行应用程序,并让它的数据库在heroku的postgres上运行?
如果是的话,我应该考虑哪些缺点?
由于heroku托管在AWS,有没有办法知道运行我的数据库的机器的位置在哪里?
在数据库的同一区域托管我的应用程序有助于保持性能?
我想听听一些有关这方面的意见,我一直在搜索这个话题而没有太大的成功。
答案 0 :(得分:4)
您可以使用traceroute
在任意时间确定Heroku数据库的面向公众的位置......但不保证它会留在该位置,或者没有任何内部重新路由正在进行中。您可能希望直接与Heroku支持人员讨论如何确保您的Heroku数据库实例是您的AWS应用程序实例的本地实例,因为这肯定会使性能受益。看看你是否可以找到他们运行数据库的可用区域,或者至少是哪个主要区域,以及是否可以" pin"您的数据库实例到给定的区域/区域。
亚马逊的RDS看起来不错,但并不支持PostgreSQL。请继续唠叨他们。
如果性能不是特别重要,我可能只是在AWS上运行数据库。在EBS优化的实例上使用raid10预配置的IOPS EBS卷,您将获得良好的性能(但价格非常高);或者,您可以使用非崩溃安全的基于ssd的实例存储服务器,并依靠复制和备份来保证数据的安全。
答案 1 :(得分:3)
我对Heroku PostgreSQL没有任何经验。 通常,您当然可以在Amazon EC2上运行自己的服务并使用Heroku的托管数据库服务。
下行可能是
我的建议(不知道关于Heroku的优点的任何细节)
如果您不想自己运行数据库服务器,请查看Amazon RDS。
我在AWS上运行了大约70个服务器实例,RDS和EC2已经运行了一年多,而且我无法想象任何更简单的方法来保持您的运行