AWS DataPipeline RedshiftCopyActivity:“无法建立与jdbc的连接”错误

时间:2018-12-19 18:37:02

标签: amazon-redshift aws-vpc aws-data-pipeline

我的流式RedshiftCopyActivity遇到问题,无法将数据从S3加载到我的Redshift集群(Redshift / S3 / DP都在同一个AWS帐户中)。我可以在我们的Beta帐户中使用它,但无法在Prod中执行此操作。

在DP中创建Ec2Resource时,我使用了DataPipelineDefaultResourceRole和DataPipelineDefaultRole角色。 这是我的Redshift群集属性。

我收到的错误是:

  

2018年12月19日04:28:14,773 [错误]   (TaskRunnerService-资源:df-0791222351VTJTTKG0GPL3_ @ ResourceId_LVKHP_2018-12-19T00:48:11-0)   amazonaws.datapipeline.database.ConnectionFactory:无法建立   连接到   jdbc:postgresql://vse-rs-dw.1221345.us-east-1.redshift.amazonaws.com:8192 / vse   拒绝连接。检查主机名和端口是否正确,以及   邮件管理员正在接受TCP / IP连接。

我在堆栈溢出中发现了一些讨论相同问题的主题,并且发现需要在用于Redshift的同一VPC中启动ec2实例。我关注了这个维基(https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-resources-vpc.html

我创建了新的VPC安全组并将其添加到Redshift集群(aws-datapipeline-ec2-s3-redshift)。 然后,我在与Redshift相同的VPC中为Ec2实例创建了另一个VPC安全组(称为 aws-dp-ec2-group )。对于该组,我没有指定任何入站规则,默认情况下,存在出站规则

在Redshift安全组( aws-datapipeline-ec2-s3-redshift )中,我添加了入站规则以接受来自ec2安全组的所有端口的所有流量。

然后,在启动数据管道时,我指定了securityGroupIds:“ aws-dp-ec2-group ”(我的ec2安全组)和 subnetId :subnet-12345(这是我在VPC中找到的用于Redshift和EC2安全组的四个子网ID之一)

请帮助我了解我的错。

0 个答案:

没有答案