Home » Java » Enterprise Java » AWS CloudFormation: AutoScaling Group – You must use a valid fully-formed launch template

About Steven Wall

Steven Wall

AWS CloudFormation: AutoScaling Group – You must use a valid fully-formed launch template

I had a AWS CloudFormation template that included an Auto Scaling Group, Launch Template and Security Group.

The Auto Scaling Group being created was to use the Launch Template being created. And that Launch Template was to use the Security Group being created.

When I created my CloudFormation stack, the stack failed with this error when my Auto Scaling Group was been created:

1
CREATE_FAILED You must use a valid fully-formed launch template. The parameter groupName cannot be used with the parameter subnet (Service: AmazonAutoScaling; Status Code: 400; Error Code: ValidationError; Request ID: e3c2b7e1-d94b-4a8d-a044-c15ba8791b62)

Even though the error says the issue is with the Auto Scaling Group, my issue was with my Launch Template. I attempted to specify the associated Security Group using the SecurityGroups property.

However, I needed to use the SecurityGroupIds property since I was not using the default VPC. The SecurityGroups property documentation states:

Security Groups

[EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.

Source: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups

When I switched to using SecurityGroupIds, my stack would create.

Here is the CloudFormation template for my Launch Template and Auto Scaling Group:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
EC2SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Security Group for EC2 instances.
      #Other properties including SecurityGroupIngress, SecurityGroupEgress, VpcId
DemoLaunchTemplate:
    Type: AWS::EC2::LaunchTemplate
    Properties:
      LaunchTemplateName: demo-launch-template
      LaunchTemplateData:
        BlockDeviceMappings:
          - Ebs:
              VolumeSize: 8
              VolumeType: gp2
              DeleteOnTermination: true
              Encrypted: true
            DeviceName: /dev/xvdh
        ImageId: ami-098f16afa9edf40be
        InstanceType: t2.micro
        SecurityGroupIds:
          - !GetAtt EC2SecurityGroup.GroupId
DemoAutoScalingGroup:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties:
      AutoScalingGroupName: demo-auto-scaling-group
      MinSize: "2"
      MaxSize: "4"
      DesiredCapacity: "2"
      HealthCheckGracePeriod: 300
      LaunchTemplate:
        LaunchTemplateId: !Ref DemoLaunchTemplate
        Version: !GetAtt DemoLaunchTemplate.LatestVersionNumber
      VPCZoneIdentifier:
        - subnet-0123
        - subnet-0456

Published on Java Code Geeks with permission by Steven Wall, partner at our JCG program. See the original article here: AWS CloudFormation: AutoScaling Group – You must use a valid fully-formed launch template

Opinions expressed by Java Code Geeks contributors are their own.

(0 rating, 0 votes)
You need to be a registered member to rate this.
Start the discussion Views Tweet it!
Do you want to know how to develop your skillset to become a Java Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to the Terms and Privacy Policy
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments