【问题标题】:Accessing the AWS S3 from on-premise world through Direct Connect, VPC and VPC Endpoint using AWS SDK使用 AWS SDK 通过 Direct Connect、VPC 和 VPC 终端节点从本地世界访问 AWS S3
【发布时间】:2020-03-03 04:09:38
【问题描述】:

我们的设置:

  • 我们有一个本地服务器,我们希望从该服务器将数据发送到 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 基础设施大师,所以请原谅我的含糊之处。

【问题讨论】:

    标签: amazon-web-services amazon-s3 routing amazon-vpc aws-direct-connect


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-08-12
      • 2020-02-07
      • 2020-05-21
      • 2018-02-07
      • 2022-01-09
      • 2017-07-27
      • 2021-11-25
      • 2019-12-21
      • 2022-08-05
      相关资源
      最近更新 更多