首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >美国航空航天局( aws S3):对我们的额外费用-东-1

美国航空航天局( aws S3):对我们的额外费用-东-1
EN

Stack Overflow用户
提问于 2019-02-04 03:08:11
回答 1查看 121关注 0票数 2

我们的AWS声明进来了,我们注意到我们的请求数量增加了一倍。

第一个费用是Asia Pacific (Tokyo) (ap-东北-1),这很简单,因为它是我们的水桶所在。但还有一项针对US East (N. Virginia) (美东-1)的指控也有类似数量的请求。

长话短说,这似乎是因为我们使用的是命令,而且我们没有通过--region选项或任何一种后备方法指定区域。

输入aws configure list显示region: Value=<not set> Type=None Location=None

然而,我们的aws s3命令成功了,尽管有了这个看似隐藏的电荷。假设,我们的请求首先会流向我们--东部--1,但由于这里没有我们指定的名称的桶,它掉头返回到ap-东北-1,在那里,它最终成功的同时,被计算了两次。

运行ec2命令的aws实例本身位于ap-东北-1中,如果这有任何意义的话。

所以问题是,上面的假设是否是对正在发生的事情的合理解释?(即是否预期的行为。)而且,在我看来,这似乎有点阴险,但这是否有适当的理由呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-04 04:01:39

你看到的是正确的。aws s3命令需要知道该区域,以便访问S3桶。

因为这还没有提供,所以它将向us-east-1发出请求,这实际上是默认的--请参阅AWS S3区域图以查看us-east-1不需要位置约束。

如果S3接收到一个不位于该区域的桶的请求,那么它将返回一个PermanentRedirect响应,并为桶返回正确的区域。AWS透明地处理这个问题,并使用包含该区域的正确端点重复请求。

查看此操作的最简单方法是在调试模式下运行命令:

代码语言:javascript
复制
aws s3 ls ap-northeast-1-bucket --debug

产出将包括:

代码语言:javascript
复制
DEBUG - Response body:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>PermanentRedirect</Code><Message>The bucket you are attempting to access 
must be addressed using the specified endpoint. Please send all future requests to 
this endpoint.</Message>
<Endpoint>ap-northeast-1-bucket.s3.ap-northeast-1.amazonaws.com</Endpoint>
<Bucket>ap-northeast-1</Bucket> 
<RequestId>3C4FED2EFFF915E9</RequestId><HostId>...</HostId></Error>

AWS不假定该区域与调用的EC2实例相同,而是一个长期运行混乱/特性请求

附加注意:并不是所有AWS服务都会以这种方式自动发现区域,如果没有设置区域,则会失败。S3之所以工作,是因为它使用的是全局名称空间,它本质上需要某种形式的发现服务。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54509725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档