【问题标题】:Connecting to Amazon AWS PostgreSQL database from R session从 R 会话连接到 Amazon AWS PostgreSQL 数据库
【发布时间】:2019-09-26 18:08:11
【问题描述】:

我有一个在 Amazon AWS 上运行的数据库实例。我使用 RPostgreSQL 包将我的 R 会话连接到我的 AWS 数据库。

我的问题是,每次我尝试连接到我的数据库实例时,在一段时间没有这样做后,我都会收到“连接超时”错误。

然后我可以使用浏览器转到我的 AWS 控制台,为我的安全组编辑入站和出站规则以允许我的 IP 入站和出站访问。然后我可以再次连接就好了。

但是如果我有一两天没有在我的数据库上工作,当我尝试连接到我的数据库时,它就不起作用,并且入站/出站访问的权限不再匹配我的 IP 地址(我确定这是问题的原因)。

那么...我的 IP 地址会改变吗?还是我对安全组的入站/出站权限所做的编辑未正确保存?

为了清楚起见,以下是事情进展的顺序:

  • 几天没在 DB 上工作,尝试从我的 R 会话连接。我收到一个错误。
  • 使用浏览器转到 AWS 控制台并通过选择“我的 IP”来编辑我的安全组的入站/出站规则
  • 再次尝试从我的 R 会话连接到我的数据库。万岁!它有效。
  • 几天后 - 再次拿起项目,尝试从 R 重新连接到我的 AWS DB,但它不再工作...
  • 重复这个疯狂的循环
  • 在 SO 上发帖希望天使帮助我

这不是一个使人衰弱的问题,只是每次我想连接到我的 AWS DB 时都必须重新进行安全设置非常烦人。

提前感谢您提供的任何帮助!

【问题讨论】:

  • 当然很容易判断您的 IP 是否在发生变化 - 只需写下您设置时的内容,下次参考即可。您可以使用主机名而不是 ip 作为安全规则吗>

标签: r postgresql amazon-web-services amazon-rds aws-security-group


【解决方案1】:

这取决于,但很可能是您的 IP 正在改变。大多数 ISP 都有动态 IP 分配,这意味着如果路由器重新启动,IP 可以更改。

因此建议在安全组设置中使用 DNS 名称而不是 IP 地址。

记下您的 IP 地址并在两天后查看会更容易。 您能在安全组页面中看到您两天前添加的 IP 地址吗?如果是,你可以去谷歌“我的 IP 是什么”,看看这两个值是否相同。安全组 (SG) 设置不会自行刷新或更改(除非您正在分配新的安全组)。

您还可以尝试另一件事。允许所有连接(0.0.0.0)只是为了测试。两天后,再试一次。如果有效,则说明 IP 地址更改存在问题。

【讨论】:

  • 谢谢,这很有帮助。我的 IP 地址肯定在变化(我们的互联网很糟糕,我们必须经常重启路由器)。为什么使用 DNS 名称是更好的选择?是因为这是一个不会改变的价值吗?现在我将使用“所有连接”选项,但理想情况下,我想输入一些可以识别我的本地机器并允许持续访问的内容。再次感谢!
  • 这是不可能的。您可以提供 IP 地址或逻辑 DNS 名称。如果是您的家庭连接或个人连接,恐怕您除了每次更改时输入 IP 地址或使用 0.0.0.0 之外没有太多选择(不推荐,除非它只是证明或概念或学习相关)。对于工作,通常网络有外部世界看到的 IP 地址列表。您只需将列表中的所有 IP 都提供到安全组中。
  • 太好了,谢谢维西恩!由于它只是一个副项目,安全设置目前并不重要,我将使用“所有连接”选项。感谢您的帮助!
  • 太棒了。如果答案对你有用,请不要忘记接受它!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 2017-04-12
  • 2014-03-04
相关资源
最近更新 更多