Reduzca su factura de AWS al eliminar las instantáneas de discos huérfanos y sin usar

Descripción del problema

Las instantáneas de volumen de AWS, también conocidas como instantáneas de EBS, se utilizan ampliamente para realizar copias de seguridad y restaurar datos en Amazon EC2, siendo lo importante que es hoy en día mantenerse protegido. Pero, ¿cómo se cobran estas instantáneas? ¿Cuánto me cuesta mantenerme protegido? ¿Puedo de alguna manera reducir mi factura de AWS eliminando los recursos no utilizados? En este artículo, responderemos a cada una de estas preguntas con respuestas perspicaces.

Los recursos de la nube mal administrados y las facturas de la nube impredecibles no son un mito. Los líderes de TI se enfrentan a este problema común a diario. La falta de transparencia podría ser uno de los principales obstáculos, lo que impide analizar y optimizar los costos de su nube de AWS. La visibilidad es clave para la optimización y contar con una estrategia FinOps claramente definida tiene como objetivo brindar más transparencia, evitar excesos en el presupuesto e identificar el presupuesto desperdiciado y los recursos inactivos, como instantáneas de discos huérfanos y sin usar.

Cómo se cobran las instantáneas de volumen de AWS

Las instantáneas de EBS se cobran en gigabytes por mes, por lo que un punto importante aquí es comprender cómo se generan y cuánto almacenamiento consumen en realidad.

Las instantáneas de AWS se almacenan de forma incremental. Esto significa que la primera instantánea de su instancia es una copia completa, y cada instantánea adicional es incremental, por lo que solo se almacenan las partes modificadas, o deltas, de su volumen de EBS.

Reduzca la factura de AWS limpiando las instantáneas huérfanas

Echemos un vistazo a un ejemplo de esto: aquí hay una instancia de 200 GB ejecutándose en su cuenta. La primera instantánea que cree también será de 200 GB y se le cobrará por esta cantidad de datos. Si tiene 205 GB de datos adicionales, emulando un caso en el que no se cambiaron los 200 GB iniciales, la próxima vez que cree una instantánea, se le cobrarán 5 GB adicionales de almacenamiento de instantáneas para la segunda instantánea.

Optimización gratuita de costos en la nube para toda la vida

Inscribirse

Por qué las empresas siguen pagando después de eliminar una instancia en AWS

Lo siguiente que debe recordar es que cuando se elimina una instancia en AWS, el volumen de esta instancia también se elimina, pero las instantáneas permanecen en la nube. Por lo tanto, quedan huérfanos y, a menudo, simplemente se pierden entre los demás. Sin embargo, todavía tienes que pagar por ellos.

En cuanto a todos los demás servicios de AWS, el precio también varía de una región a otra. Sin embargo, el precio promedio es de aproximadamente $0.05 por GB-mes de datos almacenados. Algunos dirían que esto no es mucho para pagar, y puede que tenga razón, pero aquí es donde entra el problema principal: cuantas más instantáneas tenga, mayor será su factura.

Obviamente, la solución óptima para este problema es tener una política disponible que describa cómo almacena y conserva las instantáneas y los scripts no utilizados, para luego encontrarlos y limpiarlos.

Cómo encontrar y eliminar instantáneas huérfanas y sin usar

El proceso de encontrar instantáneas huérfanas es un poco complejo. El motivo de la complejidad es que no solo tiene que obtener la lista de instantáneas, sino también obtener la lista de volúmenes/AMI y verificar si las instantáneas están vinculadas o no a volúmenes e imágenes particulares.

Desde la consola de AWS:

La consola de AWS es bastante deficiente para identificar si una instantánea está relacionada con cualquier AMI o volumen existente. Por ejemplo, incluso si se elimina un volumen de la nube, el campo Id. de volumen en la página de instantáneas seguirá teniendo el valor original, pero aún puede usar la página de Instantáneas para eliminar instantáneas innecesarias, de la siguiente manera:

Cómo encontrar y eliminar instantáneas no utilizadas de la consola de AWS

Desde la CLI de AWS:

Para obtener la lista de instantáneas no vinculadas a ningún volumen, haga lo siguiente:

ORPHANED_SNAPSHOT_IDS=$(comm -23 <(aws ec2 describe-snapshots --owner-ids $AWS-ACCOUNT-ID --query 'Snapshots[*].SnapshotId' --output text | tr '\t' '\n' | sort) <(aws ec2 describe-volumes --query 'Volumes[*].SnapshotId' --output text | tr '\t' '\n' | sort | uniq))

Para obtener la lista de instantáneas no vinculadas a ninguna AMI, haga lo siguiente:

ORPHANED_SNAPSHOT_IDS=$(comm -23 <(aws ec2 describe-snapshots --owner-ids $AWS_ACCOUNT_ID --query 'Snapshots[*].SnapshotId' --output text | tr '\t' '\n' | sort) <(aws ec2 describe-images --filters Name=state,Values=available --owners $AWS_ACCOUNT_ID --query "Images[*].BlockDeviceMappings[*].Ebs.SnapshotId" --output text | tr '\t' '\n' | sort | uniq))

Utilice un bucle de shell normal para eliminar las instantáneas de los volúmenes y las AMI:

for snapshot_id in $ORPHANED_SNAPSHOT_IDS; do echo "aws ec2 delete-snapshot --snapshot-id $snapshot_id"; done

Conclusión

Un equipo de ingeniería de la empresa suele crear docenas de instantáneas de volumen de AWS a diario. Las instantáneas de EBS se han convertido en una opción popular para realizar copias de seguridad y restaurar datos en Amazon EC2. Pero pueden surgir algunos desafíos al eliminar instancias, y muchas empresas continúan pagando por ellos. 

Las formas de identificar y eliminar instantáneas huérfanas y no utilizadas, como se describe en el artículo, lo ayudarán a evitar desperdicios, lograr objetivos de optimización, reducir su factura de la nube y dar los pasos iniciales para implementar una metodología FinOps en su empresa.