Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I change the publicly accessible option for Amazon RDS?

When you create a new amazon rds instance, you are offered to choose true/false for the "publicly accessible" option, Is there a way to change this for an existing instance?

like image 211
Ron Gross Avatar asked Apr 04 '14 15:04

Ron Gross


2 Answers

EDIT: Yes, it is now possible to change the "Publicly Accessible" property from "No" to "Yes". (And vice-versa) Hooray!

Old answer left here for historic purposes: No.

It would be nice though, eh? As a workaround your best option is the following:

  • Create a snapshot of your instance.
  • Launch a new instance from this snapshot using the Publicly Accessible option.

Evidence:

  • John G's diplomacy in this post prevents him from writing "No" as I did, but the his answer "You can create a snapshot of the current RDS database and launch it with the publicly accessible option." makes it pretty clear that he's offering the workaround because the direct solution is not available.
like image 157
mdahlman Avatar answered Sep 30 '22 08:09

mdahlman


I stumbled across this looking for the same answer. Sadly it looks like 10 months later the answer is still "no" - you can't change an existing DB to be publicly available.

However - you can come close... Even though it isn't publicly available, it is available to EC2 instances you launch in that same VPC. And you can set up a SSH tunnel from your computer through an EC2 instance to that DB - effectively giving you access to the instance without having to relaunch it from a snapshot.

You didn't specify your computer's OS, so I'm conveniently going to assume linux...

First, launch an EC2 instance, give it access to your RDS instance via security groups, make sure you can log in to that EC2 instance, and make sure you can access the RDS DB from that EC2 instance. If any of that fails, the rest of this won't work.

Next, setup a tunnel:

ssh -v -N -L 1234:rds.endpoint:3306 [email protected] 

Where rds.endpoint is the URL for your RDS instance, your.ec2.host is the host name for your EC2 instance, and yourec2username is your username on the EC2 host.

You can then connect to the RDS instance with

mysql -p -u dbuser -h 127.0.0.1 -P 1234 dbname --password=dbpassword 

Hope that helps the next person that stumbles across this...

like image 41
Gatos Avatar answered Sep 30 '22 07:09

Gatos