代码之家  ›  专栏  ›  技术社区  ›  WomenWhoCode

aws datapipeline redshiftcopyactivity:“无法建立与jdbc的连接”错误

  •  0
  • WomenWhoCode  · 技术社区  · 6 年前

    我对runny redshiftcopyactivity有问题,无法将数据从s3加载到redshift集群(redshift/s3/dp都在同一个aws帐户中)。我让它在我们的测试版帐户中工作,但在prod中无法做到这一点。

    在dp中创建ec2resource时,我使用了datapipelineDefaultResourceRole和datapipelineDefaultRole角色。 这是我的redshift集群属性。

    我收到的错误是:

    2018年12月19日04:28:14773[错误] (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-组 )。对于这个组,我没有指定任何入站规则,默认情况下存在出站规则。

    在红移安全组中( AWS-DataPipeline-EC2-S3-红移 ),我添加了入站规则以接受来自ec2安全组的所有端口的所有流量。

    然后,在启动数据管道时,我指定了securitygroupid: AWS-DP-EC2-组 (我的EC2安全组)和 子网 :subnet-12345(这是我在vpc中找到的4个子网标识之一,我用于redshift和ec2安全组)

    请帮助我理解我做错了什么。

    0 回复  |  直到 6 年前