AWS Security ChangesHomeSearch

AWS autoscaling documentation change

Service: autoscaling · 2025-11-22 · Documentation low

File: autoscaling/ec2/userguide/example_auto-scaling_Scenario_GroupsAndInstances_section.md

Summary

Updated documentation example to use hardcoded values instead of CloudFormation stack, simplified EC2 client initialization, removed VPC/subnet discovery logic, and adjusted Auto Scaling group creation parameters

Security assessment

Changes focus on simplifying code examples rather than addressing security issues. Removal of CloudFormation stack management and hardcoding subnet/VPC values could potentially reduce security best practices (like dynamic resource allocation), but there's no explicit evidence of addressing a vulnerability or security incident.

Diff

diff --git a/autoscaling/ec2/userguide/example_auto-scaling_Scenario_GroupsAndInstances_section.md b/autoscaling/ec2/userguide/example_auto-scaling_Scenario_GroupsAndInstances_section.md
index 7eed7a921..c74aea556 100644
--- a//autoscaling/ec2/userguide/example_auto-scaling_Scenario_GroupsAndInstances_section.md
+++ b//autoscaling/ec2/userguide/example_auto-scaling_Scenario_GroupsAndInstances_section.md
@@ -5 +5 @@
-# Learn the basics of Auto Scaling with an AWS SDK
+# Learn the basics of Amazon EC2 Auto Scaling with an AWS SDK
@@ -382 +382 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-Define functions that are called by the scenario to manage launch templates and metrics. These functions wrap Auto Scaling, Amazon EC2, and CloudWatch actions.
+Define functions that are called by the scenario to manage launch templates and metrics. These functions wrap Amazon EC2 Auto Scaling, Amazon EC2, and CloudWatch actions.
@@ -1682 +1682 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-        private static final String ROLES_STACK = "MyCdkAutoScaleStack";
+    
@@ -1687 +1687 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                        <groupName>
+                        <groupName> <launchTemplateName> <vpcZoneId>
@@ -1690,0 +1691,2 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
+                        launchTemplateName - The name of the launch template.\s
+                        vpcZoneId - A subnet Id for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created.
@@ -1693 +1695,9 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            String groupName = "MyAutoScalingGroup2";
+            //if (args.length != 3) {
+            //    System.out.println(usage);
+            //    System.exit(1);
+           // }
+    
+            String groupName = "Scott250" ; //rgs[0];
+            String launchTemplateName = "MyTemplate5" ;//args[1];
+            String vpcZoneId = "subnet-0ddc451b8a8a1aa44" ; //args[2];
+    
@@ -1695 +1705 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                    .region(Region.US_WEST_2)
+                    .region(Region.US_EAST_1)
@@ -1698,3 +1708 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            Ec2Client ec2 = Ec2Client.builder()
-                    .region(Region.US_WEST_2)
-                    .build();
+            Ec2Client ec2 = Ec2Client.create();
@@ -1707,8 +1714,0 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            System.out.println("First, we will create a launch template using a CloudFormation script");
-            CloudFormationHelper.deployCloudFormationStack(ROLES_STACK);
-            Map<String, String> stackOutputs = CloudFormationHelper.getStackOutputsAsync(ROLES_STACK).join();
-            String launchTemplateName = stackOutputs.get("LaunchTemplateNameOutput");
-            String vpcZoneId = getVPC(ec2);
-            updateTemlate(ec2, launchTemplateName );
-            System.out.println("The VPC zone id created by the CloudFormation stack is"+vpcZoneId);
-    
@@ -1716,2 +1716 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            createAutoScalingGroup(autoScalingClient, ec2, groupName, launchTemplateName, vpcZoneId);
-    
+            createAutoScalingGroup(autoScalingClient, groupName, launchTemplateName, vpcZoneId);
@@ -1788,2 +1787 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            System.out.println("13. Delete the Auto Scaling group and cloud formation resources");
-            CloudFormationHelper.destroyCloudFormationStack(ROLES_STACK);
+            System.out.println("13. Delete the Auto Scaling group");
@@ -1800,50 +1797,0 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-        public static String getVPC(Ec2Client ec2) {
-            try {
-                DescribeVpcsRequest request = DescribeVpcsRequest.builder()
-                        .filters(f -> f.name("isDefault").values("true"))
-                        .build();
-    
-                DescribeVpcsResponse response = ec2.describeVpcs(request);
-    
-                if (!response.vpcs().isEmpty()) {
-                    Vpc defaultVpc = response.vpcs().get(0);
-                    System.out.println("Default VPC ID: " + defaultVpc.vpcId());
-                    return defaultVpc.vpcId();
-                } else {
-                    System.out.println("No default VPC found.");
-                    return null; // Return null if no default VPC is found
-                }
-    
-            } catch (Ec2Exception e) {
-                System.err.println("EC2 error: " + e.awsErrorDetails().errorMessage());
-                return null; // Return null in case of an error
-            }
-        }
-    
-    
-        public static void updateTemlate(Ec2Client ec2, String launchTemplateName ) {
-            // Step 1: Create new launch template version
-            String newAmiId = "ami-0025f0db847eb6254";
-            RequestLaunchTemplateData launchTemplateData = RequestLaunchTemplateData.builder()
-                    .imageId(newAmiId)
-                    .build();
-    
-            CreateLaunchTemplateVersionRequest createVersionRequest = CreateLaunchTemplateVersionRequest.builder()
-                    .launchTemplateName(launchTemplateName)
-                    .versionDescription("Updated with valid AMI")
-                    .sourceVersion("1")
-                    .launchTemplateData(launchTemplateData)
-                    .build();
-    
-            CreateLaunchTemplateVersionResponse createResponse = ec2.createLaunchTemplateVersion(createVersionRequest);
-            int newVersionNumber = createResponse.launchTemplateVersion().versionNumber().intValue();
-    
-            // Step 2: Modify default version
-            ModifyLaunchTemplateRequest modifyRequest = ModifyLaunchTemplateRequest.builder()
-                    .launchTemplateName(launchTemplateName)
-                    .defaultVersion(String.valueOf(newVersionNumber))
-                    .build();
-    
-            ec2.modifyLaunchTemplate(modifyRequest);
-            System.out.println("Updated launch template to version " + newVersionNumber + " with AMI " + newAmiId);
-        }
@@ -1890 +1837,0 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                                                  Ec2Client ec2Client,
@@ -1893 +1840 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                                                  String vpcId) {
+                String vpcZoneId) {
@@ -1895,15 +1842 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                // Step 1: Get one subnet ID in the given VPC
-                DescribeSubnetsRequest subnetRequest = DescribeSubnetsRequest.builder()
-                        .filters(Filter.builder().name("vpc-id").values(vpcId).build())
-                        .build();
-    
-                DescribeSubnetsResponse subnetResponse = ec2Client.describeSubnets(subnetRequest);
-    
-                if (subnetResponse.subnets().isEmpty()) {
-                    throw new RuntimeException("No subnets found in VPC: " + vpcId);
-                }
-    
-                String subnetId = subnetResponse.subnets().get(0).subnetId(); // Use first subnet
-                System.out.println("Using subnet: " + subnetId);
-    
-                // Step 2: Create launch template reference
+                AutoScalingWaiter waiter = autoScalingClient.waiter();
@@ -1914 +1846,0 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                // Step 3: Create Auto Scaling group
@@ -1916,0 +1849 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
+                        .availabilityZones("us-east-1a")
@@ -1918 +1850,0 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                        .minSize(1)
@@ -1920 +1852,2 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                        .vpcZoneIdentifier(subnetId)  // Correct: subnet ID, not VPC ID
+                        .minSize(1)
+                        .vpcZoneIdentifier(vpcZoneId)
@@ -1924,3 +1856,0 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-    
-                // Step 4: Wait until group is created
-                AutoScalingWaiter waiter = autoScalingClient.waiter();
@@ -1931,3 +1861,2 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse =
-                        waiter.waitUntilGroupExists(groupsRequest);
-    
+                WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter
+                        .waitUntilGroupExists(groupsRequest);
@@ -1937,2 +1866,2 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            } catch (Ec2Exception | AutoScalingException e) {
-                System.err.println("Error: " + e.awsErrorDetails().errorMessage());
+            } catch (AutoScalingException e) {
+                System.err.println(e.awsErrorDetails().errorMessage());
@@ -4194 +4123 @@ To use the Amazon Web Services Documentation, Javascript must be enabled. Please
-Hello Auto Scaling
+Hello Amazon EC2 Auto Scaling