Gli sprechi di risorse cloud raramente derivano da un singolo grande errore. Si accumulano in silenzio: un developer avvia un'istanza RDS di test, crea uno snapshot, elimina l'istanza ma dimentica lo snapshot. Moltiplicato per decine di account, questo comportamento brucia migliaia di euro ogni mese in infrastruttura inutilizzata.
Il Costo delle Risorse Orfane non Monitorate
Negli ambienti AWS e GCP multi-account, tracciare volumi EBS non collegati (stato 'available'), Elastic IP non associati e snapshot RDS datati tramite console web è inefficiente e soggetto a errori. CloudPrune CLI incapsula gli SDK dei cloud provider in una suite di audit automatizzata senza dipendenze da daemon esterni.
Audit Programmatico delle Risorse in Python
Nel suo nucleo, CloudPrune analizza i dispositivi di blocco, le interfacce di rete e i metadati degli snapshot sfruttando chiamate SDK leggere. Di seguito è riportato uno snippet semplificato che mostra come CloudPrune individua i volumi EBS non collegati su più regioni AWS:
import boto3
from typing import List, Dict, Any
def scan_unattached_ebs(regions: List[str]) -> List[Dict[str, Any]]:
unattached_volumes = []
for region in regions:
ec2 = boto3.client('ec2', region_name=region)
response = ec2.describe_volumes(
Filters=[{'Name': 'status', 'Values': ['available']}]
)
for vol in response.get('Volumes', []):
unattached_volumes.append({
'region': region,
'volume_id': vol['VolumeId'],
'size_gb': vol['Size'],
'monthly_cost_usd': vol['Size'] * 0.10
})
return unattached_volumesAudit Continuo tramite Pipeline CI/CD
I tool CLI manuali sono efficaci solo se i dev si ricordano di eseguirli. CloudPrune include workflow GitHub Actions pronti all'uso che eseguono audit programmati, generano report JSON strutturati e inviano notifiche via Slack prima della chiusura del ciclo di fatturazione.