问题描述
Amazon Machine Image(AMI)在AWS中的AMI ID因地区而异的主要原因是什么
"AWSRegionArch2AMI": {
"us-east-1": {
"HVM64": "ami-0080e4c5bc078760e","HVMG2": "ami-0aeb704d503081ea6"
},"us-west-2": {
"HVM64": "ami-01e24be29428c15b2","HVMG2": "ami-0fe84a5b4563d8f27"
},"us-west-1": {
"HVM64": "ami-0ec6517f6edbf8044","HVMG2": "ami-0a7fc72dc0e51aa77"
},"eu-west-1": {
"HVM64": "ami-08935252a36e25f85","HVMG2": "ami-0d5299b1c6112c3c7"
},"eu-west-2": {
"HVM64": "ami-01419b804382064e4","HVMG2": "NOT_SUPPORTED"
},"eu-west-3": {
"HVM64": "ami-0dd7e7ed60da8fb83",
解决方法
每个AWS区域都是独立的。
将AMI复制到另一个区域时,它就是“不同的AMI”。例如,删除一个区域中的AMI不会影响另一区域中该AMI的副本。这同样适用于AWS提供的AMI。
我看到您需要Amazon Linux 2 AMI。除了使用映射(可能会过时)之外,更好的方法是使用AWS Systems Manager参数存储来自动获取“最新的” AMI 。这将自动适用于所使用的区域。
这是Query for the latest Amazon Linux AMI IDs using AWS Systems Manager Parameter Store | AWS Compute Blog中的一个示例,该示例显示了如何在 AWS CloudFormation模板中进行此操作:
# Use public Systems Manager Parameter
Parameters:
LatestAmiId:
Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
Resources:
Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: !Ref LatestAmiId