AWS Security Hub · Neptune
Neptune.9: Neptune clusters should span multiple AZs
Written and reviewed by Emnode · Last reviewed
What does AWS Security Hub Neptune.9 check?
Neptune.9 fails when a Neptune DB cluster does not have read-replica instances spread across multiple Availability Zones. The control checks the cluster's instance topology, not just storage durability.
Why does Neptune.9 matter?
Neptune storage is replicated across AZs and so is durable, but a single-instance cluster is not highly available — if its AZ fails, Neptune must rebuild the primary from storage, which takes many minutes of downtime. With a replica in a second AZ, failover promotes the existing replica in seconds. The gap is the difference between a brief blip and a multi-minute outage.
How do I fix Neptune.9?
- Inspect the cluster's instances and their AZs with describe-db-clusters and describe-db-instances.
- Add a read-replica in a different AZ with create-db-instance, matching the primary's instance class.
- Set failover priority tiers so the right replica is promoted, and point read traffic at the reader endpoint.
- Default a multi-AZ topology in your IaC so new clusters are compliant from creation.
Remediation script · bash
# Fix the highest-impact data stores first: enable Multi-AZ on production databases.
for db in $(aws rds describe-db-instances \
--query 'DBInstances[?MultiAZ==`false` && DBClusterIdentifier==null].DBInstanceIdentifier' --output text); do
aws rds modify-db-instance --db-instance-identifier "$db" \
--multi-az --apply-immediately
echo "$db: standby being provisioned in a second AZ"
done
# Span a stateless compute fleet across three AZs, then mirror the set on its load balancer.
aws autoscaling update-auto-scaling-group --auto-scaling-group-name web-tier-asg \
--vpc-zone-identifier "subnet-0aaa1,subnet-0bbb2,subnet-0ccc3"
aws elbv2 set-subnets --load-balancer-arn "$ALB_ARN" \
--subnets subnet-0aaa1 subnet-0bbb2 subnet-0ccc3 Full walkthrough (console steps, edge cases and verification) in the lesson Deploy across multiple Availability Zones.
More Neptune controls
- Neptune.1 Neptune clusters should encrypt at rest
- Neptune.2 Neptune clusters should export audit logs to CW
- Neptune.3 A Neptune snapshot is shared publicly
- Neptune.5 Neptune clusters should have automated backups
- Neptune.6 Neptune snapshots should be encrypted at rest
- Neptune.7 Neptune clusters should have IAM DB auth