Optimización de costos de AWS: ahorre entre un 30 % y un 50 % en su factura de infraestructura de nube
La organización promedio desperdicia el 32% de su gasto en la nube en recursos inactivos o sobreaprovisionados. Para una empresa que gasta $5,000 por mes en AWS, eso significa que se desperdician $19,200 por año. La optimización de costos de la nube no se trata de tomar atajos, sino de pagar solo por lo que realmente usa.
Esta guía cubre todo el espectro de estrategias de reducción de costos de AWS, desde resultados rápidos que ahorran dinero este mes hasta cambios arquitectónicos que aumentan los ahorros con el tiempo.
Conclusiones clave
- El tamaño correcto por sí solo ahorra entre un 20% y un 40% al hacer coincidir los tipos de instancias con el uso real de recursos
- Las instancias reservadas y los planes de ahorro ofrecen descuentos del 30 % al 60 % para cargas de trabajo predecibles.
- Las instancias de spot reducen los costos informáticos entre un 60 y un 90 % para cargas de trabajo tolerantes a fallas
- Las políticas de ciclo de vida del almacenamiento evitan que los costos de S3 crezcan indefinidamente
El marco de optimización de costos
Orden de prioridad
Optimice en este orden para obtener el máximo retorno de la inversión con el mínimo esfuerzo:
- Eliminar residuos (inmediato, sin riesgo)
- Instancias del tamaño adecuado (1-2 semanas, riesgo bajo)
- Utilice modelos de precios (reservados, al contado, planes de ahorro)
- Optimizar la arquitectura (meses, requiere ingeniería)
Paso 1: Eliminar el desperdicio
Encuentra recursos no utilizados
# Find unattached EBS volumes (you are paying for storage with no use)
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].{ID:VolumeId,Size:Size,Type:VolumeType}' \
--output table
# Find unused Elastic IPs
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].{IP:PublicIp,AllocationId:AllocationId}' \
--output table
# Find idle load balancers (no targets)
aws elbv2 describe-target-groups \
--query 'TargetGroups[*].{ARN:TargetGroupArn,Name:TargetGroupName}' \
--output table
# Find stopped instances still consuming EBS
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,StopTime:StateTransitionReason}' \
--output table
Fuentes de residuos comunes
| Fuente de residuos | Costo mensual típico | Arreglar |
|---|---|---|
| Volúmenes de EBS no adjuntos | $10-100 por volumen | Eliminar o tomar una instantánea y eliminar |
| Instancias detenidas con EBS | $20-200 por instancia | Terminar o crear AMI |
| IP elásticas no utilizadas | $3.60 cada uno | Lanzamiento |
| Instantáneas antiguas | $0,05/GB | Política de ciclo de vida |
| Puertas de enlace NAT de gran tamaño | $32+ por puerta de enlace | Consolide y utilice puntos finales de VPC |
| Instancias RDS inactivas | $50-500+ | Detener o finalizar instancias de desarrollo |
Paso 2: Tamaño correcto
Analizar el uso real
# Get average CPU utilization over the last 14 days
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
--start-time $(date -u -d '14 days ago' +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 3600 \
--statistics Average Maximum \
--output json
Matriz de decisión sobre el tamaño adecuado
| CPU promedio | CPU máxima | Acción |
|---|---|---|
| <10% | <30% | Reducir el tamaño en 2 pasos (por ejemplo, de extragrande a mediano) |
| 10-30% | <60% | Reducir el tamaño 1 paso (por ejemplo, de extragrande a grande) |
| 30-60% | <80% | Tamaño actual apropiado |
| >60% | >80% | Considere aumentar el tamaño o escalar automáticamente |
Optimización del tipo de instancia
| Instancia actual | Tamaño adecuado | Ahorros Mensuales |
|---|---|---|
| m5.xlarge ($140) | m5.grande ($70) | $70 (50%) |
| r5.2xgrande ($365) | r6g.xlarge ($146) | $219 (60%) |
| t3.grande ($60) | t3.medio ($30) | $30 (50%) |
| c5.xlarge ($124) | c6g.grande ($62) | $62 (50%) |
Pasar a instancias Graviton (ARM) (r6g, c6g, m6g) proporciona un ahorro de costos adicional del 20 % con un rendimiento igual o mejor para la mayoría de las cargas de trabajo.
Paso 3: Modelos de precios
Instancias reservadas frente a planes de ahorro
| Característica | Instancias reservadas | Calcular Planes de Ahorro | Planes de Ahorro EC2 |
|---|---|---|---|
| Descuento | 30-60% | 30-54% | 40-60% |
| Flexibilidad | Tipo de instancia/región específica | Cualquier familia/región de instancias | Familia/región de instancias específicas |
| Compromiso | 1 o 3 años | 1 o 3 años | 1 o 3 años |
| Lo mejor para | Cargas de trabajo estables y predecibles | Cargas de trabajo mixtas | Familias de instancias específicas |
Recomendación: Comience con Compute Savings Plans para mayor flexibilidad. Comprométase con el uso mínimo de referencia en el que esté seguro.
Instancias puntuales
Las instancias de spot ofrecen descuentos del 60 % al 90 %, pero pueden interrumpirse con un aviso de 2 minutos.
Bueno para:
- Corredores de compilación CI/CD
- Procesamiento por lotes y canales de datos.
- Entornos de desarrollo y puesta en escena.
- Servidores web sin estado detrás de un equilibrador de carga (con respaldo bajo demanda)
No es bueno para:
- Bases de datos
- Aplicaciones de instancia única
- Cargas de trabajo con estado sin puntos de control
# Launch template with Spot Instance
Resources:
SpotFleet:
Type: AWS::EC2::SpotFleet
Properties:
SpotFleetRequestConfigData:
AllocationStrategy: lowestPrice
TargetCapacity: 5
LaunchSpecifications:
- InstanceType: t3.large
ImageId: ami-0123456789abcdef0
- InstanceType: t3.xlarge
ImageId: ami-0123456789abcdef0
- InstanceType: m5.large
ImageId: ami-0123456789abcdef0
Paso 4: Optimización del almacenamiento
Políticas de ciclo de vida de S3
{
"Rules": [
{
"ID": "ArchiveOldBackups",
"Status": "Enabled",
"Filter": {
"Prefix": "backups/"
},
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"Expiration": {
"Days": 730
}
}
]
}
Precios de la clase de almacenamiento S3
| Clase de almacenamiento | Precio por GB/mes | Recuperación | Mejor para |
|---|---|---|---|
| Estándar | $0,023 | Instantáneo | Datos activos |
| Estándar-IA | $0,0125 | Instantánea ($0.01/GB de recuperación) | Acceso mensual |
| Glaciar instantáneo | $0,004 | Instantáneo ($0.03/GB de recuperación) | Acceso trimestral |
| Glaciar | $0,004 | 1-12 horas | Acceso anual |
| Archivo profundo | $0,00099 | 12 horas | Cumplimiento a largo plazo |
Optimización de EBS
# Convert gp2 volumes to gp3 (20% cheaper, better performance)
for vol_id in $(aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 --query 'Volumes[*].VolumeId' --output text); do
echo "Converting $vol_id from gp2 to gp3"
aws ec2 modify-volume --volume-id "$vol_id" --volume-type gp3
done
Paso 5: Escalado automático
Escalado basado en programación
La mayoría de las aplicaciones B2B ven un 70% menos de tráfico fuera del horario comercial:
# Scale down at night
aws autoscaling put-scheduled-action \
--auto-scaling-group-name production-asg \
--scheduled-action-name scale-down-night \
--recurrence "0 20 * * 1-5" \
--desired-capacity 2 \
--min-size 1
# Scale up in the morning
aws autoscaling put-scheduled-action \
--auto-scaling-group-name production-asg \
--scheduled-action-name scale-up-morning \
--recurrence "0 7 * * 1-5" \
--desired-capacity 5 \
--min-size 3
Programación del entorno de desarrollo
Detener entornos que no sean de producción fuera del horario laboral:
# Stop dev/staging instances at 7 PM
aws ec2 stop-instances --instance-ids i-dev123 i-staging456
# Start at 8 AM
aws ec2 start-instances --instance-ids i-dev123 i-staging456
Ahorro mensual: ejecutar instancias de desarrollo 10 horas al día en lugar de 24 ahorra un 58 %.
Lista de verificación de revisión de costos mensuales
- [] Revise AWS Cost Explorer para detectar anomalías
- [] Verificar recursos no utilizados (volúmenes, IP, instantáneas)
- [] Validar recomendaciones de tamaño adecuado (AWS Compute Optimizer)
- Revisar la cobertura de Instancia Reservada / Plan de Ahorro
- [] Verifique la efectividad de la política de ciclo de vida y crecimiento del almacenamiento de S3
- [] Revisar los costos de transferencia de datos (a menudo entre el 10 y el 15 % de la factura total)
- [] Verificar que los umbrales de escalado automático coincidan con los patrones de tráfico actuales
- [] Verificar recursos huérfanos de implementaciones fallidas
Preguntas frecuentes
Eliminar recursos no utilizados. La mayoría de las cuentas de AWS tienen cientos de dólares al mes en volúmenes de EBS no asociados, IP elásticas no utilizadas, instantáneas antiguas e instancias detenidas. Esto lleva menos de una hora y ahorra dinero de inmediato. La segunda victoria más rápida es convertir los volúmenes de EBS de gp2 a gp3: el mismo o mejor rendimiento a un costo un 20 % menor.
Calcular planes de ahorro para la mayoría de las empresas. Ofrecen descuentos comparables a las instancias reservadas, pero con más flexibilidad: no está limitado a un tipo de instancia específico. Utilice Instancias reservadas EC2 solo cuando esté seguro de los tipos de instancias durante 1 a 3 años.
Utilice etiquetas de recursos de AWS. Etiquete cada recurso con las etiquetas project, team, environment y cost-center. Habilite las etiquetas de asignación de costos en la consola de facturación. Cree informes de Cost Explorer agrupados por etiqueta para ver el gasto por proyecto. Aplique el etiquetado con reglas de AWS Config que marcan recursos sin etiquetar.
Los contenedores mejoran la utilización de recursos entre un 30% y un 50% en comparación con la ejecución de una aplicación por servidor. ECS Fargate y EKS simplifican la gestión de contenedores pero agregan precios por tarea. Para la mayoría de las PYMES, EC2 con Docker Compose ofrece el mejor equilibrio entre simplicidad y costo. Consulte nuestra guía de implementación de Docker para obtener detalles de implementación.
¿Qué viene después?
La optimización de costos es una práctica continua, no un proyecto único. Programe revisiones de costos mensuales e integre el monitoreo de costos en su configuración de alertas de producción. Para conocer la estrategia de infraestructura completa, consulte nuestra guía de DevOps para pequeñas empresas.
Comuníquese con ECOSIRE para obtener consultoría sobre optimización de costos de AWS o explore nuestros servicios de soporte de Odoo para obtener infraestructura administrada con optimización de costos integrada.
Publicado por ECOSIRE: ayuda a las empresas a optimizar el gasto en infraestructura de nube.
Escrito por
ECOSIRE Research and Development Team
Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.
Artículos relacionados
Patrones de puerta de enlace API y mejores prácticas para aplicaciones modernas
Implemente patrones de puerta de enlace API que incluyen limitación de velocidad, autenticación, enrutamiento de solicitudes, disyuntores y control de versiones de API para arquitecturas web escalables.
Optimización del rendimiento de CDN: la guía completa para una entrega global más rápida
Optimice el rendimiento de la CDN con estrategias de almacenamiento en caché, informática de punta, optimización de imágenes y arquitecturas multi-CDN para una entrega de contenido global más rápida.
Mejores prácticas de canalización de CI/CD: automatice su camino hacia implementaciones confiables
Cree canales de CI/CD confiables con las mejores prácticas para pruebas, preparación, automatización de implementación, estrategias de reversión y escaneo de seguridad en flujos de trabajo de producción.