У меня проблема с запущенным RedshiftCopyActivity для загрузки данных из S3 в мой кластер Redshift (все Redshift / S3 / DP находятся в одной учетной записи aws).Я заставил его работать в нашей бета-учетной записи, но не смог сделать это в Prod.
При создании Ec2Resource в DP я использовал роли DataPipelineDefaultResourceRole и DataPipelineDefaultRole.Это мои свойства кластера Redshift.
Полученная мной ошибка:
19 дек. 2018 04: 28: 14,773 [ОШИБКА] (TaskRunnerService-resource: df-0791222351VTJTTKG0GPL3_ @ ResourceId_LVKHP201)12-19T00: 48: 11-0) amazonaws.datapipeline.database.ConnectionFactory: невозможно установить соединение с jdbc: postgresql: //vse-rs-dw.1221345.us-east-1.redshift.amazonaws.com: 8192/ Все соединения отказались.Убедитесь, что имя хоста и порт указаны правильно и что администратор почты принимает соединения TCP / IP.
Я нашел несколько тем о переполнении стека, в которых обсуждалась та же проблема, и обнаружил, что мне нужно запустить мойЭкземпляр ec2 в том же VPC, который я использую для RedshiftЯ следовал этой вики (https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-resources-vpc.html)
Я создал новую группу безопасности VPC и добавил ее в кластер Redshift (aws-datapipeline-ec2-s3-redshift). Затем я создал еще один VPCгруппа безопасности для экземпляра Ec2 в том же VPC, что и мой Redshift (она называется aws-dp-ec2-group ). Для этой группы я не указывал никаких правил для входящих сообщений, правила для исходящих сообщений присутствовали по умолчанию
В группе безопасности Redshift ( aws-datapipeline-ec2-s3-redshift ) я добавил правило входящего трафика, чтобы принимать весь трафик для всех портов из группы безопасности ec2.
Затемпри запуске конвейера данных я указал securityGroupIds: « aws-dp-ec2-group » (моя группа безопасности ec2) и subnetId : subnet-12345 (это одна из 4 подсетейидентификаторы, которые я нашел в VPC, которые я использовал как для Redshift, так и для группы безопасности EC2)
Пожалуйста, помогите мне понять, что я сделал не так.