У нас есть пара сред в Engine Yard. Каждое из них запускает одно и то же приложение, но на разных этапах: производство, постановка и т. Д. Всего около 10 сред. Теперь мы хотим каждую неделю сбрасывать производственную базу и восстанавливать ее на остальных средах, чтобы иметь последние данные.Доступ к одной среде с другой в Engine Yard
Проблема в том, что экземпляр из одной среды не может обращаться к экземплярам в других средах. Есть два способа подключения, которые подходят для нас:
- SSH.
- Укажите хост RDS как параметр
--host
наmysqldump
. Хост RDS имеет формуenvironment.random_string.region.rds.amazonaws.com
в отличие от обычного имени хоста EC2.
Ни один из них не работает из коробки. Прямым решением было бы создать ключи RSA на всех серверах, которым нужен доступ, и добавить их в authorized_hosts
всем серверам, которым следует разрешить доступ. Однако это решение не масштабируется: как только мы добавляем или воссоздаем среду, нам нужно будет повторить процесс.
Есть ли лучшее решение?
[eyrestore] (https://support.cloud.engineyard.com/hc/en-us/articles/205408058-Restore-or-Load-a-Database#topic3) - это недавно выпущенный инструмент, предназначенный для помощи в решении этот случай использования в Engine Yard безопасным способом. Он доступен в последних версиях стеков Stable-v4 и Stable-v5. – tpol