SSH-туннелирование к удаленной БД из Heroku?

Я думаю о развертывании небольшого приложения Rails на Heroku. Чтобы сэкономить деньги, я бы хотел, чтобы мое приложение использовало внешнюю базу данных (к которой у меня есть свободный доступ), а не базу данных, размещенную на Heroku. Проблема в том, что бесплатная база данных принимает только локальные соединения. Чтобы получить к нему доступ из Heroku, мне нужно сделать это через туннель SSH.

Возможно ли, чтобы приложение Heroku сохраняло свои данные во внешней БД, доступ к которой осуществляется через SSH? Если да, то как?

(Для бонусных баллов, вот второй вопрос: хорошая ли это идея? С одной стороны, эта схема избавит меня от необходимости платить за базу данных Heroku. С другой стороны, это означает необходимость шифровать весь трафик моей базы данных. Я представляю что это значительно замедлит работу моих веб-динамиков и уменьшит количество запросов, которые они могут обслуживать. Будут ли деньги, которые я сэкономлю на базе данных, потрачены на оплату большего количества динамометров? Могу ли я выйти вперед, сделав это?)


person dB'    schedule 11.08.2012    source источник


Ответы (2)


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

Ваш лучший вариант, вероятно, будет использовать уровни разработки или старта Heroku. Уровень бесплатной разработки будет работать, если ваша база данных содержит менее 10 000 строк. Их начальный уровень стоимостью 15 долларов в месяц работает до 1 000 000 строк.

person sgrif    schedule 12.08.2012
comment
Ответ в принципе правильный, но задержка является результатом производительности сети, а не самого туннеля. При правильном создании при установлении туннеля SSH указанный порт можно использовать повторно; например, повторная аутентификация не происходит при каждом запросе. - person Jacob Budin; 02.01.2014
comment
@JacobBudin Можем ли мы вообще открыть туннель SSH на Heroku? Учитывая, что для этого требуется открытие порта, я не уверен, что это разрешено. - person Adrien; 12.03.2014
comment
Ответ в корне неверный: вы МОЖЕТЕ туннелировать из Heroku. Я бы не стал этого делать по причинам, которые хочет ОП, но бывают случаи, когда вам нужно, например. доступ к защищенной SSH базе данных. См. stackoverflow.com/questions/21575582/ssh-tunneling -from-heroku/ для всего рецепта. - person fearless_fool; 15.02.2015

Да, ты можешь.

Возможно настроить туннель на Heroku для внешней базы данных.

Вы не хотите делать это по причинам, упомянутым в ОП (чтобы не платить за локальную базу данных) по причинам, упомянутым @sgrif (это было бы мучительно медленно и, вероятно, ничего не сохраняло бы)

Но есть законные причины для туннелирования во внешнюю базу данных, например, если данные находятся в устаревшей системе, которую необходимо проанализировать.

Вместо того, чтобы просто повторяться (это долго), вот ссылка на рецепт, который сработал для меня: >SSH-туннелирование от Heroku

person fearless_fool    schedule 08.12.2014