Profile Applicability:
Level 2
Description:
EC2 Auto Scaling Groups (ASGs) can be configured to span multiple Availability Zones (AZs) within a region. This setup ensures higher availability and fault tolerance by distributing instances across multiple AZs, protecting applications from AZ-level failures. This control verifies that ASGs are configured to use multiple AZs.
Rationale:
Using multiple AZs increases application resilience and availability by eliminating single points of failure. It aligns with AWS best practices for designing highly available and fault-tolerant systems.
Impact:
Pros:
Enhances fault tolerance and availability
Improves load distribution across AZs
Supports disaster recovery planning
Cons:
Slightly higher data transfer and management overhead
Requires appropriate subnet configurations across AZs
Default Value:
ASGs may default to a single AZ if only one subnet is specified during creation.
Pre-requisites:
IAM permissions to describe and modify ASGs (
autoscaling:DescribeAutoScalingGroups
,autoscaling:UpdateAutoScalingGroup
)Access to AWS CLI or Console
Test Plan:
Using AWS CLI:
List all Auto Scaling Groups with their AZs:
aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[*].[AutoScalingGroupName,AvailabilityZones]" --output table
Verify that each ASG has more than one Availability Zone listed.
Using AWS Console:
Navigate to EC2 > Auto Scaling Groups.
Select each ASG and review the Details tab.
Check the Availability Zones section for multiple AZs.
Implementation Plan:
Using AWS Console:
Navigate to EC2 > Auto Scaling Groups.
Select the ASG to modify.
Click Edit.
Under Network, select additional Availability Zones by choosing the corresponding subnets.
Save the changes.
Using AWS CLI:
Update the ASG to include multiple AZs:
aws autoscaling update-auto-scaling-group --auto-scaling-group-name <ASG_NAME> --availability-zones <AZ1> <AZ2> [<AZ3> ...]
Verify the update:
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names <ASG_NAME> --query "AutoScalingGroups[0].AvailabilityZones"
Backout Plan:
Using AWS Console:
Edit the ASG and reduce the number of AZs to the previous configuration.
Save and verify ASG health and instance distribution.
Using AWS CLI:
Revert AZ configuration by running:
aws autoscaling update-auto-scaling-group --auto-scaling-group-name <ASG_NAME> --availability-zones <PREVIOUS_AZ_LIST>
Check ASG status and instance placement.