Не работает экземпляр сбоя облачной информации AWS - PullRequest
0 голосов
/ 26 августа 2018

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

Экземпляр 'i-01eebc8c9c492c035' не 'выполняется'.(Сервис: AmazonEC2; Код состояния: 400; Код ошибки: IncorrectState; Идентификатор запроса: 635572fd-dd25-4a02-9306-6e22f88e13dc)

Что я не понимаю, когда создание экземпляра завершено, это означает, что экземпляр запущен и работает.Как эта ошибка возможна?

Я использую следующий шаблон CloudFormation:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "single instance template",
  "Parameters": {
    "InstanceType": {
      "Type": "String",
      "Default": "t2.micro"
    },
    "InstanceName": {
      "Type": "String",
      "Default": "test_CFT"
    },
    "RootVolumeSize": {
      "Type": "String",
      "Default": "50"
    },
    "Volume1Size": {
      "Type": "String",
      "Default": "8"
    },
    "Region": {
      "Type": "String",
      "Default": "us-east-2"
    },
    "AMIID": {
      "Type": "String",
      "Default": "ami-8c122be9"
    },
    "SubnetIds": {
      "Type": "CommaDelimitedList",
      "Default": "subnet-595e7422"
    },
    "SecurityGroupIDs": {
      "Type": "CommaDelimitedList",
      "Default": "sg-082faee8335351537"
    }
  },
  "Resources": {
    "Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": {
          "Ref": "AMIID"
        },
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "KeyName": "thehope",
        "NetworkInterfaces": [
          {
            "AssociatePublicIpAddress": "false",
            "DeviceIndex": "0",
            "SubnetId": {
              "Fn::Select": [
                0,
                {
                  "Ref": "SubnetIds"
                }
              ]
            },
            "GroupSet": {
              "Ref": "SecurityGroupIDs"
            }
          }
        ],
        "BlockDeviceMappings": [
          {
            "DeviceName": "/dev/sda1",
            "Ebs": {
              "VolumeSize": {
                "Ref": "RootVolumeSize"
              },
              "DeleteOnTermination": "true",
              "VolumeType": "gp2"
            }
          }
        ],
        "Tags": [
          {
            "Key": "Name",
            "Value": {
              "Ref": "InstanceName"
            }
          }
        ]
      }
    },
    "Volume1": {
      "DeletionPolicy": "Delete",
      "Properties": {
        "AvailabilityZone": {
          "Fn::GetAtt": [
            "Instance",
            "AvailabilityZone"
          ]
        },
        "Encrypted": "False",
        "Size": {
          "Ref": "Volume1Size"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "New_volume"
          }
        ],
        "VolumeType": "gp2"
      },
      "Type": "AWS::EC2::Volume"
    },
    "VolumeAttachment1": {
      "Properties": {
        "Device": "/dev/xvdb",
        "InstanceId": {
          "Ref": "Instance"
        },
        "VolumeId": {
          "Ref": "Volume1"
        }
      },
      "Type": "AWS::EC2::VolumeAttachment"
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": "InstanceId of the instance",
      "Value": {
        "Ref": "Instance"
      }
    },
    "AZ": {
      "Description": "Availability Zone of the instance",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "AvailabilityZone"
        ]
      }
    },
    "PrivateIP": {
      "Description": "PrivateIP of the instance",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "PrivateIp"
        ]
      }
    }
  }
}

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Было довольно увлекательно видеть, как экземпляр останавливается!

При использовании Amazon Linux 2 это можно исправить, изменив:

"DeviceName": "/dev/sda1",

в

"DeviceName": "/dev/xvda",

Или это можно исправить с помощью Amazon Linux (версия 1) с /dev/sda1.

Однако это не решает вашу проблему VolumeAttachment.

0 голосов
/ 26 августа 2018

Поскольку вы создаете новые тома, было бы проще просто указать тома как часть экземпляра , а не указывать том Amazon EBS, а затем присоединить его к экземпляру.

Из Свойство сопоставления блочных устройств Amazon EC2 - AWS CloudFormation :

В этом примере размер корневого устройства (/ dev / sda1) с поддержкой EBS (/ dev / sda1) равен 50 ГиБ, а другой EBSустройство с привязкой к / dev / sdm размером 100 ГиБ.

"BlockDeviceMappings" : [
   {
      "DeviceName" : "/dev/sda1",
      "Ebs" : { "VolumeSize" : "50" }
   },
   {
      "DeviceName" : "/dev/sdm",
      "Ebs" : { "VolumeSize" : "100" }
   }
] 
...