如何从受限 VPC 中访问 redshift 区域端点?

How to access redshift regional endpoint from within a restricted VPC?

我需要以编程方式访问 Redshift 区域端点以使用 boto3 APIs 恢复 table。我的代码位于绑定到受限子网(而非 NAT)的 lambda 函数中。 因此,为了访问此 lambda 中的 AWS 服务,如 Glue 和 Athena,我使用 VPC 端点,但没有用于 Redshift 的 VPC 端点,我不能 运行 我的 boto3 API(获取 "Connect timeout on endpoint URL: "https://redshift.us-east-1.amazonaws.com/”)。 我相信完成这项工作的唯一方法是将流量路由到 NAT instance/gateway。还有其他解决办法吗?

您说得对,没有可用于 Amazon Redshift 的 VPC 端点。任何 API 电话都需要通过互联网拨打。

这可以通过在 VPC 的 public 子网中安装 NAT 网关 来实现。

另一种方法是创建一个额外的 AWS Lambda 函数,该函数 与您的 VPC 相关联。这意味着它将可以访问 Internet(但不能访问 VPC)。

您现有的 Lambda 函数可以调用 'external' Lambda 函数,该函数随后会调用 Amazon Redshift。但是,这需要 API 网关和 API 网关 的 VPC 端点,因为 Lambda 没有 VPC 端点。

在 Reddit 上查看类似的讨论:Access Lambda service from Lambda in a VPC : aws

您也可以通过 Amazon SNS 和 SNS 的 VPC 端点,然后 SNS 触发 Lambda 函数(但完成后您不会收到 'return signal')。