【问题标题】:Different AMI based on AWS Region?基于 AWS 区域的不同 AMI?
【发布时间】:2019-04-04 20:03:42
【问题描述】:

AWS AMI 是否因地区而异?
例如,如果我尝试在法兰克福启动 EC2 实例,我得到了这个 AMI:

Amazon Linux AMI 2015.03 (HVM), SSD Volume Type - *ami-a8221fb5*

在俄勒冈州:

Amazon Linux AMI 2015.03 (HVM), SSD Volume Type - *ami-e7527ed7*

注意不同的 ami 版本:ami-a8221fb5ami-e7527ed7
有什么原因吗?

我如何构建一个可以在法兰克福或俄勒冈州启动而无需更改 ami 的 cloudformation 模板?

【问题讨论】:

  • 对于 AWS 提供的图像,我认为没有理由让它们具有不同的 AMI ID。这使得跨区域部署依赖 AMI 的实例更加麻烦。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

不同地区的不同 AMI 的原因与您必须在该地区拥有实际可用的映像才能启动实例有关。 (如果你不这样做,你基本上必须从它掌握的地方转移它——在遥远的地区之间转移需要很长时间——所以启动新的 ec2 实例需要很长时间)。

理论上,我想您可以在多个区域拥有相同的图像 id,但如果绑定到 id 的图像不同,那只会让人感到困惑。更不用说您可能不想将其推送到所有区域(区域间流量不是免费的)。

ec2 在此处选择为每个区域设置不同的 id,从而为您提供最大程度的控制和灵活性,而不会付出高昂的代价。

对于通过 cloudformation 启动机器,您绝对可以像 E.J.布伦南描述了它。

【讨论】:

    【解决方案2】:

    您将使用参数化值,例如在这个非常好的示例中:

    您可以使用输入参数来引用地图中的特定值 通过使用 Fn::FindInMap 函数。例如,假设您有一个 映射到特定 AMI 的区域列表。您可以选择 AMI 您的堆栈通过在创建时指定区域参数来使用 堆栈。

    http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-input-conditional-parameters.html

    【讨论】:

      【解决方案3】:

      我刚刚推出了一个工具来帮助创建多个区域的映射(通过查找给定源 AMI 映像 ID 和区域的映像的相应 AMI 映像 ID)。它是用boto3编写的。您可能会发现它很有用。 https://github.com/codesolid/ami-lookup.

      【讨论】:

        猜你喜欢
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 2023-03-05
        • 1970-01-01
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多