Подключите Redshift и AWS Lambda, расположенные в разных регионах - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь подключиться к моей базе данных 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

Вот некоторые подробности, которые, на мой взгляд, могут быть полезны для понимания ситуации:

  1. Кластер Redshift общедоступный , работает порт 8192 и имеет настроенный VPC (скажем, VPC1)
  2. Лямбда-функция расположена в другом VPC (скажем, VPC2)

  3. Существует соединение пиринга VPC между VPC1 и VPC2

  4. Блоки CIDR IPv4 обоих VPC различны и были добавлены в таблицы маршрутизации друг друга (VPC1 имеет 172.31.0.0 / 16 диапазон и VPC2 имеет 10.0.0.0 / 16 диапазон)

  5. IAM Роль выполнения для функции Lambda имеет Полный доступ службы Redshift

  6. В VPC1 у меня есть группа безопасности (SG1), у которой есть правило входящих вызовов тип : Redshift , протокол : TCP , порт : 5439 и source : 10.0.0.0 / 16

  7. В VPC2 я использую группу безопасности по умолчанию с правилом исходящих сообщений 0.0.0.0 / 0

  8. В Lambda я предоставляю частный IP-адрес Redshift ( 172.31.xx ) в качестве имени хоста и 5439 в качестве порта (не8192!)

  9. Лямбда-функция в NodeJS 8.10, и я использую пакет node-redshift для подключения к Redshift

  10. После всего этого я попытался получить доступ к Redshift как с общедоступного IP-адреса, так и через его DNS-имя (с портом 8192)

Пожалуйста, помогите мне установить соединение между этими службами.

...