4

我们的设置:

  • 我们有一个本地服务器,我们希望从该服务器将数据发送到 S3(使用 AWS Java SDK)
  • 我们的本地数据中心使用 Direct Connect 连接到 AWS
  • 在 AWS 方面,有一个 VPC,它确实有一个到 S3 的 VPC 端点

在此处输入图像描述

我们的假设是一切都正确路由(本地可以看到 AWS 中的 VPC)。假设 VPC CIDR 范围为 10.10.10.0/24。

当我们在 SDK 中调用“PutObject”(但可以是任何 S3 方法)并给出我们存储桶的名称时,来自 SDK 的生成请求将针对公共 S3 IP 地址 (52.xxx)。但是,这不会被路由为:Direct Connect -> VPC -> VPC Endpoint -> S3,相反,我们的路由器会将流量路由到 Internet 代理(作为默认 0.0.0.0/0 路由) - 因为 VPC CIDR 范围为 10.10.10.0/24。

我的问题是(显然):是否有正确的方法通过 AWS Direct Connect 而不是通过互联网路由流量

我希望有类似的东西:

  • SDK 命令中有一个选项可包含应首先向其发送请求的其他 IP
  • 有一些我们可以启动的 S3 本地服务
  • 在一些涉及的服务中有一个简单的按钮可以按下。

免责声明:我不是真正的网络或 AWS 基础设施大师,所以请原谅我的一些含糊之处。

4

2 回答 2

3

如果不使用代理,您将无法通过 Direct Connect 私有 VIF 访问 VPC 终端节点。

您可以改为分配公共 VIF。当您在 VGW 中启用路由传播时,AWS 会将所有公共路由通告给客户的路由器,因此流向该区域中 AWS 服务的所有流量都通过 Direct Connect。

公共虚拟接口可以使用公共 IP 地址访问所有 AWS 公共服务。公共虚拟接口允许您连接到全球所有 AWS 公共 IP 空间。任何 Direct Connect 位置的 Direct Connect 客户都可以创建公共虚拟接口来接收亚马逊的全球 IP 路由

于 2019-11-06T17:03:08.997 回答
0

AWS 现在支持 s3 的 privatelink,允许使用终端节点特定的 DNS 名称通过 Direct Connect/VPN 直接发送流量。https://aws.amazon.com/blogs/aws/aws-privatelink-for-amazon-s3-now-available/

于 2021-10-13T17:32:59.613 回答