#python #django #amazon-web-services #amazon-ec2 #amazon-rds
Вопрос:
Есть ли способ подключить Django к частному RDS, подключенному к бастиону через SSH?
В моей текущей инфраструктуре AWS есть бастион EC2 в общедоступной подсети и две частные подсети, в которых находится база данных postgres RDS.
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "aaaa",
"USER": "bbbb",
"PASSWORD": "cccc",
"HOST": "xxx.zzz.us-east-z.rds.amazonaws.com", # RDS Endpoint
"PORT": 5432,
}
}
используя терминал, я могу подключиться по ssh к бастиону и проверить соединение с RDS, хорошо.
Теперь я хочу подключить настройки Django выше к RDS, так что:
- я подключил свой RDS к https://dbeaver.com/ программное обеспечение (результат говорит: подключено!)
- На стороне Джанго сейчас, когда я редактировал settings.py выше с учетными данными AWS RDS и запущенным django
python manage.py runserver
я получаю следующую ошибку:
django.db.utils.OperationalError: could not translate host name "xxx.zzz.us-east-z.rds.amazonaws.com" to address: nodename nor servname provided, or not known
.
Я ожидал, что, поскольку программное обеспечение DBeaver подключено к моему личному RDS, я смогу подключить Django к экземпляру удаленного рабочего стола. (Я использовал этот подход с общедоступным RDS)
Есть ли что-то, чего мне не хватает при подходе?
Комментарии:
1. У меня та же проблема … вы решили эту проблему
Ответ №1:
Вам необходимо создать SSH-туннель с помощью putty или SSH-клиентов
https://www.skyverge.com/blog/how-to-set-up-an-ssh-tunnel-with-putty/
затем подключитесь к Django, используя ссылку ниже
Комментарии:
1. хм, я попробую замазку, но, используя DBeaver выше, если я не ошибаюсь, достигну той же цели, нет?
Ответ №2:
Это проблема с DNS. Если вы используете IP-адреса для подключения, вы, вероятно, решите эту проблему.
Но если вам нужно разрешение имен для базы данных, я бы посоветовал вам также запустить django в AWS, чтобы использовать разрешение частного dns.
Комментарии:
1. Конечная точка RDS выше-это IP-адрес базы данных, я обычно использовал его в общедоступном экземпляре раньше