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

У меня есть стек облачной информации, где я создаю экземпляр с 2 томами EBS, 1 основным / корневым и 1, который содержит много тестовых данных. Единственная причина присоединения тестовых данных - это верхняя загрузка данных в 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

2 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам