用AWS中国区的Redshift集群访问AWS Global的RDS

问题描述:

众所周知,AWS中国区和AWS Global是两个系统,很多服务的跨区域功能是无法打通的。那么如果我有一个中国区的Redshift集群,想要去访问Global的RDS,我能做到吗?

解决方案:

Redshift 通过 external schema的方式去访问别的数据库,根据如下文档,必须是将数据库密钥存储在secret manager中,然后调用secret manager去访问。

不能直接在创建external schema时候加入hostname, username, password 类信息:

https://docs.amazonaws.cn/redshift/latest/dg/getting-started-federated.html

https://docs.amazonaws.cn/redshift/latest/dg/federated_query_example.html

整个Redshift 访问PostgreSQL,只要能成功访问secret manager,那么后续都是网络问题。仅有访问secret manager这一步需要IAM认证.

测试步骤:

1. 通过Direct Connect,速成dx专线打通Redshift Serverless所在网络和Global RDS PostgreSQL网咯。

2. 为保证Redshift出口IP在VPC内,建议在Redshift Serverlss中使用Enhanced VPC Routing.

如果不开启Enhanced VPC Routing, 那么Redshift访问RDS的出口IP,不会在Redshift VPC内。也不是不可以,但是RDS的安全组那边设置会有一定波折(比如需要把安全组入站规则设置为0000)。

3. secret manager中可以存储RDS的hostname,username, password,无论hostname是中国区rds, global rds,甚至自建数据库,只要网络打通就是没问题的。

Redshift访问secret manager是通过443端口,如果redshift 安全组outbound rule有限制,那么需要打开443.

网络和Redshift账号下IAM权限配置好以后,正常创建external schema就可以:

CREATE EXTERNAL SCHEMA testing
 FROM POSTGRES
 DATABASE 'testing1' SCHEMA 'testing2'
 URI 'test3.cluster-c8fap0yf8e1s.ap-southeast-1.rds.amazonaws.com'
 IAM_ROLE 'arn:aws-cn:iam::1234567890:role/redshift_serverless_role'
 SECRET_ARN 'arn:aws-cn:secretsmanager:cn-north-1:1234567890:secret:<testing secret>'
 ;

select * from testing1.testing2 limit 1;

参考文档:

[1] 增强型 VPC 路由 https://repost.aws/zh-Hans/knowledge-center/redshift-enhanced-vpc-routing

可能出现的报错和排查:

1. 

ERROR: timeout expired [ErrorId: 1-6629b321-63adbea65c7f6d013dbd06cb]

这种现象符合Enhanced VPC Routing关闭以后Redshift通过服务内部的eni并通过公网方式访问PostgreSQL的产品设置。是网络问题。

2. 

ERROR: Failed to incorporate external table "testing1"."testing2" into local catalog. Error=: curlCode: 28, Timeout was reached [ErrorId: 1-6629bd5a-4df483f1651485b803b8863a]

可以通过Redshift Serverless eni flow log中的记录进行排查,比如此eni访问Amazon Web Service服务网段被443端口拒掉,由于443端口是去访问secretmanager的端口,因此从Redshift Serverless服务的安全组中,将outbound rule增加了443端口的开放。这样,Redshift服务流量可以通过443端口出去并访问Secret Manager服务。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值