Безопасное удаление тома EBS в стеке облачной информации

У меня есть стек облачной информации, в котором я создаю экземпляр с двумя томами EBS, одним главным / корневым и одним с большим количеством тестовых данных. Единственная причина для прикрепления тестовых данных - это загрузка данных в HADoop в начале после создания стека. После этого у меня нет смысла держать этот том EBS прикрепленным и платить за него деньги. Но если я удалю его вручную или с помощью библиотеки boto3, возникнут ли проблемы со стеком облачной информации позже, если я попытаюсь обновить или удалить его? Например, удаление не удалось, потому что не удалось найти ресурсы, или если я попытаюсь обновить стек с помощью нового тега, оно не удастся, потому что обнаружит, что ресурс отсутствует. Любое руководство приветствуется.

Обновление: похоже, что облачная информация не создает ресурс для моего тома в ресурсах стека, потому что я не вижу его там. Однако, когда я нажимаю на экземпляр, у него есть / dev / sda1 для блочного устройства, и когда я наведен на него, он показывает EBS ID тома, с которым я его создал, в моей облачной информации.

Мой шаблон облачной информации:

  ###################
  ### Master node ###
  ###################
  MasterNode:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !FindInMap [RegionMap, !Ref "AWS::Region", ami]
      InstanceType: r3.large
      KeyName: !FindInMap [RegionMap, !Ref "AWS::Region", key]
      SubnetId: !FindInMap [RegionMap, !Ref "AWS::Region", subnet]
      IamInstanceProfile: !Ref MasterNodeProfile
      SecurityGroupIds:
      - !Ref SecurityGroup
      - !Ref InternalSecurityGroup
      Tags:
      -
        Key: Name
        Value: Master for XYZ
      BlockDeviceMappings:
      - DeviceName: /dev/sda1
        Ebs:
          VolumeSize: 20
          DeleteOnTermination: True
          VolumeType: gp2
      UserData:
        Fn::Base64: !Sub |
           #!/bin/bash -xe
           yum install epel-release -y
           yum install python-pip -y
           pip install awscli

person alexfvolk    schedule 23.10.2017    source источник


Ответы (2)


Вы можете попробовать BlockDeviceMappings в свойствах EC2, чтобы определить том. Во-первых, вы хотите иметь два тома, вы можете добавить этот код.

"BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/sd1",
                    "Ebs": {
                        "VolumeSize": "50",
                        "DeleteOnTermination": true
                    }
                }
            ]

Вам нужно только добавить еще один, потому что корень создается автоматически при создании экземпляра EC2. Затем, если вы хотите удалить его, удалите эту часть (код выше) и обновите экземпляр. Будет удален второй том (/ dev / sd1).

person sin    schedule 24.10.2017
comment
Поскольку я использую шаблон jinja2, и это автоматизировано, это будет довольно сложно сделать. Я, вероятно, мог бы сделать это: получить шаблон с помощью запроса boto3, сохранить этот файл где-нибудь локально и выполнить синтаксический анализ регулярных выражений, чтобы извлечь этот фрагмент из шаблона, сохранить его и обновить стек с этим новым шаблоном. Ой .. - person alexfvolk; 24.10.2017
comment
Я не очень хорошо знаком с jinja, поэтому хочу знать, обрабатывает ли ваш jinja весь шаблон или только часть EBS? Если это только часть EBS, можно ли создать 2 разных шаблона jinja, первый из которых имеет 2 ebs, а второй - только root? - person sin; 24.10.2017
comment
Можете добавить версию на yaml? - person Ramon Moraes; 11.04.2019

Вместо того, чтобы удалять его вручную, обновите стек, который удалит ресурс. Обновление / удаление вашего стека не удастся, если вы удалите его вручную и не обновите стек.

От: Я вручную удалил ресурс, созданный CloudFormation . Обновить мой стек сейчас не удается. Как я могу решить эту проблему?

Если ресурс был удален, потому что он вам больше не нужен и вы хотите удалить его из стека, удалите ресурс и все ссылки на него из вашего шаблона, а затем выполните обновление стека.

person helloV    schedule 23.10.2017
comment
Ах, извините, я только что узнал, что объем EBS даже не считается ресурсом. Я обновил свой исходный вопрос. - person alexfvolk; 24.10.2017