Имя или служба Amazon RDS Postgres неизвестны

У меня 2 инстанса Amazon EC2. Я использую один для разработки. Я запустил новый, и хочу, чтобы он работал должным образом, чтобы я мог использовать его для создания AMI. Я использую Django с серверной частью Postgres в экземпляре RDS. Экземпляр RDS работает под управлением Postgresql 9.4.4. Экземпляр EC2 для разработки (который работает) работает под управлением Postgresql 9.3.9. Новый экземпляр работает под управлением Postgresql 9.3.10.

В экземпляре разработки у меня нет проблем с подключением и использованием экземпляра RDS с командной строкой:

psql --host django.xxxxxxxxx.us-east-1.rds.amazonaws.com  --port 5432 --username django_login  --dbname django_db

Но если я использую ту же команду в новом экземпляре, я получаю

psql: не удалось перевести имя хоста "django.xxxxxxxxx.us-east-1.rds.amazonaws.com" в адрес: имя или служба неизвестны

Оба экземпляра EC2 находятся в одной группе безопасности (мастер запуска-1). RDS имеет группу безопасности, в которой все TCP, все UDP и все IMCP установлены с запуском-мастером-1 в качестве источника.

Экземпляр разработки находится в us-east-1d. Новый экземпляр находится в us-east-1c. Экземпляр RDS находится в us-east-1d. Я подозреваю, что это может быть проблемой, но, насколько я понимаю документацию RDS, все должно быть в порядке. Однако если проблема в этом, знаете ли вы, как изменить зону доступности инстанса EC2?

Я пробовал это с экземпляром RDS, установленным в частный, а затем в открытый. Это не имело значения.

Любые идеи будут оценены по достоинству.


person Nancy Poekert    schedule 01.12.2015    source источник
comment
Есть ли у нового сервера общедоступный IP-адрес?   -  person Mark B    schedule 01.12.2015
comment
Я попытался сделать RDS общедоступным и закрытым с тем же результатом. Экземпляры EC2 имеют как публичные, так и частные адреса. Я использую ssh для входа в оба экземпляра с частным IP-адресом.   -  person Nancy Poekert    schedule 02.12.2015


Ответы (1)


Проблема была в том, как я и подозревал. Экземпляр находился в другой подсети. Я сделал ami из экземпляра в us-east-1c, создал новый экземпляр в подсети us-east-1d из ami. Теперь я могу подключиться из нового экземпляра.

Кстати, когда вы создаете экземпляр, не сразу очевидно, что вы должны настроить подсеть в соответствии с вашими другими экземплярами. Ищите эту опцию на странице конфигурации экземпляра.

person Nancy Poekert    schedule 02.12.2015
comment
Ваш экземпляр RDS должен быть доступен более чем из одной подсети, если вы не сделали что-то, чтобы заблокировать трафик в других подсетях. В конфигурации VPN по умолчанию вы сможете получить доступ к своему экземпляру RDS из всех подсетей, что желательно, поскольку вы хотите распределить свои экземпляры по подсетям / зонам доступности для избыточности. - person Mark B; 02.12.2015
comment
Ты прав. Это я понял из документации. Я думал, что проверил каждую конфигурацию для группы безопасности RDS и групп безопасности EC2. Я еще раз проверю, нет ли плохих настроек. Я не хочу создавать еще один экземпляр для проверки. - person Nancy Poekert; 03.12.2015
comment
Экземпляры EC2 совместно используют launch-wizzard-1. Так что я не думаю, что это была проблема. В отчаянии я даже настроил RDS sg на прием всего трафика. Вот sg для RDS: All TCP TCP 0-65535 sg-xxxxxxxx (launch-wizard-1) PostgreSQL TCP 5432 sg-xxxxxxxx (launch-wizard-1) Весь трафик Все Все sg-xxxxxxxx (launch-wizard-1 ) Все UDP UDP 0-65535 sg-xxxxxxxx (launch-wizard-1) Все ICMP Все N / A sg-xxxxxxxx (launch-wizard-1) - person Nancy Poekert; 03.12.2015
comment
Совершенно уверен, что это не проблема группы безопасности. Вам следует посмотреть списки ACL подсети и таблицы маршрутизации в VPC. - person Mark B; 03.12.2015
comment
Спасибо за вашу помощь. RDS использует VPC по умолчанию со всеми четырьмя перечисленными подсетями. ACL также используется по умолчанию для всех четырех подсетей. - person Nancy Poekert; 03.12.2015