Load Balancer and Autoscaling service in AWS Console
Commands to create a Load Balancer and autoscaling service in AWS Console. Useful to create quick scripts that spin up service.
Create the security group
$ aws ec2 create-security-group --group-name myELBSG --description "ELB Security Group"
{
"GroupId": "sg-cbb096b2"
}
$ aws ec2 authorize-security-group-ingress --group-id sg-cbb096b2 --protocol tcp --port 80 --cidr 0.0.0.0/0
Create Load Balancer
Checking the available subnets we create the load balancer.
$ aws ec2 describe-subnets
{
"Subnets": [
{
"AvailabilityZone": "us-west-1c",
"AvailableIpAddressCount": 4091,
"CidrBlock": "172.31.16.0/20",
"DefaultForAz": true,
"MapPublicIpOnLaunch": true,
"State": "available",
"SubnetId": "subnet-46eb9621",
"VpcId": "vpc-e2d77185",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": []
},
{
"AvailabilityZone": "us-west-1b",
"AvailableIpAddressCount": 4089,
"CidrBlock": "172.31.0.0/20",
"DefaultForAz": true,
"MapPublicIpOnLaunch": true,
"State": "available",
"SubnetId": "subnet-39f37d62",
"VpcId": "vpc-e2d77185",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": []
}
]
}
$ aws elb create-load-balancer --load-balancer-name myELB --listeners Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80 --subnets subnet-46eb9621 subnet-39f37d62
{
"DNSName": "myELB-843462165.us-west-1.elb.amazonaws.com"
}
Create the Autoscaling
We need to check the available zones
$ aws autoscaling create-launch-configuration --launch-configuration-name myAutoScalingLaunchConfig --image-id ami-bf5540df --instance-type t2.micro
$ aws ec2 describe-availability-zones
{
"AvailabilityZones": [
{
"State": "available",
"Messages": [],
"RegionName": "us-west-1",
"ZoneName": "us-west-1b"
},
{
"State": "available",
"Messages": [],
"RegionName": "us-west-1",
"ZoneName": "us-west-1c"
}
]
}
$ aws autoscaling create-auto-scaling-group --auto-scaling-group-name myAutoScaling --launch-configuration-name myAutoScalingLaunchConfig --availability-zones "us-west-1b" "us-west-1c" --load-balancer-names myELB --max-size 5 --min-size
2 --desired-capacity 3
See the autoscaling
$ aws autoscaling describe-auto-scaling-groups