LaunchConfiguration ​
The LaunchConfiguration resource lets you define an EC2 instance configuration used by Auto Scaling groups to launch instances. For more details, refer to the AWS AutoScaling LaunchConfigurations documentation.
Minimal Example ​
Create a basic LaunchConfiguration with required properties and commonly used optional settings.
ts
import AWS from "alchemy/aws/control";
const launchConfig = await AWS.AutoScaling.LaunchConfiguration("myLaunchConfig", {
imageId: "ami-0abcdef1234567890", // Replace with a valid AMI ID
instanceType: "t2.micro", // Select a suitable instance type
keyName: "myKeyPair", // Provide your key pair name for SSH access
securityGroups: ["sg-0123456789abcdef0"], // Use a valid security group ID
associatePublicIpAddress: true // Enable public IP assignment
});
Advanced Configuration ​
Customize the LaunchConfiguration with additional options such as monitoring and EBS optimization.
ts
const advancedLaunchConfig = await AWS.AutoScaling.LaunchConfiguration("advancedLaunchConfig", {
imageId: "ami-0abcdef1234567890",
instanceType: "t2.micro",
keyName: "myKeyPair",
securityGroups: ["sg-0123456789abcdef0"],
ebsOptimized: true, // Optimize EBS for better performance
instanceMonitoring: true, // Enable detailed monitoring
blockDeviceMappings: [{
deviceName: "/dev/sda1",
ebs: {
volumeSize: 20, // Set volume size in GB
deleteOnTermination: true // Delete the volume on instance termination
}
}]
});
Spot Instance Configuration ​
Configure a LaunchConfiguration to launch Spot Instances with a specified maximum price.
ts
const spotLaunchConfig = await AWS.AutoScaling.LaunchConfiguration("spotLaunchConfig", {
imageId: "ami-0abcdef1234567890",
instanceType: "t2.micro",
keyName: "myKeyPair",
securityGroups: ["sg-0123456789abcdef0"],
spotPrice: "0.03", // Set maximum price for the Spot Instance
instanceMonitoring: false // Disable detailed monitoring for cost saving
});
Custom User Data ​
Provide a user data script to initialize the instance upon launch.
ts
const userDataLaunchConfig = await AWS.AutoScaling.LaunchConfiguration("userDataLaunchConfig", {
imageId: "ami-0abcdef1234567890",
instanceType: "t2.micro",
keyName: "myKeyPair",
securityGroups: ["sg-0123456789abcdef0"],
userData: `#!/bin/bash
echo "Hello World" > /var/www/html/index.html
systemctl start httpd`
});