By using AWS re:Post, you agree to the Terms of Use
/cloudformation to create ec2 using volume attachment for root./

cloudformation to create ec2 using volume attachment for root.


Hello I am trying to create one EC2 using cloudformation. The requirement is to use volume attachment with a snapshot id. This snapshot id is coming from my AMI and the snapshot id provided is the root device. (AMI only consist of one snapshot)

I got the error message: Property ImageId cannot be empty when deploying the resource. When I input the ImageId for AWS::EC2::Instance, it will crash with AWS::EC2::VolumeAttachment property.

Can someone help to modify my template and point out how can I fix this issue?

Description: "AWS CloudFormation sample template.  Create a new EC2 instance"
      IamInstanceProfile: ec2role
      InstanceType: t2.micro
        - sg-123456
      SubnetId: subnet-123456
          Key: Name
          Value: ec2test
    Type: "AWS::EC2::Instance"
      Device: /dev/xvda
      InstanceId: myEC2Instance
      VolumeId: myVolume
    Type: "AWS::EC2::VolumeAttachment"
      AvailabilityZone: !GetAtt myEC2Instance.AvailabilityZone
      Size: 10
      SnapshotId: snap-123456
          Key: Name
          Value: ebstest
      VolumeType: gp2
      Size: 10
    Type: "AWS::EC2::Volume"

1 Answers

I think you may have a simple syntax error here.

Have a look at the YAML code snippet on this page:

You need to use !Ref to reference the names of the other resources.

Hope this helps

answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions