Bird
Raised Fist0
AWScloud~5 mins

Auto Scaling with ELB integration in AWS - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Auto Scaling with ELB integration
O(n)
Understanding Time Complexity

When using Auto Scaling with an Elastic Load Balancer (ELB), it is important to understand how the number of operations grows as the number of instances changes.

We want to know how the system's work increases when more servers are added or removed.

Scenario Under Consideration

Analyze the time complexity of the following operation sequence.


# Create Auto Scaling group with ELB integration
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name my-asg \
  --launch-configuration-name my-launch-config \
  --min-size 1 --max-size 10 --desired-capacity 3 \
  --load-balancer-names my-elb

# Scale out by increasing desired capacity
aws autoscaling set-desired-capacity \
  --auto-scaling-group-name my-asg \
  --desired-capacity 5
    

This sequence creates an Auto Scaling group linked to an ELB and then increases the number of instances to be managed and balanced.

Identify Repeating Operations
  • Primary operation: Launching or terminating EC2 instances as the Auto Scaling group changes size.
  • How many times: Once per instance added or removed during scaling.
  • Secondary operation: Registering or deregistering each instance with the ELB.
  • How many times: Once per instance added or removed.
How Execution Grows With Input

Each time the desired capacity changes, the system launches or terminates instances and updates the ELB registration for each instance.

Input Size (n)Approx. Api Calls/Operations
10About 10 instance launches/terminations and 10 ELB registrations/deregistrations
100About 100 instance launches/terminations and 100 ELB registrations/deregistrations
1000About 1000 instance launches/terminations and 1000 ELB registrations/deregistrations

Pattern observation: The number of operations grows directly with the number of instances added or removed.

Final Time Complexity

Time Complexity: O(n)

This means the work grows linearly with the number of instances being scaled.

Common Mistake

[X] Wrong: "Adding more instances does not increase the number of API calls because the ELB handles them automatically."

[OK] Correct: Each instance must be individually launched and registered with the ELB, so more instances mean more operations.

Interview Connect

Understanding how scaling operations grow helps you design systems that respond well to demand changes and explain your reasoning clearly in discussions.

Self-Check

"What if the Auto Scaling group used target tracking policies instead of fixed desired capacity? How would the time complexity change?"

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

  1. 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.
  2. Step 2: Identify integration benefit

    Linking Auto Scaling with ELB ensures traffic is balanced only to healthy, running instances, improving availability.
  3. Final Answer:

    To distribute incoming traffic evenly across all running instances -> Option A
  4. 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

  1. 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'.
  2. 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.
  3. 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
  4. 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:
{
  "AutoScalingGroupName": "web-asg",
  "TargetGroupARNs": ["arn:aws:elasticloadbalancing:region:123456789012:targetgroup/web-tg/abc123"],
  "MinSize": 2,
  "MaxSize": 4,
  "DesiredCapacity": 3
}

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

  1. Step 1: Understand health check integration

    When an instance fails ELB health checks, Auto Scaling detects it as unhealthy.
  2. Step 2: Auto Scaling response

    Auto Scaling terminates the unhealthy instance and launches a new one to keep the desired capacity at 3.
  3. Final Answer:

    Auto Scaling terminates the unhealthy instance and launches a new one to maintain desired capacity -> Option A
  4. 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

  1. Step 1: Check ELB and Auto Scaling integration

    If instances are not registered with the ELB target group, ELB cannot send traffic to them.
  2. Step 2: Evaluate other options

    MinSize zero means no instances; region mismatch prevents communication; public IP not required for ELB internal routing.
  3. Final Answer:

    The instances are not registered with the ELB target group -> Option C
  4. 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

  1. Step 1: Define scaling trigger

    Scaling based on average CPU > 70% ensures scale out matches demand.
  2. Step 2: Ensure instance health before traffic

    Enabling ELB health checks with a grace period lets new instances become healthy before receiving traffic.
  3. Step 3: Combine both for smooth scaling

    This combination prevents traffic to unhealthy instances and scales only when needed.
  4. Final Answer:

    Create a scaling policy based on CPU > 70%, enable ELB health checks with grace period -> Option B
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard