B C*_*nyn 8 database postgresql heroku amazon-web-services amazon-rds
我需要将我的Heroku应用程序指向我的AWS RDS数据库.我的RDS数据库已启动并正在运行,并且具有0.0.0.0/0访问权限的安全组.
目前,我已经删除了我的Heroku postgreSQL数据库,我试图将我的Heroku应用程序指向我的RDS数据库.出于某种原因,我的应用程序崩溃了.我认为我正在进行的步骤是在Heroku端设置我的DATABASE_URL.
假设我的数据库凭据是:
db instance:mydb
dbname:mydb
user:wcronyn
pass:password
我试过了:
heroku config:set DATABASE_URL = postgres:// wcronyn:password@mydb.XXXXXXX.us-east-1.rds.amazonaws.com:5432/mydb
我试图通过将.pem文件下载到我的配置文件夹然后引用它来设置权限:
DATABASE_URL = Postgres的:// wcronyn:password@mydb.XXXXXXX.us-east-1.rds.amazonaws.com:5432/mydb的sslca =配置/亚马逊RDS-CA-cert.pem&sslmode =需要加密&=真
我试过这两个数据库网址,但我的应用程序一直在崩溃.
有人可以概述我成功托管我的RDS数据库并将我的应用程序指向它的步骤吗?
And*_*y G 14
鉴于以下设置,以下步骤适用于我(2017年2月):
heroku-app-stage)stage)postgresql://username:password@awsrdshost:5432/dbname这有四个步骤:
下载并安装Amazon RDS SSL根证书
git push stage master)heroku run bash --app heroku-app-stage在dyno中查看文件)配置Heroku以引用根证书
heroku-app-stage,转到"设置"选项卡,然后单击"显示配置变量"?sslrootcert=rds-combined-ca-bundle.pem&sslmode=require.现在应该是新值postgresql://username:password@awsrdshost:5432/dbname?sslrootcert=rds-combined-ca-bundle.pem&sslmode=require请注意,此答案使用根证书; 可能有其他选项可能是你想要的,在这种情况下引用以下SO:
在RDS实例上启用SSL
psql postgres -h awsrdshost -p 5432 -U username,您应该在连接详细信息中看到SSL配置RDS安全组以允许所有传入的IP范围
注意:只有在使用使用VPC安全组的RDS设置时,说明才有意义
而已!
所用参考页面的链接:
亚马逊在Postgres上的SSL指南 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL
Heroku(非常简短)亚马逊RDS指南 https://devcenter.heroku.com/articles/amazon-rds
我想出了如何将heroku应用程序指向AWS RDS数据库。这使我能够拥有一个巨大的数据库,测试亚马逊的免费套餐一年,并对我的数据库实例进行更多定制。这个答案是对@pseudopeach 问题的回应(请原谅延迟)。
\n\n所以这是一个非常简单的设置。要为 Heroky 配置 RDS,您需要很好地了解 Heroku,并且需要非常了解 AWS。
\n\na) 设置您的区域。选择离您最近的地区,例如美国东部(俄亥俄州)
\n\nb) 然后单击服务选项卡并选择 rds
\n\nc) 我有一个 db ts micro(我认为这是免费套餐选项)
\n\nd) 进行 rds 设置,在其启动并运行后,单击“实例操作”并查看详细信息
\n\ne) 在这里,您将能够查看您的数据库用户名、数据库名称、端点(对我来说,这是一个类似于 [dbname].[randomstring].us-east-1.rds.amazon.com 的 url)和端口号。您需要这些东西加上 Heroku 端的数据库密码。
\n\na) 转到heroku.com 上的heroku 应用程序,然后设置\nb) 单击revealconfig 变量
\n\n典型的 Heroku 变量如下所示:
\n\nDATABASE_URL xxxxxx
\n\nHEROKU_POSTGRESQL_VIOLET_URL xxxxxx
\n\n郎xxxxxx
\n\nRACK_ENV 制作
\n\nRAILS_ENV 生产
\n\nSECRET_KEY_BASE xxxxxx
\n\n你需要彻底改变这些
\n\nDATABASE_URL [注意:这会更改为不同的长 url \xe2\x80\x93 我的看起来像这样分解以便于理解]
\n\npostgres://
\n\n[数据库用户名]:
\n\n[您的数据库密码]
\n\n@[端点]:
\n\n[您的数据库端口号]/
\n\n[数据库名称]
\n\n?sslca=config/amazon-rds-ca-cert.pem
\n\n&ssl模式=需要
\n\n&加密=真
\n\n示例数据库 URL:
\npostgres://jdoe:supersecretpassword@mydb.coua7574xvna.us-east-1.rds.amazonaws.com:5432/mydb?sslca=config/amazon-rds-ca-cert.pem&sslmode=require&encrypt=true
EXTERNAL_DATABASE amazon-rds-ca-cert.pem
\n\nEXTERNAL_DATABASE_CA amazon-rds-ca-cert.pem
\n\n郎(同)
\n\nRACK_ENV(相同)
\n\nRAILS_ENV(相同)
\n\nRDS_DB_PASS [您的数据库密码]
\n\nRDS_DB_PORT [您的数据库端口号即 5432]
\n\nRDS_READS_DB_NAME [数据库名称]
\n\nRDS_HOST [端点 url]
\n\nRDS_USER [数据库用户名]
\n\n这对我有用,我获得了一年免费的 RDS,数据库数量超过 10,000 行(我相信这是 Heroku 的免费套餐限制)。我使用 postgreSQL 作为数据库,因此这些配置可能偏向于 postgres。
\n| 归档时间: |
|
| 查看次数: |
4464 次 |
| 最近记录: |