【问题标题】:Glue Python Shell - Private Subnet AccessGlue Python Shell - 私有子网访问
【发布时间】:2020-10-24 01:57:30
【问题描述】:

我的私有子网中有一个 Redshift 集群。 我正在尝试使用 Glue Python Shell 编写 UNLOAD 作业。 但我无法连接到我的集群,因为它位于私有子网中。 我尝试添加 JDBC 和 Redshift 连接,但仍然不成功。

我浏览了this 文章,但很遗憾我无法理解工作流程。

如何将 Glue Python Shell 连接到私有子网中可用的 Redshift 集群? 如果有人能帮助我理解这个工作流程,那就太好了。

【问题讨论】:

  • 查看我对这个问题的回答:stackoverflow.com/questions/62594823/…。基本上 Glue 工作网络,可以像我们在 VPC 中处理 ec2 网络一样。您可以通过在您的 VPC 中启动一个实例并执行我共享的测试来测试此功能。当您说您添加了连接时,您的测试连接是否成功?
  • 我在私有 VPC 中创建了到我的 Redshift 集群的原始连接,当我定义 Glue Python Shell 作业时,我也在添加该连接,但它仍然无法连接 l。您是否建议连接一个假的而不是原始的?这对工作有何影响?
  • 不,我是说您应该执行测试连接。在同一子网上设置一个实例并尝试访问您的 Redshift 集群。测试连接更多的是我向您介绍的讨论。在向作业添加连接之前,您应该已经完成​​了测试连接并验证您的连接将到达您的集群。
  • 嘿完成,感谢您的测试建议,我没有这个想法。此选项在控制台中也可用。同时,我发布了解决我的问题的步骤。感谢您的帮助和快速响应。

标签: amazon-redshift aws-glue


【解决方案1】:

为了将我的 Glue Python Shell 作业与私有子网下的 Redshift 集群连接起来,我执行了以下步骤。

  1. 定义 JDBC 连接
    ● 转到胶水控制台
    ● 在 Connections 下添加一个新的 JDBC Connection
    ● 为您的 Redshift 端点提供必要的详细信息,例如
    -> JDBC URL:jdbc:redshift://host:port/database
    -> 用户名和密码
    ● 在 VPC ID 中选择 Redshift 集群本身的 VPC ID
    ● Subnet ID 也选择与 Redshift Cluster 相同
    ● 安全组:选择与 Redshift 集群相同的安全组
    ● 完成后保存此连接
  2. 更改安全组:导航到我们在第一步中选择的 Redshift 安全组并进行以下更改。
    ● 复制安全组 ID
    ● 编辑安全组
    ● 在入站规则下:选择 ALL TCP 并在源代码中粘贴安全组 ID(基本上,我们在这里为所有 TCP 提供自引用安全组)
    ● 保存安全组
  3. 再次导航到 Glue 控制台并在连接下,选择在步骤 1 中定义的连接并对其进行测试,此选项在控制台本身中可用

如果配置正常,您将看到成功消息。 现在只需转到您的工作并在 Connections 下选择上面定义的连接,您就可以访问它了。

参考资料:

How can I access aws resources in VPC from AWS glue?
https://docs.aws.amazon.com/glue/latest/dg/setup-vpc-for-glue-access.html
https://docs.aws.amazon.com/glue/latest/dg/connection-JDBC-VPC.html
https://aws.amazon.com/blogs/big-data/how-to-access-and-analyze-on-premises-data-stores-using-aws-glue/
https://docs.aws.amazon.com/glue/latest/dg/how-it-works.html

希望对你有帮助..!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-15
    • 2019-04-29
    • 1970-01-01
    • 2012-06-04
    • 2014-05-26
    • 2020-03-12
    • 2018-05-02
    • 1970-01-01
    相关资源
    最近更新 更多