Чтобы экземпляр RDS в VPC был «общедоступным» (Интернет) доступным, все подсети, к которым он подключен, должны быть «общедоступными», а не «частными» подсетями VPC.
Публичная подсеть по существу определяется как подсеть, в которой объект Интернет-шлюза (igw-xxxxxxxx) используется в качестве маршрута к «Интернету» или, по крайней мере, к любым адресатам Интернета, к которым вам необходимо получить доступ. Как правило, это адрес назначения 0.0.0.0/0
. Общедоступные подсети должны использоваться для экземпляров (включая RDS), которые будут иметь связанный общедоступный IP-адрес, и не должны использоваться для экземпляров, которые не будут иметь общедоступных IP-адресов, поскольку частные адреса не работают через Интернет без перевода.
В отличие от этого, в частной подсети таблица маршрутизации сконфигурирована так, чтобы достигать мест назначения в Интернете через другой экземпляр EC2, обычно экземпляр NAT. Это показано в таблице маршрутизации VPC, связанной с этой подсетью как i-xxxxxxxx, а не «igw». Этот компьютер (который на самом деле будет находиться в другой подсети, чем тот, для которого он выступает в качестве пункта назначения маршрута) служит транслятором, позволяя экземплярам только для частного IP прозрачно делать исходящие интернет-запросы с использованием общедоступного компьютера NAT IP для своих интернет-потребностей. Экземпляры с публичным IP-адресом не могут должным образом взаимодействовать с Интернетом, если они подключены к частной подсети.
В данном конкретном случае подсети, связанные с экземпляром RDS, на самом деле не были настроены как нечто, что можно было бы просто классифицировать как частную или общедоступную подсеть, поскольку у подсети вообще не было маршрута по умолчанию. Добавление маршрута по умолчанию через объект «igw» или, как это сделал OP, добавление статического маршрута к IP-адресу в Интернете, где было необходимо подключение, в таблицу маршрутов VPC для подсетей устраняет проблему подключения.
Однако ... Если у вас возникла похожая проблема, вы не можете просто изменить таблицу маршрутов или построить новые таблицы маршрутов и связать с ними подсети, если у вас больше ничего не работает правильно в подсетях, потому что изменение может быть разумным ожидается сломать существующую связь. В этом случае правильный путь - обеспечить экземпляры в разных подсетях правильными записями таблицы маршрутов.
При настройке VPC идеальным является четкое определение ролей подсети и полное предоставление необходимых маршрутов при первом запуске VPC. Также важно помнить, что вся VPC "LAN" является программно-определяемой сетью. В отличие от физической сети, где маршрутизатор может стать узким местом, и зачастую целесообразно размещать машины с большим трафиком среди них в одной подсети ... подсети, пересекающие трафик, не имеют недостатка в производительности для VPC. Машины должны быть размещены в подсетях, которые соответствуют требованиям IP-адресации машины - публичный адрес, публичная подсеть; нет публичного адреса, частная подсеть.
Дополнительную информацию о логистике частных / общедоступных подсетей в VPC можно найти в разделе « Зачем нам нужна частная подсеть в VPC» (в разделе «Переполнение стека»).
(110)
об ошибке означает «тайм-аут соединения», так что это определенно проблема IP-соединения. Ваш экземпляр RDS показывает, что он связан с двумя подсетями. Каков маршрут по умолчанию для этих двух подсетей в консоли VPC? Это igw-xxxxxxxx или i-xxxxxxxx?