0

我有几个 S3 存储桶,其中包含跨越 7.61 亿个对象的总计 40 TB 数据。我承担了一个将这些对象复制到 EBS 存储的项目。据我所知,所有存储桶都是在 us-east-1 中创建的。我确信用于导出到 EBS 的所有 EC2 实例都在 us-east-1 内。

问题是上个月的 AWS 账单包含了相当高的跨区域数据传输费用。我想知道这怎么可能?

传输使用一个非常简单的 Python 脚本和 Boto 连接到 S3 并下载每个对象的内容。我怀疑存储桶名称由大写字母组成的事实可能是一个促成因素(我必须指定OrdinaryCallingFormat()),但我不确定这一点。

4

2 回答 2

1

AFAIK,名称中包含大写字符的存储桶只能存在于经典S3 区域(即 us-east-1)中。您的所有存储桶名称是否都包含大写字符?桶还存在吗?如果是这样,您可以像这样仔细检查他们的位置:

import boto
c = boto.connect_s3()
for bucket in c.get_all_buckets():
    print(bucket.name, bucket.get_location())

如果存储桶位于区域以外的任何位置us-east-1,您将在其名称旁边看到打印的位置。否则,它将是空白的。

如果所有存储桶都在该us-east-1区域中,并且您 100% 确定所有 EC2 实例也在该区域中,us-east-1并且您创建的所有 EBS 卷也在该us-east-1区域中,那么我无法解释您为什么会看到 inter - 您账单上的区域交通费用。我不相信 boto 会随机连接到不同的区域。这可能值得向 AWS 询问。可能有一个合理的原因,但对我来说并不明显。

于 2013-08-08T15:45:23.170 回答
0

该问题最终成为 AWS 的内部计费错误,与 S3 或 Boto 无关。

于 2013-08-21T20:13:15.197 回答