Why This Matters
Unused Elastic IPs represent pure waste with zero value. AWS charges for unattached EIPs to encourage efficient IP usage, as reserved IP addresses are a finite resource. Even one forgotten EIP costs $43 annually.
Common causes:
- EIPs allocated for temporary testing that weren't released
- EIPs left attached to terminated instances
- Development environments that were shut down but IPs not cleaned up
How to Identify Unused Elastic IPs
AWS Saver flags Elastic IPs as unused when they are:
- Completely unattached (no InstanceId and no NetworkInterfaceId)
- Attached to stopped instances (associated but instance not running)
- Billing monthly charges ($3.60 per IP regardless of usage)
How to Fix Unused Elastic IPs
Step 1: Find completely unattached EIPs
aws ec2 describe-addresses \
--query 'Addresses[?InstanceId==null && NetworkInterfaceId==null].[PublicIp,AllocationId]'
Step 2: Find EIPs attached to stopped instances
aws ec2 describe-addresses \
--query 'Addresses[?InstanceId!=null].[PublicIp,InstanceId,AllocationId]' | \
while read -r ip instance_id alloc_id; do
state=$(aws ec2 describe-instances \
--instance-ids $instance_id \
--query 'Reservations[0].Instances[0].State.Name' \
--output text)
if [ "$state" = "stopped" ]; then
echo "EIP $ip attached to stopped instance $instance_id (allocation: $alloc_id)"
fi
done
Step 3: Release unused EIP (irreversible)
aws ec2 release-address --allocation-id eipalloc-1234567890abcdef0
Prevention Tips
Use dynamic public IPs: For most use cases, dynamic public IPs are sufficient and cost-free.
Release immediately: Release EIPs as soon as instances are terminated or testing is complete.
Tag Elastic IPs: Use tags to track EIP purpose and ownership for easier lifecycle management.
Regular audits: Schedule monthly reviews of Elastic IP usage as part of cost optimization.
Automation Available
Skip the manual work. AWS Saver automatically scans for unused Elastic IPs across all regions in seconds.
✅ Comprehensive detection - Finds both unattached and stopped-instance EIPs
✅ Immediate impact - Shows exact $3.60/month waste per unused IP
✅ Multi-region scanning - Covers all AWS regions simultaneously
✅ Zero false positives - Only flags truly unused IPs billing you monthly