Запуск EC2 в нескольких регионах с использованием boto3 - PullRequest
0 голосов
/ 13 января 2019

Я использую приведенный ниже код для запуска экземпляра EC2

     import boto3
     client = boto3.client('ec2',region_name='us-east-1')

     resp = client.run_instances(ImageId='ami-01e3b8c3a51e88954',
                        InstanceType='t2.micro',
                        MinCount=1,MaxCount=1)
     for instance in resp['Instances']:
     print(instance['InstanceId'])

Этот код работает. Но теперь мое требование - запускать экземпляр в нескольких регионах одновременно. Кто-нибудь может подсказать, как этого добиться?

1 Ответ

0 голосов
/ 13 января 2019

Во-первых, вам нужно будет найти идентификаторы ами для каждого региона. AMI не являются межрегиональными, поэтому для каждого региона вы должны найти идентификаторы AMI.

Тогда вы бы сделали что-то вроде:

import boto3

regions = {
    'us-east-1': 'ami-01e3b8c3a51e88954',
    'eu-west-1': 'ami-XXXXXXXXXXXXXXXXX',
}

for region in regions:
    region_client = boto3.client('ec2', region_name=region)

    resp = region_client.run_instances(ImageId=regions[region],
                                InstanceType='t2.micro',
                                MinCount=1, MaxCount=1)
    for instance in resp['Instances']:
        print(instance['InstanceId'])
...