Как изменить общедоступный параметр для Amazon RDS?

Когда вы создаете новый экземпляр emazon rds, вам предлагается выбрать true/false для опции "общедоступный", Есть ли способ изменить это для существующего экземпляра?

Ответы

Ответ 1

РЕДАКТИРОВАТЬ: Да, теперь можно изменить свойство "Доступно для общественности" с "Нет" на "Да". (И наоборот) Ура!

Старый ответ остался здесь для исторических целей: Нет.

Было бы неплохо, а? В качестве обходного пути ваш лучший вариант заключается в следующем:

  • Создайте моментальный снимок вашего экземпляра.
  • Запустите новый экземпляр из этого моментального снимка, используя параметр "Доступно публично".

Доказательства:

  • Дипломатия Джона G в этот пост мешает ему писать "Нет", как я, но его ответ "Вы можете создать снимок текущую базу данных RDS и запустить ее с общедоступным вариантом". что он предлагает обходное решение, потому что прямое решение недоступно.

Ответ 2

Я наткнулся на это, ища тот же ответ. К сожалению, похоже, что через 10 месяцев ответ по-прежнему "нет" - вы не можете изменить существующую БД, чтобы быть общедоступной.

Однако - вы можете приблизиться... Несмотря на то, что он не является общедоступным, он доступен для экземпляров EC2, которые вы запускаете в том же VPC. И вы можете настроить SSH-туннель с вашего компьютера через экземпляр EC2 для этого БД - эффективно предоставить вам доступ к экземпляру без необходимости его перезапуска из моментального снимка.

Вы не указали свою компьютерную ОС, поэтому я собираюсь предположить linux...

Сначала запустите экземпляр EC2, дайте ему доступ к вашему экземпляру RDS через группы безопасности, убедитесь, что вы можете войти в этот экземпляр EC2 и убедиться, что вы можете получить доступ к RDS DB из этого экземпляра EC2. Если какой-либо из них не удался, остальная часть этого не будет работать.

Затем настройте туннель:

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

Где rds.endpoint является URL-адресом вашего экземпляра RDS, ваш .ec2.host - это имя хоста вашего экземпляра EC2, а имя yourec2 - ваше имя пользователя на хосте EC2.

Затем вы можете подключиться к экземпляру RDS с помощью

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

Надеюсь, что это поможет следующему человеку, который наткнулся на это...

Ответ 3

Кажется, что AWS теперь позволяет изменить свойство доступности. Однако база данных, похоже, изменена, и в течение этого времени могут возникнуть проблемы с подключением.

Я не нашел ни одной статьи в блоге/новостях. Однако в моем аккаунте я могу это сделать.

Ответ 4

Вы можете создать туннель ssh в своем VPC или сделать переадресацию портов с помощью iptables, но лучшее и самое простое решение - создать прочитанную реплику с флагом PubliclyAccessible в true, а затем продвинуть реплика на master. Я рекомендую всегда использовать CNAME конечной точки RDS, поэтому вы можете изменить CNAME в DNS, не касаясь своего приложения.

Создание моментального снимка и его восстановление добавят ненужное время простоя в вашем приложении.

Посмотрите!

Ответ 5

Сначала узнайте, в каком VPC вы находитесь.

Если вы хотите сделать свой экземпляр RDS общедоступным, вам нужно включить атрибуты VPC в хосте DNS и разрешении.

Вы можете установить это, используя параметр PubliclyAccessible, который будет разрешен к общедоступному IP-адресу.

Это из документации AWS:

Amazon RDS поддерживает две платформы VPC: EC2-VPC и EC2-Classic. Платформа EC2-VPC имеет VPC по умолчанию, где все новые экземпляры DB если вы не указали иначе. Платформа EC2-Classic делает не имеют VPC по умолчанию, но, как и с любой из платформ, вы можете создавать ваш собственный VPC и укажите, что экземпляр DB будет находиться в этом VPC.

Ответ 6

В настоящее время переменная "PubliclyAccessible" недоступна в инструменте Cloudformation. Поэтому, если вы развертываете свой RDS с использованием шаблона CloudFormation, у вас нет выбора изменить этот параметр. По умолчанию "Нет". Но если вы используете консоль AWS, у вас есть выбор изменить значение "Публично доступное" на "Да" по умолчанию. Я думаю, что AWS должен обновить эту функцию "AWS:: RDS:: DBInstance" с этим параметром.

Спасибо.