Не удается подключить AWS Data Pipeline к Redshift

У меня есть запрос, который я хотел бы регулярно запускать в Redshift. Я настроил для него AWS Data Pipeline.

Моя проблема в том, что я не могу понять, как получить доступ к Redshift. Я все время получаю сообщение об ошибке «Не удается установить соединение». У меня есть Ec2Resource, и я попытался включить подсеть из VPC нашего кластера и использовать идентификатор группы безопасности, который использует Redshift, а также добавить этот sg-id во входящую часть правил. Не повезло.

Есть ли у кого-нибудь способ с нуля настроить конвейер данных для работы с Redshift?

Как сейчас настроен мой конвейер

  • RedshiftDatabase
    • Connection String: jdbc:redshift://[host]:[port]/[database]
    • Имя пользователя Пароль
  • Ec2Resource
    • Resource Role: DataPipelineDefaultResourceRole
    • Роль: DataPipelineDefaultRole
    • Завершить через: 20 минут
  • SqlActivity
    • Database: [database] (from Connection String)
    • Работает на: Ec2Resource
    • Скрипт: SQL-запрос

Сообщение об ошибке

Невозможно установить соединение с jdbc: postgresql: // [хост]: [порт] / [база данных] В соединении отказано. Убедитесь, что имя хоста и порт указаны правильно и что почтмейстер принимает соединения TCP / IP.


person ScottieB    schedule 23.06.2019    source источник
comment
вам нужно предоставить более подробную информацию о том, как вы выполняете запрос. вполне вероятно, что IP-адрес ресурса, который работает внутри конвейера данных, необходимо добавить в группу безопасности красного смещения - я думаю, вы это уже знаете.   -  person Jon Scott    schedule 24.06.2019
comment
@JonScott, какие подробности? Да, VPC настроен так, чтобы разрешать подключения только из белого списка IP-адресов или групп безопасности. Итак, как мне найти / установить группу безопасности для конвейера данных?   -  person ScottieB    schedule 24.06.2019
comment
подробности о том, как вы используете конвейер данных для доступа к Redshift. какой тип ресурса конвейера данных? EC2Resource или SQLActivity?   -  person Jon Scott    schedule 24.06.2019
comment
@JonScott Я попытался описать это, добавленное как en edit выше. Я видел в Интернете материалы, в которых говорится, что вам не нужен Ec2Resource, но если у меня есть только мой SqlActivity, я получаю блокирующие ошибки, которые говорят, что SqlActivity нуждается в workerGroup или runOn.   -  person ScottieB    schedule 24.06.2019


Ответы (2)


Итак, ответ кроется в группах безопасности. Мне пришлось найти группу безопасности, в которой находится мой кластер Redshift, а затем добавить ее в качестве значения параметра «Группа безопасности» в Ec2Resource в DataPipeline.

  • Ec2Resource
    • Resource Role: DataPipelineDefaultResourceRole
    • Роль: DataPipelineDefaultRole
    • Завершить через: 20 минут
    • Группа безопасности: sg-XXXXX [запрос от Redshift]
person ScottieB    schedule 24.06.2019

Попробуйте открыть правила для входящих подключений для всех источников, чтобы сузить круг возможных причин. Вероятно, вы это сделали, но убедитесь, что вы настроили драйвер и конфигурации jdbc в соответствии с это.

person ketcham    schedule 24.06.2019