У меня установлено приложение Django и база данных PostgreSQL на двух экземплярах EC2 в одном и том же VPC.Приложение находится в случае, когда подсеть подключена к интернет-шлюзу;база данных находится в экземпляре с подсетью, у которой нет интернет-шлюза.
Частный IP-адрес экземпляра приложения - 10.0.0.164;частный IP-адрес экземпляра базы данных - 10.0.1.136.
Когда я пытаюсь подключить свое приложение Django к базе данных, я получаю сообщение об ошибке
не удалось подключиться к серверу: соединение отклонено
Сервер работает на хосте "10.0.1.136" и принимает соединения TCP / IP через порт 5432?
Однако я разрешил входящий трафик TCP через порт 5432 в экземпляре базы данных.Правила моей группы безопасности для экземпляра, на котором размещена база данных:
Входящий: разрешить весь трафик TCP и ICMP IPV4 и IPV6 во все порты с внутреннего IP-адреса экземпляра, на котором размещено приложение Django (10.0.0.164/32)
(снимок экрана с моими входящими правилами https://imgur.com/a/HNbrIDm)
Исходящий: разрешить весь трафик во всех портах в любом месте
Мой pg_hba.conf
файл в экземпляре базы данных EC2:
# Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 10.0.0.164/32 trust
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local articles postgres md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
Мой файл postgresql.conf
имеет адрес прослушивания '10 .0.0.164, 127.0.0.1' и порт '5432'.
Настройки моей базы данных в Django settings.py
:
ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'articles',
'USER': 'postgres',
'PASSWORD': 'password',
'HOST': '10.0.1.136',
'PORT': '5432',
Что еще можно сделать, чтобы экземпляр базы данных принял соединение?
РЕДАКТИРОВАТЬ: мои экземпляры EC2 работают под управлением Ubuntu 16.04
РЕДАКТИРОВАТЬ: это то, что я получил от запуска sudo lsof -nP -i | grep LISTEN
в экземпляре базы данных: postgres 1823 postgres 6u IPv4 19766 0t0 TCP 127.0.0.1:5432 (LISTEN)
Я запустил sudo ufw allow 5432
и все та же ошибка
Когда я запустил netstat -nlt
в экземпляре базы данных, я не вижу порт 5432