AWS Auto Scaling Groups / Launch Configurations

In AWS in order to build an auto scaling group, we need to configure a Launch Configuraton, this is a template which defines common parameters for each ec2 instance launched in to an auto scaling group.

Describing

$ aws autoscaling describe-launch-configurations --profile nonprod_admin --launch-configuration-names "AJ-launchconf4"
{
    "LaunchConfigurations": [
        {
            "LaunchConfigurationName": "AJ-launchconf4",
            "LaunchConfigurationARN": "arn:aws:autoscaling:eu-west-1:057726927330:launchConfiguration:df5e2c39-aa59-43fa-8e77-7f26e7ee9c10:launchConfigurationName/AJ-launchconf4",
            "ImageId": "ami-00b60bad97d2ab303",
            "KeyName": "AJS-aws",
            "SecurityGroups": [
                "sg-0c8d4dcf22182d992"
            ],
            "ClassicLinkVPCSecurityGroups": [],
            "UserData": "",
            "InstanceType": "t2.micro",
            "KernelId": "",
            "RamdiskId": "",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/xvda",
                    "Ebs": {
                        "SnapshotId": "snap-07ce0241eefdb9e56",
                        "VolumeSize": 16,
                        "VolumeType": "gp2",
                        "DeleteOnTermination": true
                    }
                }
            ],
            "InstanceMonitoring": {
                "Enabled": false
            },
            "CreatedTime": "2019-09-20T09:03:52.567Z",
            "EbsOptimized": false
        }
    ]
}
andrew@mac:auto-scaling$ aws autoscaling describe-auto-scaling-groups --profile nonprod_admin --auto-scaling-group-name aj-asg3
{
    "AutoScalingGroups": [
        {
            "AutoScalingGroupName": "aj-asg3",
            "AutoScalingGroupARN": "arn:aws:autoscaling:eu-west-1:057726927330:autoScalingGroup:c74d6cff-7402-4ac0-8632-8880895b7daf:autoScalingGroupName/ajs-asg3",
            "LaunchConfigurationName": "AJ-launchconf4",
            "MinSize": 0,
            "MaxSize": 1,
            "DesiredCapacity": 0,
            "DefaultCooldown": 300,
            "AvailabilityZones": [
                "eu-west-1c"
            ],
            "LoadBalancerNames": [],
            "TargetGroupARNs": [],
            "HealthCheckType": "EC2",
            "HealthCheckGracePeriod": 300,
            "Instances": [],
            "CreatedTime": "2019-06-21T10:12:35.947Z",
            "SuspendedProcesses": [],
            "VPCZoneIdentifier": "subnet-b4acc3fc",
            "EnabledMetrics": [],
            "Tags": [
                {
                    "ResourceId": "aj-asg3",
                    "ResourceType": "auto-scaling-group",
                    "Key": "Description",
                    "Value": "Test ASG for lifecycle",
                    "PropagateAtLaunch": true
                },
                {
                    "ResourceId": "aj-asg3",
                    "ResourceType": "auto-scaling-group",
                    "Key": "email",
                    "Value": "user@company.co.uk",
                    "PropagateAtLaunch": true
                }
            ],
            "TerminationPolicies": [
                "Default"
            ],
            "NewInstancesProtectedFromScaleIn": false,
            "ServiceLinkedRoleARN": "arn:aws:iam::057726927330:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
        }
    ]
}

Creating

$ aws autoscaling create-launch-configuration --launch-configuration-name AJ-launchconf5-cli --image-id ami-00b60bad97d2ab303 --key-name AJS-aws --security-groups sg-0c8d4dcf22182d992 --instance-type t2.micro --instance-monitoring Enabled=false --profile nonprod_admin
$ aws autoscaling create-auto-scaling-group --auto-scaling-group-name aj-asg4 --launch-configuration-name AJ-launchconf5-cli --min-size 0 --max-size 1 --availability-zones "eu-west-1c" --health-check-type EC2 --health-check-grace-period 300 --tags ResourceId=ajs-asg4,ResourceType=auto-scaling-group,Key=Description,Value="Test ASG for lifecycle",PropagateAtLaunch=true ResourceId=aj-asg4,ResourceType=auto-scaling-group,Key=email,Value="andrew.stringer@sainsburys.co.uk",PropagateAtLaunch=true  --profile nonprod_admin

Deleting

$ aws autoscaling delete-auto-scaling-group --auto-scaling-group-name aj-asg4 --profile nonprod_admin
$ aws autoscaling delete-launch-configuration --launch-configuration-name AJ-launchconf5-cli --profile nonprod_admin

Updating

$ aws autoscaling update-auto-scaling-group --auto-scaling-group-name aj-asg4 --min-size 1 --profile nonprod_admin 
$ 
$ aws autoscaling update-auto-scaling-group --auto-scaling-group-name aj-asg4 --desired-capacity 0 --profile nonprod_admin 
$
 
aws/asg-lc.txt · Last modified: 10/11/2022 10:36 by andrew