Это Можно ли указать ту же зону доступности, что и мое хранилище EBS, при создании нового экземпляра EC2?

Прямо сейчас у меня есть том хранилища EBS в us-east-2b зона доступности. Однако у меня есть код, который автоматизирует процесс создания экземпляра и использует us-east-2 в качестве зоны доступности. Проблема в том, что экземпляр создается в любой зоне доступности, которую он хочет - us-east-2a , us-east-2b , us-east-2c ... и поэтому, когда я пытаюсь присоединить том к экземпляру, возникает следующая ошибка:

Aws::EC2::Errors::InvalidVolumeZoneMismatch (The volume 'vol-XXXX' is not in the same availability zone as instance 'i-XXXX')

Чтобы обеспечить некоторую согласованность и избежать этой проблемы, я просто хотел бы создать экземпляр в определенной зоне доступности, такой как us-east-2b , чтобы он соответствовал тому же объему хранилища EBS.

Я также использую ruby ​​ aws-sdk для это. Есть идеи, возможно ли это?

Если я попробую указать us-east-2b , то получу следующую ошибку:

2.5.1 :080 > @ec2 = Aws::EC2::Resource.new(region: 'us-east-2b')
Traceback (most recent call last):
        2: from (irb):80
        1: from (irb):80:in `new'
ArgumentError (:region option must a region name, not an availability zone name; try `us-east-2' instead of `us-east-2b')

, поэтому я не понимаю, как можно решить эту проблему. Нужно ли мне просто продолжать воссоздавать экземпляры в зоне доступности xxx-2 , пока я волшебным образом не окажусь в xxx-2b ?Или мне нужно найти другой способ непрерывной репликации моментальных снимков взад и вперед, чтобы объем хранилища EBS был согласован во всех 3 зонах доступности в us-east-2a / b / c ?

0
задан 27 April 2020 в 22:10
1 ответ

Пропустил шаг в документации и понял, что могу указать конкретную зону доступности (например, 2a, 2b, 2c), указав subnet_id при использовании .create_instance.

Например:

        instances = @ec2.create_instances({
            min_count: 1, 
            max_count: 1,
            image_id: @ec2_config[:image_id],
            key_name: @ec2_config[:key_name],
            security_group_ids: [@ec2_config[:security_group_id]],
            instance_type: @ec2_config[:instance_type],
            subnet_id: "subnet-xxxx" # availability zone us-east-2b (same as ebs volume)
        })

0
ответ дан 27 April 2020 в 19:24

Теги

Похожие вопросы