繁体   English   中英

无法将数据从 s3 复制到私有子网中的 redshift 集群

[英]Can not copy data from s3 to redshift cluster in a private subnet

我已经在私有子网中设置了一个 redshift 集群。 我可以成功连接到我的 redshift 集群并通过 DBeaver 执行基本的 SQL 查询。

我还需要将一些文件从 s3 上传到 redshift,因此我在我的私有子网中设置了一个 s3 网关并更新了我的私有子网的路由表以添加所需的路由,如下所示:

Destination       Target                 Status            Propagated
192.168.0.0/16    local                  active            No   
pl-7ba54012 (com.amazonaws.us-east-2.s3, 52.219.80.0/20, 3.5.128.0/21, 52.219.96.0/20, 52.92.76.0/22)   vpce-04eed78f4db84ae49  
active             No   
0.0.0.0/0         nat-0a73ba7659e887232  active            No 

但是,我无法从 s3 存储桶运行复制查询

copy venue
from 's3://*****/tickit/venue_pipe.txt'
iam_role 'arn:aws:iam::******:role/global-dev-rdt-role-S3ReadonlyAccess'
region 'us-east-2';

我的存储桶以及公共和私有子网安全组没有限制性策略,而且我已经可以在私有子网中的 redshift 集群上运行 SQL 查询。

更新:redshift 集群的安全组允许所有连接到端口 5439

Type         Protocol      Port Range     Source      Description
Redshift     TCP           5439           0.0.0.0/0
Redshift     TCP           5439           ::/0
SSH          TCP           22             sg-0f933e18d6c1967b8

为了重现您的情况,我执行了以下操作:

  • 使用公共子网和私有子网(无 NAT 网关)创建了一个新的VPC
  • 在私有子网中启动了一个 1 节点Amazon Redshift 集群
    • 增强型 VPC 路由 = 否
    • 可公开访问 = 否
  • 在公有子网中启动了一个Amazon EC2 Linux 实例
  • 在 EC2 实例上运行sudo yum install postgresql
  • 通过 EC2 实例上的psql建立到 Redshift 集群的连接 ( psql -h xx.yy.ap-southeast-2.redshift.amazonaws.com -p 5439 -U username )
  • 创建了一个表( create table foo(id integer);
  • 加载表( copy foo from 's3://my-bucket/bar.txt' iam_role 'xxx';

工作成功,并显示以下消息:

INFO:  Load into table 'foo' completed, 4 record(s) loaded successfully.

因此,从 Redshift 执行COPY命令不需要 VPC 端点/NAT 网关 Redshift 集群有自己的特殊方式来连接到 S3,似乎是通过 Redshift 的“后端”。

如果数据是从同一区域的 Amazon S3 加载的,则流量将完全保留在 AWS 网络内。 如果数据来自不同的区域,它仍然会被加密,因为与 Amazon S3 的通信将通过 HTTPS。

第二个测试:使用增强型 VPC 网络

为了反映您的情况,我启动了一个不同的 Redshift 集群,启用增强型 VPC 路由

当我运行COPY命令时,它可以预见地挂起,因为我没有配置 Redshift 集群通过 VPC 访问 Amazon S3 的方法。

然后,我为 Amazon S3创建了一个VPC 终端节点,并使用“完全访问”策略将其连接到私有子网。

然后,当我重新运行COPY命令时,它成功地从 Amazon S3 加载了数据。

底线:它对我有用。 您可能想将您的配置与我采取的上述步骤进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM