Проблемы, соединяющие приложение Heroku с экземпляром Amazon RDS
-
09-10-2019 - |
Вопрос
Я использую Amazon RDS в первый раз, и я следовал в документах Heroku, чтобы получить мое приложение, используя экземпляр RDS. Пока я создал экземпляр, и я настроил аддона, используя формат:
$ heroku addons:add amazon_rds url=mysql://user:pass@rdshostname.amazonaws.com/databasename
После запуска Heroku Rake DB: мигрировать я получил
!!! Грабли водителя MySQL.RB прерваны! Нет такого файла для загрузки - mysql
Поэтому я установил GEM MySQL. Делать то же самое снова, я получил ошибку:
Не удается подключиться к MySQL Server на 'myapp.cqslpaxxqrok.eu-west-hist.rds.amazonaws.com' (110)
Я вижу, что есть отметка о том, что в США в США - Восточный регион для группы безопасности Heroku, чтобы контролировать доступ или что-то. Могу ли я не использовать европейский экземпляр?
Решение
Heroku изменил свою процедуру, чтобы позволить серверам Heroku подключаться к экземплярам RDS. Принятый ответ на этот вопрос больше не правда.
Вы должны предоставить Heroku Dynos доступ к вашему экземпляру RDS. Рекомендуемый способ сделать это состоит в том, чтобы настроить экземпляр RDS, чтобы принять только зашифрованные SSL-соединения и настроить группу безопасности для вашего экземпляра, чтобы разрешить вход от всех IPS.
Ранее Heroku опубликовал свой идентификатор учетной записи AWS и название группы безопасности как способ предоставления доступа к экземпляру AWS RDS. Это больше не рекомендуется.
Другие советы
Нет, вы не можете использовать европейский экземпляр. Heroku доступен только на восточной зоне США, и вам нужно иметь возможность добавить Heroku в вашу зону безопасности для работы экземпляра RDS, который я полагаю, требуется, чтобы вы были в той же зоне. Более того, вы хотите быть в той же зоне, что и HEROKU для задержки и соображений безопасности (в противном случае ваш трафик базы данных будет путешествовать через Интернет).