代码之家  ›  专栏  ›  技术社区  ›  Amit

AWS默认区域?

  •  1
  • Amit  · 技术社区  · 8 年前

    当我看到 enum Regions (amazonaws/regions/regions.class)然后我发现 DEFAULT_REGION = US_WEST_2 .

    其中,作为URL https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html 我发现了 If you don't select a region, then us-east-1 will be used by default.

    当我使用创建AmazonS3客户端时 new AmazonS3Client() ,它给了我 us-east-1 作为默认区域。

    所以,我的问题是: 1)对于不同的服务,这些默认区域是否不同?目前,我只对AmazonS3Client/AmazonS3ClientBuilder感兴趣。

    2)这些有什么意义吗?感兴趣的 us-east-1 更多

    2 回复  |  直到 8 年前
        1
  •  3
  •   guest    8 年前

    默认构造函数具有固定端点,这些端点(至少对于我使用的服务而言)位于 us-east-1 . 您可以通过调用 setRegion() 或 setEndpoint() 方法

    但是,自版本1.11.11以来,默认构造函数已被弃用。现在应该使用客户端生成器(例如 AmazonS3ClientBuilder ),它将查找配置的区域。除非你有充分的理由不这样做,否则请致电 AmazonS3ClientBuilder.defaultClient() .

        2
  •  3
  •   Michael - sqlbot    8 年前

    这些都有很大的意义。

    对于大多数服务,AWS区域都是独立的。

    https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html

    给定区域中的服务与不同区域中的相同服务隔离,以实现操作弹性。如果你在一个遥远的地区创建一个bucket、一个SQS队列、一个SNS主题或一个Lambda函数,那么物理定律会影响你的表现——在全球范围内,光速变得非常缓慢,以至于很多人似乎低估了光速。如果您的bucket、queue、topic等位于(例如)us-west-2中,则无法通过eu-west-2端点访问它。您可以从eu-west-2区域内部访问它,但您的请求和响应必须穿越海洋。

    在用户和您自己附近使用一个区域。不要只接受默认值。它们只是出于历史原因而存在,事后看来,它们可能不是一个好主意。您可能会发现,默认区域恰好是您理想的区域选择,在这种情况下,请明确使用该区域。

    美国东部1区是最原始、最古老和最大的地区。很长一段时间以来,一直在微妙地鼓励不主动选择地区的客户通过一些默认设置使用us-west-2,大概是因为那里总体上有更多的剩余容量(但这只是猜测)。在某些情况下,us-east-1违约可能仍然存在,但趋势似乎是取消违约并需要进行选择,这可能一直都是应该的。