
Ahorro de Costes en AWS (ECR)
AWS ofrece escalabilidad y flexibilidad, pero los costes pueden dispararse rápidamente. Para gestionarlos, puedes verte tentado a optimizar costes de forma manual; sin embargo, pronto comprobarás que consume mucho tiempo y es propenso a errores. La automatización, por el contrario, resulta esencial para una gestión eficiente de los costes en la nube.
Hoy veremos algunas políticas de ciclo de vida que puedes aplicar a tus repositorios de ECR si tu organización usa contenedores como unidad de despliegue. El objetivo es limpiar automáticamente las imágenes sin uso u obsoletas para mantener bajo control los costes de almacenamiento.
Echa un vistazo a las siguientes políticas de ciclo de vida:
1. Eliminar Imágenes sin etiquetar
Si el repositorio de ECR no está configurado con inmutabilidad de etiquetas, es posible acumular un gran número de imágenes sin etiquetar que probablemente nunca se reutilizarán. Este comportamiento es típico en repositorios de desarrollo, por lo que aplicar la siguiente política ayuda a reducir el almacenamiento usado y a mantener el repositorio limpio.
Cuando se cumple la regla, la acción que se ejecuta es expirar (eliminar) la imagen. La acción se lleva a cabo en un plazo de 24 horas.
{
"rules": [
{
"rulePriority": 1,
"description": "ECR Clean Untagged",
"selection": {
"tagStatus": "untagged",
"countType": "sinceImagePushed",
"countUnit": "days",
"countNumber": 7
},
"action": {
"type": "expire"
}
}
]
}
Veamos los criterios de selección:
- tagStatus: untagged → La regla se aplica solo a imágenes sin etiquetar
- countType: sinceImagePushed → Las imágenes se conservan durante 7 días desde que se publican
2. Eliminar Imágenes etiquetadas antiguas
Se necesita una segunda política de ciclo de vida para eliminar las imágenes etiquetadas antiguas. Esta política debe adaptarse al ciclo de releases de tu equipo, proyecto u organización.
A continuación, una propuesta de política agresiva (recuerda que el objetivo es reducir costes):
{
"rules": [
{
"rulePriority": 1,
"description": "ECR Clean Tagged",
"selection": {
"tagStatus": "tagged",
"tagPatternList": ["TAG_PREFIX*"],
"countType": "imageCountMoreThan",
"countNumber": 5
},
"action": {
"type": "expire"
}
},
]
}
Esta política expira todas las imágenes etiquetadas que coinciden con el patrón [TAG_PREFIX]* del espacio de nombres namespace_name, conservando las cinco más recientes. Por ejemplo, si tu equipo publica versiones cada mes, esto equivale a conservar aproximadamente los últimos cinco meses de imágenes.
Una alternativa menos agresiva es mover las imágenes a la clase de almacenamiento «archive» de ECR. Sin embargo, según los precios de AWS, el ahorro puede no ser lo bastante significativo para justificar este enfoque.

Reflexiones finales
Automatizar la optimización de costes en AWS permite a las organizaciones reducir gastos, mejorar la eficiencia y mantener un mejor control de su infraestructura en la nube.
Dos consejos finales,
- Previsualiza las políticas de ciclo de vida → Puedes probar la vista previa de las imágenes afectadas en la consola antes de definir la política
- Replicación de ECR → recuerda que, si usas la replicación de ECR entre regiones o cuentas, las políticas de ciclo de vida solo se aplican a los repositorios de la región donde se crearon. Tendrás que replicar la política también en esos repositorios.