amazon-web-services - 如何避免 S3 和 EC2 之间跨账户的数据传输成本?

标签 amazon-web-services amazon-s3 amazon-ec2 amazon-vpc

我在账户 A 的私有(private)子网(作为较大 EKS 集群的一部分)中有一些 EC2 实例。这些 EC2 实例上运行着一个容器化应用程序,该应用程序会连接到 S3 来处理一些数据。 S3 存储桶位于帐户 B 中。目前,该应用程序仅使用普通的访问 key 和 key (因为它是我们不想修改的旧版应用程序)。

目前我配置了一个 NAT 网关,允许 EC2 实例访问互联网。当应用程序(在 Kubernetes Pod 内)访问 S3 中的文件时,它会通过互联网通过 NAT 网关。

这会给通过 NAT 网关处理的数据传输带来巨大成本。

我听说 S3 的 VPC 网关端点可以通过允许通过 Amazon 网络进行访问而无需使用互联网来帮助缓解该问题。这可以节省数据传输成本。然而,大多数博客文章似乎都假设 EC2 实例和 S3 存储桶存在于同一账户和区域中。就我而言,它们位于不同的 AWS 账户中。

我还听说 VPC 接口(interface)端点是一个选项。文档提到它们可以使用 across regions (但没有提到跨帐户)。更重要的是,有一个cost associated with the data transfer ,与 VPC 网关端点不同。

这是适合这种情况的工具吗?是否有其他方法可以让我从单独的 AWS 账户访问 S3 存储桶,同时避免过多的数据传输成本?

我的问题类似于this one ,但该问题主要针对公共(public) IP 地址,就我而言,我的所有 EC2 实例都位于私有(private)子网中。

最佳答案

S3 vpc 网关端点绝对是您想要使用的。无论您要访问的 S3 存储桶是否在另一个帐户中,都可以正常工作。网关端点提供与 S3服务的连接,因此您想要访问的存储桶位于何处并不重要。

请注意,网关端点应创建在与 S3 存储桶所在的同一区域中。

关于amazon-web-services - 如何避免 S3 和 EC2 之间跨账户的数据传输成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73379704/

相关文章:

amazon-web-services - Flutter 将图像加载到 S3 存储桶

amazon-web-services - Googlebot 和 AWS Cloudfront/S3 - 收到一堆 403

javascript - 在 Typescript 中如何在绑定(bind)类型安全的同时 promise 一个函数?

amazon-web-services - 如何在 ECR 中重新标记图像?

amazon-web-services - 使用 Redshift Spectrum 的步骤是什么?

amazon-web-services - Amazon ECS 中的运行状况检查实际上是如何工作的?

amazon-web-services - AWS ASG 错误状态转换原因 Server.InternalError

amazon-web-services - 在 Amazon EC2 实例上的 Docker 容器中运行 iPython Notebook

amazon-web-services - 启动配置中的 AWS EC2 生命周期 Hook 与用户数据

amazon-web-services - ParameterOverride CodePipeline 中的 Cloudformation ImportValue