Contoh kegagalan cloudformation AWS tidak berjalan

Saya mencoba membuat instans Amazon EC2 lalu membuat volume Amazon EBS dan melampirkannya ke instans tersebut. Saya menggunakan templat CloudFormation untuk ini. Sayangnya pembuatan tumpukan gagal saat melampirkan volume yang baru dibuat ke instance dengan kesalahan berikut:

Contoh 'i-01eebc8c9c492c035' tidak 'berjalan'. (Layanan: AmazonEC2; Kode Status: 400; Kode Kesalahan: IntrueState; ID Permintaan: 635572fd-dd25-4a02-9306-6e22f88e13dc)

Apa yang saya tidak mengerti adalah, ketika pembuatan instance selesai, itu berarti instance tersebut sudah aktif dan berjalan. Bagaimana kesalahan ini bisa terjadi?

Saya menggunakan templat CloudFormation berikut:

{
  "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"
        ]
      }
    }
  }
}

Apa yang saya lakukan salah?


person varun    schedule 25.08.2018    source sumber
comment
Ini pertama kalinya saya memposting di stack over flow.maaf atas tampilannya. berikut adalah Template Cloudformation. github.com/varun1020/practice_all/blob/master/   -  person varun    schedule 26.08.2018
comment
Sudahkah Anda mencoba menambahkan Atribut DependsOn - AWS CloudFormation ke Volume, menunjuk ke instance EC2?   -  person John Rotenstein    schedule 26.08.2018
comment
Saya baru saja mencobanya, tidak berhasil dan saya juga memperhatikan bahwa secara default instance berada dalam keadaan berhenti ketika diluncurkan. bagaimana cara mengubah perilaku itu menjadi berlari?   -  person varun    schedule 26.08.2018


Jawaban (3)


Karena Anda membuat volume baru, akan lebih mudah untuk menentukan volume sebagai bagian dari instans daripada menentukan volume Amazon EBS dan kemudian melampirkannya ke instans.

Dari Properti Pemetaan Perangkat Blok Amazon EC2 - AWS CloudFormation:

Contoh ini menetapkan ukuran perangkat root yang didukung EBS (/dev/sda1) menjadi 50 GiB, dan perangkat lain yang didukung EBS dipetakan ke /dev/sdm yang berukuran 100 GiB.

"BlockDeviceMappings" : [
   {
      "DeviceName" : "/dev/sda1",
      "Ebs" : { "VolumeSize" : "50" }
   },
   {
      "DeviceName" : "/dev/sdm",
      "Ebs" : { "VolumeSize" : "100" }
   }
] 
person John Rotenstein    schedule 25.08.2018
comment
Terima kasih atas tanggapannya John. Saya ingin mengenkripsi volume yang dibuat pada langkah berikutnya (yang tidak mungkin dilakukan dengan cara ini) dan juga ingin menguji penambahan tanda hapus pada penghentian pada langkah AWS::EC2::VolumeAttachment. Saya bilang tes karena saya tidak yakin bisa ditambahkan pada langkah itu. - person varun; 26.08.2018

Itu cukup menarik, melihat bagaimana kejadiannya berhenti!

Saat menggunakan Amazon Linux 2, masalah ini dapat diperbaiki dengan mengubah:

"DeviceName": "/dev/sda1",

ke dalam:

"DeviceName": "/dev/xvda",

Atau, dapat diperbaiki dengan menggunakan Amazon Linux (versi 1) dengan /dev/sda1.

Namun, ini tidak memperbaiki masalah VolumeAttachment Anda.

person John Rotenstein    schedule 26.08.2018

Saya menghadapi masalah yang sama sampai saya mengubah AMI di template saya. Awalnya, saya menguji dengan Linux AMI di wilayah N.Virginia yang gagal tetapi ketika saya menggunakan CENTOS AMI yang saya berlangganan, itu berhasil.

person user12744191    schedule 19.01.2020