06. Launch Configuration
ND9991 C2 L04 A04.1 Launch Configuration
The following is the syntax used for AutoScaling LaunchConfiguration:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
AssociatePublicIpAddress: Boolean
BlockDeviceMappings:
- BlockDeviceMapping
ClassicLinkVPCId: String
ClassicLinkVPCSecurityGroups:
- String
EbsOptimized: Boolean
IamInstanceProfile: String
ImageId: String
InstanceId: String
InstanceMonitoring: Boolean
InstanceType: String
KernelId: String
KeyName: String
LaunchConfigurationName: String
PlacementTenancy: String
RamDiskId: String
SecurityGroups:
- String
SpotPrice: String
UserData: String
The ImageId and Instance Type are the only required properties for a LaunchConfiguration. However, there are many useful properties you will likely want to include.
WebAppLaunchConfig:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
UserData:
Fn::Base64: !Sub |
#!/bin/bash
apt-get update -y
apt-get install unzip awscli -y
apt-get install apache2 -y
systemctl start apache2.service
cd /var/www/html
aws s3 cp s3://udacity-demo-1/udacity.zip .
unzip -o udacity.zip
ImageId: ami-005bdb005fb00e791
IamInstanceProfile: !Ref ProfileWithRolesForOurApp
SecurityGroups:
- Ref: WebServerSecGroup
InstanceType: t3.small
BlockDeviceMappings:
- DeviceName: "/dev/sdk"
Ebs:
VolumeSize: '10'
In the above example we have done the following:
- Specified 10gbs for our
VolumeSize. - Referenced the previously defined
WebServerSecGroupfor ourSecurityGroup - Set our
InstanceTypetot3.mediumfor ourEC2 Instance
To see all available instance types click here.