Я пытаюсь подключиться к моей базе данных Redshift (находится в N. Вирджиния регион) из функции Lambda (расположен в Ирландия регион). Но при попытке установить соединение я получаю сообщение об ошибке тайм-аута:
"errorMessage": "2019-10-20T13:34:04.938Z 5ca40421-08a8-4c97-b730-7babde3278af Task timed out after 60.05 seconds"
Я внимательно следил за решением, предоставленным для AWS Lambda-тайм-аута при подключении к RedShift , но основная проблемазаключается в том, что предоставленное решение действительно для услуг, расположенных в одном и том же VPC (и, следовательно, в том же регионе).
В ходе дальнейших исследований я наткнулся на Межрегиональный пиринг VPC и следовал приведенным рекомендациямв Документы AWS . Но после настройки пиринга VPC я также не могу подключиться к Redshift
Вот некоторые подробности, которые, на мой взгляд, могут быть полезны для понимания ситуации:
- Кластер Redshift общедоступный , работает порт 8192 и имеет настроенный VPC (скажем, VPC1)
Лямбда-функция расположена в другом VPC (скажем, VPC2)
Существует соединение пиринга VPC между VPC1 и VPC2
Блоки CIDR IPv4 обоих VPC различны и были добавлены в таблицы маршрутизации друг друга (VPC1 имеет 172.31.0.0 / 16 диапазон и VPC2 имеет 10.0.0.0 / 16 диапазон)
IAM Роль выполнения для функции Lambda имеет Полный доступ службы Redshift
В VPC1 у меня есть группа безопасности (SG1), у которой есть правило входящих вызовов тип : Redshift , протокол : TCP , порт : 5439 и source : 10.0.0.0 / 16
В VPC2 я использую группу безопасности по умолчанию с правилом исходящих сообщений 0.0.0.0 / 0
В Lambda я предоставляю частный IP-адрес Redshift ( 172.31.xx ) в качестве имени хоста и 5439 в качестве порта (не8192!)
Лямбда-функция в NodeJS 8.10, и я использую пакет node-redshift для подключения к Redshift
После всего этого я попытался получить доступ к Redshift как с общедоступного IP-адреса, так и через его DNS-имя (с портом 8192)
Пожалуйста, помогите мне установить соединение между этими службами.