2015-01-09 2 views
1

У нас есть пара сред в Engine Yard. Каждое из них запускает одно и то же приложение, но на разных этапах: производство, постановка и т. Д. Всего около 10 сред. Теперь мы хотим каждую неделю сбрасывать производственную базу и восстанавливать ее на остальных средах, чтобы иметь последние данные.Доступ к одной среде с другой в Engine Yard

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

  • SSH.
  • Укажите хост RDS как параметр --host на mysqldump. Хост RDS имеет форму environment.random_string.region.rds.amazonaws.com в отличие от обычного имени хоста EC2.

Ни один из них не работает из коробки. Прямым решением было бы создать ключи RSA на всех серверах, которым нужен доступ, и добавить их в authorized_hosts всем серверам, которым следует разрешить доступ. Однако это решение не масштабируется: как только мы добавляем или воссоздаем среду, нам нужно будет повторить процесс.

Есть ли лучшее решение?

ответ

0

Возможно ли создать отдельный HUB-сервер с FTP или SFTP-сервисом?

  • открытый входящий порт 21/22 от всех сред к этому серверу HUB, поэтому все клиенты могут загрузить дамп базы данных.
  • открытый входящий порт 3306 или другой порт базы данных с сервера концентратора на RDS/базу данных.
  • Запустите работу cron на сервере-концентраторе, чтобы получить дамп db, нажмите дамп в другую среду и так далее.
1

Существует способ настроить специальный файл конфигурации резервного копирования в других экземплярах, который позволит вам напрямую обращаться к веществу производственного S3 из другой среды в той же учетной записи. С этим связан некоторый риск, так как он также технически позволит вашей непроизводственной среде редактировать содержимое производственного ковша.

В зависимости от особенностей вашей конфигурации могут быть другие возможности. Ваш лучший вариант - открыть билет с помощью команды поддержки машинного отделения, чтобы мы могли более подробно обсудить ваши потребности.

+0

[eyrestore] (https://support.cloud.engineyard.com/hc/en-us/articles/205408058-Restore-or-Load-a-Database#topic3) - это недавно выпущенный инструмент, предназначенный для помощи в решении этот случай использования в Engine Yard безопасным способом. Он доступен в последних версиях стеков Stable-v4 и Stable-v5. – tpol

0

Резервное копирование вашей продукции в ведро S3, созданное для этой цели. Используйте роли IAM для управления тем, как ваши другие среды могут подключаться к одному и тому же ведру.

Поскольку сервер вашей производственной среды должен быть известен, вы можете использовать сценарий для mysqldump, чтобы один сервер использовался в общем ведре S3. После завершения ваши другие серверы могут собирать данные из этого ведра S3 с использованием должным образом разрешенной роли IAM.

Смежные вопросы