Cuando migré los workloads de una organización sanitaria pública con más de 2,000 endpoints a Oracle Cloud Infrastructure (OCI), la gestión de costos se convirtió en una prioridad ineludible. El presupuesto de TI estaba congelado, pero la demanda de procesamiento clínico y administrativo crecía mes a mes. La solución no fue recortar servicios, sino cambiar la estrategia de aprovisionamiento de cómputo. Implementar Spot Instances OCI nos permitió reducir los costos de computación en un 40% sin degradar la disponibilidad de las aplicaciones críticas. En esta guía, te explico cómo identificar los workloads adecuados, configurar un sistema de failover automático con Ansible y ajustar el dimensionamiento para evitar pagar por recursos ociosos. Si tu organización necesita mantener los SLA mientras recorta el presupuesto cloud, esta aproximación técnica marca la diferencia. No se trata solo de apagar servidores. Se trata de inteligencia operativa. Aplicar esta metodología requiere conocer a fondo el ciclo de vida de las instancias en OCI y las herramientas de automatización disponibles.
Requisitos Previos / Entorno de Prueba
Para replicar esta arquitectura en tu propio entorno, necesitas la siguiente configuración base:
- Ansible Core >= 2.14 instalado en la estación de administración
- OCI CLI configurado con las credenciales y el archivo de configuración válido
- Colección de Ansible para OCI instalada (
oracle.oci.oci_compute_instance) - Permisos IAM suficientes para gestionar instancias de compute y políticas de tenancy
- Acceso a métricas de monitorización (CPU/Memoria) de los últimos 30 días en OCI Monitoring
- Python SDK para OCI actualizado a la última versión estable
Identificar Cargas de Trabajo para Spot Instances OCI
Las Spot Instances en OCI aprovechan la capacidad de compute no utilizada de los datacenters, ofreciendo descuentos de hasta el 90% frente a las instancias on-demand. El inconveniente es que OCI puede reclamar esos recursos con un preaviso de dos minutos si la demanda de capacidad sube en la región.
En la organización sanitaria, analizamos los patrones de uso durante tres semanas. Identificamos el procesamiento batch nocturno de datos anonimizados y los pipelines de CI/CD como candidatos perfectos. Son workloads stateless, tolerantes a interrupciones y fáciles de reubicar. Nunca pongas una base de datos Oracle primaria en una Spot Instance si no tienes una réplica física sincronizada en una instancia on-demand. La regla es clara: si el proceso no puede recuperarse automáticamente de un reinicio forzado, no pertenece a una Spot Instance.
Para evaluar tus workloads, revisa las métricas de resiliencia. Si una interrupción de 120 segundos causa una pérdida de datos irreversible o un fallo regulatorio según NIS2 art.21, mantén esa carga en instancias on-demand o reserved.
Implementar Failover Automático con Ansible
Para garantizar la continuidad del servicio, diseñé un sistema de failover basado en Ansible. OCI inyecta un evento de terminación en los metadatos de la instancia dos minutos antes del apagado. Nuestro playbook de Ansible sondea este endpoint local y, al detectar la señal, lanza una instancia on-demand de reemplazo en otra Availability Domain (AD). El proceso completa la migración en menos de 90 segundos.
Aquí tienes un fragmento simplificado del playbook que gestiona el failover:
- name: Check OCI Instance Preemption Status
uri:
url: "http://169.254.169.254/opc/v1/instance/instancePreemptionAction"
return_content: yes
register: preemption_status
until: preemption_status.json.status == "TERMINATE"
retries: 60
delay: 2
- name: Launch On-Demand Failover Instance
oracle.oci.oci_compute_instance:
compartment_id: "{{ compartment_ocid }}"
availability_domain: "{{ failover_ad }}"
shape: "VM.Standard.E4.Flex"
display_name: "on-demand-failover-{{ instance_name }}"
source_details:
source_type: "image"
image_id: "{{ image_ocid }}"
state: "present"
when: preemption_status.json.status == "TERMINATE"
Este enfoque nos asegura que, si OCI reclama la capacidad, el tráfico redirige a la nueva instancia antes de que la antigua se apague. Configura este playbook como un servicio systemd o mediante un cron job que se ejecute cada minuto. La velocidad de reacción es tu principal garantía de disponibilidad. Lee también: Hardening SSH en Linux: Guía Completa 2026
Optimizar el Dimensionamiento de Instancias
El ahorro real no proviene solo de las Spot Instances. Muchas organizaciones pagan por instancias sobredimensionadas. Al revisar las métricas de uso en OCI Monitoring, notamos que varias máquinas virtuales rara vez superaban el 15% de utilización de CPU. Redimensionar estas instancias de VM.Standard.E4.Flex con 8 OCPUs a 2 OCPUs redujo el costo base de forma inmediata.
Combinar el right-sizing con Spot Instances multiplica el ahorro de forma exponencial. Pasar de una instancia on-demand grande a una Spot Instance ajustada a las necesidades reales genera un descuento efectivo que supera el 90% en muchos casos. El dimensionamiento debe revisarse trimestralmente. Los picos de tráfico no justifican mantener recursos ociosos los 365 días. Para los picos puntuales, configura el auto-scaling con Spot Instances y deja que el cluster escale horizontalmente bajo demanda.
Errores Comunes y Resolución de Problemas
Al implementar esta arquitectura, me encontré con varios problemas recurrentes que pueden arruinar tu estrategia de ahorro.
- Ignorar la señal de preemption de dos minutos. Si tu script de failover tarda más de 120 segundos en aprovisionar la nueva instancia, la antigua se apaga antes de completar la transición. Solución: Optimiza el playbook para que solo ejecute las tareas esenciales de aprovisionamiento y utiliza imágenes custom preconfiguradas para evitar tiempos de setup largos.
- Montar volúmenes de bloque sin replicación en Spot Instances. Si la instancia se termina y el volumen no está respaldado por un backup automatizado, pierdes datos. Solución: Usa políticas de backup automatizado en OCI Block Volume o replica los datos en OCI Object Storage de forma asíncrona.
- Configurar el auto-scaling sin límites máximos. Si hay un pico de demanda y tus Spot Instances se interrumpen masivamente, el auto-scaler intentará reemplazarlas con instancias on-demand. Sin un tope de presupuesto, esto puede disparar tu factura mensual. Solución: Define un hard budget en OCI Cloud Guard o en las políticas de tenancy para detener el escalado cuando se supere el umbral de gasto.
Conclusiones con Puntos Clave Operativos
Reducir un 40% el costo de cómputo en OCI no es magia, es ingeniería de precisión. Los puntos clave que aplicamos fueron:
- Auditar workloads: clasifica qué aplicaciones son tolerantes a interrupciones y cuáles requieren alta disponibilidad garantizada antes de moverlas a Spot Instances.
- Automatizar el failover: un playbook de Ansible que reacciona a los metadatos de preemption de OCI en menos de 90 segundos evita caídas de servicio perceptibles por los usuarios.
- Right-sizing continuo: ajusta los OCPUs y la memoria a la demanda real, no a los picos hipotéticos que ocurren dos veces al año.
La optimización de costos cloud es un proceso continuo, no un proyecto puntual. Todavía no tengo una respuesta definitiva sobre si los modelos de pricing de los proveedores cloud se simplificarán en el futuro, pero mientras tanto, dominar las Spot Instances y la automatización te da una ventaja competitiva real. Puedes consultar la documentación oficial sobre el ciclo de vida de instancias en OCI Spot Instances Documentation.