📖 Scenario: You are managing a web application hosted on AWS. To handle varying traffic, you want to automatically add or remove servers. You also want to distribute user requests evenly across these servers using a load balancer.
🎯 Goal: Build an AWS Auto Scaling Group that launches EC2 instances and integrates with an Elastic Load Balancer (ELB) to distribute traffic.
📋 What You'll Learn
Create a launch configuration with a specific AMI and instance type
Create an Elastic Load Balancer (ELB) with a listener on port 80
Create an Auto Scaling Group using the launch configuration and attach it to the ELB
Set the Auto Scaling Group to maintain a minimum and maximum number of instances
💡 Why This Matters
🌍 Real World
Web applications often face changing traffic. Auto Scaling with ELB ensures the app stays responsive and available by adding or removing servers automatically and balancing user requests.
💼 Career
Cloud engineers and DevOps professionals use Auto Scaling and ELB to build scalable, fault-tolerant applications on AWS.
Progress0 / 4 steps
1
Create a Launch Configuration
Create a launch configuration named web-launch-config with the AMI ID ami-0abcdef1234567890 and instance type t2.micro.
AWS
Hint
The launch configuration defines the AMI and instance type for your servers.
2
Create an Elastic Load Balancer (ELB)
Create an ELB resource named web-elb with a listener on port 80 for HTTP protocol and attach it to the default VPC subnets.
AWS
Hint
The ELB listens on port 80 and forwards traffic to instances on port 80.
3
Create an Auto Scaling Group
Create an Auto Scaling Group named web-asg using the launch configuration web-launch-config. Attach it to the ELB web-elb and set the minimum size to 1 and maximum size to 3.
AWS
Hint
The Auto Scaling Group uses the launch configuration and attaches to the ELB to balance traffic.
4
Add Health Check Configuration
Add a health check type of ELB and a health check grace period of 300 seconds to the Auto Scaling Group web-asg.
AWS
Hint
Health checks help the Auto Scaling Group know when to replace unhealthy instances.
Practice
(1/5)
1. What is the main purpose of integrating an Auto Scaling group with an Elastic Load Balancer (ELB)?
easy
A. To distribute incoming traffic evenly across all running instances
B. To store data persistently across instances
C. To create backups of instances automatically
D. To monitor the health of the database
Solution
Step 1: Understand Auto Scaling and ELB roles
Auto Scaling adjusts the number of servers based on demand. ELB distributes user traffic across these servers.
Step 2: Identify integration benefit
Linking Auto Scaling with ELB ensures traffic is balanced only to healthy, running instances, improving availability.
Final Answer:
To distribute incoming traffic evenly across all running instances -> Option A
Quick Check:
Auto Scaling + ELB = balanced traffic [OK]
Hint: ELB balances traffic; Auto Scaling adjusts servers [OK]
Common Mistakes:
Confusing ELB with storage or backup services
Thinking Auto Scaling manages data persistence
Assuming ELB monitors databases
2. Which of the following is the correct way to attach an Auto Scaling group to an ELB target group in AWS CLI?
easy
A. aws elb attach-instances --group-name my-asg --target-group-arn arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-target-group/abcdef123456
B. aws elb create-auto-scaling-group --name my-asg --target-group my-target-group
C. aws autoscaling create-target-group --name my-target-group --auto-scaling-group my-asg
D. aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg --target-group-arns arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-target-group/abcdef123456
Solution
Step 1: Identify correct AWS CLI command
The command to attach an Auto Scaling group to an ELB target group is 'aws autoscaling attach-load-balancer-target-groups'.
Step 2: Verify command parameters
It requires the Auto Scaling group name and the target group ARN, matching aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg --target-group-arns arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-target-group/abcdef123456.
Final Answer:
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg --target-group-arns arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-target-group/abcdef123456 -> Option D
Quick Check:
Attach ASG to ELB target group uses attach-load-balancer-target-groups [OK]
Hint: Use 'attach-load-balancer-target-groups' with ASG name and target group ARN [OK]
Common Mistakes:
Using ELB commands instead of Auto Scaling commands
Confusing target group ARN with target group name
Trying to create target groups via Auto Scaling CLI
3. Given this AWS Auto Scaling group configuration snippet:
What happens when one instance fails health checks in the ELB target group?
medium
A. Auto Scaling terminates the unhealthy instance and launches a new one to maintain desired capacity
B. ELB stops sending traffic but Auto Scaling does not replace the instance
C. Auto Scaling increases MaxSize to 5 automatically
D. Nothing happens until manual intervention
Solution
Step 1: Understand health check integration
When an instance fails ELB health checks, Auto Scaling detects it as unhealthy.
Step 2: Auto Scaling response
Auto Scaling terminates the unhealthy instance and launches a new one to keep the desired capacity at 3.
Final Answer:
Auto Scaling terminates the unhealthy instance and launches a new one to maintain desired capacity -> Option A
Quick Check:
Unhealthy instance triggers replacement by Auto Scaling [OK]
Hint: Auto Scaling replaces unhealthy instances to keep desired capacity [OK]
Common Mistakes:
Thinking ELB alone replaces instances
Assuming MaxSize changes automatically
Believing manual steps are needed
4. You configured an Auto Scaling group with an ELB target group, but new instances are not receiving traffic. What is the most likely cause?
medium
A. The ELB is in a different AWS region than the Auto Scaling group
B. The Auto Scaling group has MinSize set to zero
C. The instances are not registered with the ELB target group
D. The instances do not have public IP addresses
Solution
Step 1: Check ELB and Auto Scaling integration
If instances are not registered with the ELB target group, ELB cannot send traffic to them.
Step 2: Evaluate other options
MinSize zero means no instances; region mismatch prevents communication; public IP not required for ELB internal routing.
Final Answer:
The instances are not registered with the ELB target group -> Option C
Quick Check:
Instances must be registered with ELB target group to get traffic [OK]
Hint: Check instance registration in ELB target group first [OK]
Common Mistakes:
Assuming public IP is required for ELB traffic
Ignoring instance registration status
Confusing region mismatch with availability zone issues
5. You want to ensure your Auto Scaling group scales out only when the average CPU usage across all instances exceeds 70%, and also that new instances are healthy in the ELB before receiving traffic. Which combination of settings achieves this?
hard
A. Configure scaling policy on network traffic, and skip ELB health checks
B. Create a scaling policy based on CPU > 70%, enable ELB health checks with grace period
C. Use ELB health checks only, no CPU-based scaling policy
D. Set MinSize to 0, MaxSize to 10, and disable ELB health checks
Solution
Step 1: Define scaling trigger
Scaling based on average CPU > 70% ensures scale out matches demand.
Step 2: Ensure instance health before traffic
Enabling ELB health checks with a grace period lets new instances become healthy before receiving traffic.
Step 3: Combine both for smooth scaling
This combination prevents traffic to unhealthy instances and scales only when needed.
Final Answer:
Create a scaling policy based on CPU > 70%, enable ELB health checks with grace period -> Option B
Quick Check:
CPU scaling + ELB health checks = safe, demand-based scaling [OK]
Hint: Combine CPU scaling policy with ELB health checks and grace period [OK]
Common Mistakes:
Disabling ELB health checks causing traffic to unhealthy instances
Using wrong metric like network traffic for CPU-based scaling
Not setting grace period causing premature traffic routing
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.