Redshift 增强型 VPC 路由的用途?

Posted

技术标签:

【中文标题】Redshift 增强型 VPC 路由的用途?【英文标题】:Purpose of Redshift Enhanced VPC routing? 【发布时间】:2021-12-01 16:34:01 【问题描述】:

增强型 VPC 路由用于 Redshift 的目的是什么?

我已阅读文档https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html 但我不清楚。

当您创建 redshift 集群时,领导节点驻留在 VPC/子网中。 因此它将始终使用 VPC 路由、安全组等来路由请求,对吗? 为什么 redshift 在执行“COPY”命令时不使用 VPC 流量?

【问题讨论】:

就在链接中:“如果未启用增强型 VPC 路由,Amazon Redshift 会通过互联网路由流量,包括到 AWS 网络中其他服务的流量。”。所以不,它不会总是使用 VPC 路由。 那是我不明白的。 你需要澄清这个问题。 节点(基本上是 EC2 实例)如何避开 VPC 流量?如果我在私有子网中启动它,它如何访问互联网? 如果您在没有通往 Internet 的路由且禁用了增强型 VPC 路由的子网中启动它,它将根本无法工作。 【参考方案1】:

增强的 VPC 路由强制流量通过您的 VPC。

禁用它后,即使您的集群位于 VPC 中,它也会通过公共 Internet 路由流量,而不是通过 VPC。

这是因为它使用 VPC 外部的“内部”网络接口,无论集群本身是否在 VPC 中。

这是docs的相关摘录:

在 Amazon Redshift 中,由 COPY、UNLO​​AD 和 Amazon Redshift Spectrum 创建的网络流量通过网络接口流动。此网络接口位于 Amazon Redshift 集群内部,位于您的 Amazon Virtual Private Cloud (Amazon VPC) 之外。默认情况下,网络流量随后通过公共互联网路由到达目的地。

但是,当您启用 Amazon Redshift 增强型 VPC 路由时,Amazon Redshift 会改为通过 VPC 路由网络流量。 Amazon Redshift 增强型 VPC 路由使用可用的路由选项,为网络流量优先选择最具体的路由。 VPC 终端节点优先作为第一路由优先级。如果 VPC 终端节点不可用,Amazon Redshift 会通过互联网网关、NAT 实例或 NAT 网关路由网络流量。

【讨论】:

谢谢。流量将保留在 AWS 内部网络上的事实取决于网络配置(设置 VPC 端点)。所以这是红移节点的外部对吗?因此我的问题是为什么需要告诉 Redshift 一些外部的东西(根据我的理解,使用 VPC 端点不需要在节点上进行任何配置)? “流量将保留在 AWS 内部网络上的事实取决于网络配置(设置 VPC 终端节点)”不,这取决于启用的增强型 VPC 路由。如果禁用,Redshift 将忽略 VPC 端点并使用公共互联网。 听起来很奇怪:“Redshift 将忽略 VPC 端点”。网关端点只是子网路由表中的前缀列表(所以条目)。所以不启用“增强型 VPC 路由”会迫使红移节点不尊重子网的路由表? “它们不会覆盖面向 Internet 的公共端点。它们位于单独的 URL 地址下”。我不明白那部分对不起。如果为 S3 创建网关端点,它将在我的路由表中添加 S3 服务的不同公共 IP 地址。因此,无论该子网中的资源使用什么 URL,与 S3 的任何通信都将使用 AWS 内部网络(无需任何额外配置)。也许我在这里遗漏了什么? 我关于 S3 端点未覆盖公共 url 的评论是错误的,我已删除该评论。对于错误信息,我深表歉意,我已经用您问题的实际答案更新了答案。

以上是关于Redshift 增强型 VPC 路由的用途?的主要内容,如果未能解决你的问题,请参考以下文章

从没有 VPC 的 Lambda 连接到公共 Redshift 数据库

如何将 Cloud9 (python) 连接到 VPC 中的 Redshift?

将客户端 *** VPC 的流量路由到同一 VPC 中的实例

VPC Peering 具有特定路由的配置

AWS Redshift 采坑记

AWS - 从公共 API 网关到 VPC 内 lambda 的路由