【问题标题】:AWS Accessing Redshift in a VPCAWS 在 VPC 中访问 Redshift
【发布时间】:2017-08-23 09:05:43
【问题描述】:

我正在尝试使用 AWS Glue 将数据从 Redshift 实例(在 VPC 中)传输到 S3 存储桶。为此,我使用 Redshift 创建了 JDBC 连接。

爬虫成功地将架构信息从 Redshift 提取到数据目录。但是当我运行 ETL 作业时,它无法获取数据并显示“资源不可用”

  1. 是否需要为 Glue 配置 NAT 才能连接到 Redshift? (目前它没有 NAT)
  2. 即使没有 NAT,爬虫如何能够从 Redshift 读取架构信息?

【问题讨论】:

    标签: amazon-web-services amazon-redshift etl aws-glue


    【解决方案1】:

    Redshift 在您的 VPC 中。 Glue 在您的 VPC 内部。 S3 不是。在大多数情况下,默认情况下访问 S3 需要访问 Internet。

    要访问 S3 中的数据,您需要一个 NAT 网关、一个 NAT 实例或一个 S3 VPC Endpoint 来为 VPC 内的 S3 流量带来一个终止点。

    【讨论】:

    • 我已经配置了一个 S3 VPC 终端节点。让我困惑的是,为什么当爬虫能够从 redshift 读取模式信息时 ETL 作业会失败?我什至看不到 cloudwatch 日志,因为它们没有被创建。但是,当我运行从 S3 到 S3 的 ETL 数据的示例 Glue 教程时,它成功运行,甚至创建了日志。如有任何有关如何解决此问题的指导,我将不胜感激。
    • 尚不清楚您可能缺少什么。可能是安全组设置?
    【解决方案2】:

    对于遇到此问题的任何人来说,这仍然是一个持续存在的问题。对于我的设置,它是 RDS 连接的子网所在的可用区,但据我了解,这适用于任何连接类型。

    “修复”是:

    1. AWS 控制台 > Glue > 连接 > 编辑连接 > 查看连接正在使用哪个子网。
    2. AWS 控制台 > VPC > 子网 > 识别(或创建)不同区域中的子网。
    3. AWS 控制台 > Glue > 连接 > 编辑连接 > 切换到使用第 2 步中的子网。
    4. 运行作业。

    如果作业仍然因资源不可用而失败,请重复此操作,直到成功为止。

    【讨论】:

      猜你喜欢
      • 2016-08-31
      • 2019-08-25
      • 2019-09-18
      • 2018-02-14
      • 1970-01-01
      • 2017-02-08
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多