2014-10-22 2 views
2

У меня есть экземпляр CloudFormer, созданный в одном из моих регионов. Я создаю шаблон для одного из моих экземпляров (включая VPC, группы безопасности, ...) Затем я пытаюсь создать стек в другом регионе, убедившись, что я переключу зоны доступности в новые регионы (us-east-1a -> us-west-1a и т. д.), но я столкнулся с следующей ошибкой, когда пытается создать экземпляр EC2: Идентификатор изображения [ami-xxxxxxxx] 'не существует.Созданный с помощью CloudFormer шаблон при работе в другом регионе

Нужно ли сначала вручную копировать изображения в другой регион? Есть ли способ сделать это с помощью шаблона, генерируемого cloudformer? Как шаблон будет определять, откуда этот AMI?

Спасибо,

ответ

1

Вы должны скопировать AMI для каждого региона вы хотите использовать его. Эта функциональность доступна в консоли AWS. Выберите AMI, и вы можете скопировать его в другой регион. См. AWS provided instructions.

Невозможно создать шаблон для обнаружения того, что в регионе нет AMI, а затем скопируйте ami в желаемую область.

Чтобы указать, какие МАСС идут с которыми регионы, вы должны указать отображение (от AWS CloudFormation Пример шаблона):

"Mappings" : { 
"AWSInstanceType2Arch" : { 
    "m1.small" : { "Arch" : "64" }, 
    "m1.medium" : { "Arch" : "64" }, 
    "m1.large" : { "Arch" : "64" }, 
    "m1.xlarge" : { "Arch" : "64" }, 
    "m2.xlarge" : { "Arch" : "64" }, 
    "m2.2xlarge" : { "Arch" : "64" }, 
    "m2.4xlarge" : { "Arch" : "64" }, 
    "c1.medium" : { "Arch" : "64" }, 
    "c1.xlarge" : { "Arch" : "64" } 
}, 
"AWSRegionArch2AMI" : { 
    "us-east-1"  : {"64" : "ami-7614ac1e"}, 
    "us-west-1"  : {"64" : "ami-2f43566a"}, 
    "us-west-2"  : {"64" : "ami-e5f7bbd5"}, 
    "eu-west-1"  : {"64" : "ami-32228e45"}, 
    "ap-southeast-1" : {"64" : "ami-c6634294"}, 
    "ap-southeast-2" : {"64" : "ami-995c31a3"}, 
    "ap-northeast-1" : {"64" : "ami-73d0e672"}, 
    "sa-east-1"  : {"64" : "ami-77a1156a"} 
} 

},

Секция отображения обычно находится сразу после секции Параметры ,

Тогда вы ссылаетесь ваш AMI следующим образом:

"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, 
        { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] }, 
Смежные вопросы