当您创建一个新的amazon rds实例时,您可以为“可公开访问”选项选择true / false, 有没有办法为现有实例更改此内容?
答案 0 :(得分:19)
编辑:是的,现在可以将“公共可访问”属性从“否”更改为“是”。 (反之亦然)Hooray!
旧答案留在这里用于历史目的: 否。
虽然会很好,是吗?作为一种解决方法,您最好的选择如下:
证据:
答案 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)
答案 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"使用此参数进行操作。
感谢。