如何更改Amazon RDS的可公开访问选项?

时间:2014-04-04 15:09:37

标签: amazon-web-services amazon-rds

当您创建一个新的amazon rds实例时,您可以为“可公开访问”选项选择true / false, 有没有办法为现有实例更改此内容?

8 个答案:

答案 0 :(得分:19)

编辑:是的,现在可以将“公共可访问”属性从“否”更改为“是”。 (反之亦然)Hooray!

旧答案留在这里用于历史目的: 否。

虽然会很好,是吗?作为一种解决方法,您最好的选择如下:

  • 创建实例的快照。
  • 使用Publicly Accessible选项从此快照启动新实例。

证据:

  • 约翰·G在this post的外交使他无法像我一样写“不”,但他的回答是“你可以创建当前RDS数据库的快照并使用可公开访问的选项启动它”。很明显他提供了解决方法,因为直接解决方案不可用。

答案 1 :(得分:6)

我偶然发现了同样的答案。可悲的是,看起来10个月之后答案仍然是“不” - 您无法将现有数据库更改为公开可用。

然而 - 您可以近距离接触......即使它不公开,也可以在同一个VPC中启动EC2实例。您可以从计算机通过EC2实例到该数据库设置SSH隧道 - 有效地让您无需从快照重新启动实例即可访问该实例。

你没有指定计算机的操作系统,所以我很方便地假设linux ...

首先,启动EC2实例,通过安全组授予其访问RDS实例的权限,确保您可以登录该EC2实例,并确保可以从该EC2实例访问RDS数据库。如果其中任何一个失败,其余部分将无效。

接下来,设置隧道:

ssh -v -N -L 1234:rds.endpoint:3306 yourec2username@your.ec2.host

其中rds.endpoint是RDS实例的URL,your.ec2.host是EC2实例的主机名,yourec2username是EC2主机上的用户名。

然后,您可以使用

连接到RDS实例
mysql -p -u dbuser -h 127.0.0.1 -P 1234 dbname --password=dbpassword

希望能帮助下一个偶然发现的人...

答案 2 :(得分:4)

似乎AWS现在允许更改辅助功能属性。但是,数据库似乎已被修改,在此期间最终可能会出现连接问题。

我没有找到任何关于它的博客/新闻文章。但是在我的帐户中,我能够做到。

答案 3 :(得分:3)

这是一个老问题,但这也许可以帮助某人。

不需要删除和恢复数据库,直接在AWS控制台打开数据库实例,点击Modify,寻找Additional connectivity configuration,后面就只有两个选项{{1} } 和 Publicly accessible。选择您的选项,等待几秒钟修改应用到您的实例和 eureka,完成。

欲了解更多信息,请查看 the official docs

答案 4 :(得分:1)

您可以在VPC中创建ssh隧道,或者使用iptables进行端口转发但是,最好也是最简单的解决方案是创建一个具有PubliclyAccessible标志的只读副本为true,然后将副本提升为master。 我建议始终使用RDS端点的CNAME,这样您就可以在不触摸应用的情况下更改DNS中的CNAME。

制作快照并将其恢复将在您的应用中添加不必要的停机时间。

看!

答案 5 :(得分:1)

我无法找到“可公开访问”设置。要找到它,请选择实例,单击“修改”,然后单击其他配置。这将展开,您将看到“可公开访问”选项。

enter image description here

答案 6 :(得分:0)

首先找出你在哪个VPC。

如果您希望将RDS实例设为公共可访问,则必须在DNS主机和解析中启用VPC属性。

您可以使用将解析为公共IP地址的参数PubliclyAccessible来设置此项。

这是来自AWS文档:

  

Amazon RDS支持两个VPC平台:EC2-VPC和EC2-Classic。该   EC2-VPC平台具有默认VPC,其中包含所有新数据库实例   创建除非您另行指定。 EC2-Classic平台可以   没有默认的VPC,但与任何一个平台一样,您可以创建   您自己的VPC并指定数据库实例位于该VPC中。

答案 7 :(得分:-2)

截至目前为止" PubliclyAccessible"变量在Cloudformation工具中不可用。因此,如果您使用CloudFormation模板部署RDS,则无法更改此参数。它默认为" No"。但是,如果您使用的是AWS控制台,则可以选择更改" Publicly Accessible"从默认值开始,值为“是”。我认为AWS应该更新云形态" AWS :: RDS :: DBInstance"使用此参数进行操作。

感谢。