Доступ к одной среде из другой на машинном дворе

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

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

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

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

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


person shock_one    schedule 09.01.2015    source источник


Ответы (3)


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

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

person tpol    schedule 29.05.2015
comment
eyrestore — это недавно выпущенный инструмент, предназначенный для безопасного решения этого варианта использования в Engine Yard. Он доступен в последних версиях стеков Stable-v4 и Stable-v5. - person tpol; 22.05.2017

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

  • откройте входящий порт 21/22 из всех сред на этот HUB-сервер, чтобы все клиенты могли загрузить дамп базы данных.
  • откройте входящий порт 3306 или другой порт базы данных с Hub Server на RDS/базу данных.
  • запустите задание cron на сервере-концентраторе, чтобы получить дамп базы данных, отправить дамп в другую среду и так далее.
person BMW    schedule 09.01.2015

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

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

person greg_diesel    schedule 29.05.2015