Beanstalk не может подключиться к экземпляру rds
Я нахожусь в такой же лодке, как и пользователь в этом вопросе; Подключение среды elastic beanstalk к существующему экземпляру RDS
У меня есть проект Codestar (Django через Beanstalk), и я не могу заставить приложение получить доступ к любым экземплярам rds. При попытке развертывания на этапе тестирования (python manage.py test
) выдается следующее сообщение об ошибке;
django.db.utils.OperationalError: could not connect to server: Connection timed out
Is the server running on host "172.31.44.126" and accepting
TCP/IP connections on port 5432?
То, что я уже пробовал
- Запуск локально
прекрасно работает через django и psql
- используя ip-адрес и публичное имя хоста (name.key.eu-west-2.rds.amazonaws.com)
оба отлично работают локально и выдают одинаковое сообщение об ошибке при развертывании
- Подключение к rds через экземпляр EC2
Это работает нормально, подключаясь через локальный ip и имя. Такие запросы, как \d и \l возвращаются нормально, указывая на то, что экземпляр может видеть базу данных.
.
- Изменение vpc / подсетей
Оба экземпляра EC2 и rds находятся в одном vpc (есть только один) и подсети (eu-west, группа доступности 2a)
.
- Раскрутка присоединенного экземпляра beanstalk rds
Я пробовал выделенные экземпляры rds и подключенный экземпляр с помощью инструмента EBS, и приложение не смогло подключиться ни к одному из них.
Settings.py
if 'RDS_DB_NAME' in os.environ:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ['RDS_DB_NAME'],
'USER': os.environ['RDS_USERNAME'],
'PASSWORD': os.environ['RDS_PASSWORD'],
'HOST': os.environ['RDS_HOSTNAME'],
'PORT': os.environ['RDS_PORT'],
}
}
else:
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'db_user',
'PASSWORD': 'db_pwd',
'HOST': 'db_host',
'PORT': '5432',
}
}