Contenido del curso

Optimizar latencia en EC2 con tenencia dedicada

Resumen

Cinco milisegundos de latencia parecen poca cosa, pero en el core bancario de Nexe Bank esos milisegundos significan miles de dólares al año. Aquí te muestro cómo optimizar el rendimiento de instancias EC2 en AWS ajustando tenencia, grupos de ubicación, interfaces de red y plantillas de lanzamiento, pensado para quienes administran cargas críticas o se preparan para la certificación.

¿Qué es la tenencia en EC2 y cuándo conviene cada tipo?

La tenencia define dónde vive físicamente tu máquina virtual. Recuerda que una instancia EC2 corre sobre un servidor de Amazon, y tú decides cómo se reparte ese hardware [0:25].

Existen tres modalidades:

  • Host compartido: es la opción predeterminada. El mismo hardware corre máquinas virtuales de varias organizaciones. Si otra compañía consume demasiados recursos, tu latencia puede sufrir. Esto era lo que pasaba en Nexe Bank.
  • Instancia dedicada: un hardware completo reservado solo para tus cargas.
  • Host dedicado: el servidor entero es tuyo. Controlas hosts, puertos y puedes optimizar a un nivel mucho más fino. Esta fue la elección final de Nexe Bank [1:15].

¿Cuándo elegir un host dedicado en EC2? Cuando necesitas control total sobre el hardware, cumplir requisitos de licenciamiento o eliminar el ruido de vecinos. Para banca, salud o cargas con latencia crítica, suele justificar el costo.

¿Qué grupos de ubicación existen en EC2 y para qué sirven?

Los placement groups deciden cómo se distribuyen tus instancias entre el hardware físico de AWS [1:50].

Cluster, spread y partition

  • Cluster: agrupa instancias en el mismo espacio físico. Ideal para cargas de alto rendimiento donde la latencia entre nodos manda.
  • Spread: garantiza que cada instancia viva en hardware separado. Si un servidor falla, las demás cargas siguen vivas. Pensado para alta disponibilidad.
  • Partition: agrupa lógicamente varios spreads en hardware distinto. Es la opción típica para aplicaciones data intensivas como Hadoop, Kafka o Cassandra [2:35].

¿Cómo elegir la interfaz de red correcta en EC2?

La red entre instancias también se optimiza, y aquí AWS te da tres opciones que vale la pena memorizar si vas por la certificación [3:05].

  • ENI (Elastic Network Interface): la más común. Sirve para la mayoría de cargas y aporta resiliencia, porque si una instancia falla, la interfaz se puede reasignar a otra.
  • ENA (Elastic Network Adapter): pensada para cargas de alto rendimiento que requieran un throughput de 10 a 100 Gbps. Este número aparece seguido en exámenes.
  • EFA (Elastic Fabric Adapter): la menos común. Se usa en HPC y machine learning, donde la comunicación entre instancias es intensa [3:50].

¿Cuál es la diferencia entre ENA y EFA? ENA optimiza throughput de red estándar de alto rendimiento. EFA está diseñada para HPC y entrenamiento distribuido de modelos, donde la latencia entre nodos importa más que el ancho de banda puro.

¿Qué son las AMIs y cómo personalizar una imagen en AWS?

Una AMI (Amazon Machine Image) es la plantilla desde la que se lanzan tus instancias [4:25]. AWS ofrece un catálogo amplio:

  • Quick starts: alrededor de 45 imágenes predeterminadas con Linux de Amazon, macOS, Red Hat, Ubuntu, SUSE o Windows.
  • Comunidad: imágenes creadas por otros usuarios.
  • Marketplace: imágenes vendidas por partners de AWS.

Si ya configuraste una instancia con un programa, reglas de firewall y ajustes propios, puedes convertirla en imagen reutilizable. Desde la instancia, vas a Actions > Image and templates > Create image, le pones nombre, descripción y eliges los volúmenes asociados [5:30].

También puedes generar AMIs con herramientas externas como Packer o usar el Image Builder de AWS, que automatiza creación de imágenes y snapshots por schedule, expresiones cron o triggers manuales [6:00].

¿Cómo funcionan los Launch Templates y por qué reemplazan a Launch Configurations?

Un Launch Template es una plantilla que guarda toda la configuración necesaria para lanzar nuevas instancias [6:25]. Sobre una AMI, agregas:

  • Tipo de instancia.
  • Key pair para acceso SSH.
  • Security groups, zona de disponibilidad y subnet.
  • Volúmenes y opciones avanzadas como hibernación o protección contra apagado.
  • User data: un script que se ejecuta cada vez que la instancia arranca.

Los Launch Templates van de la mano con los Auto Scaling Groups, que aumentan o reducen capacidad de forma automática. La versión anterior, los Launch Configurations, está deprecada y no soporta versionamiento. Con los templates puedes mantener varias versiones y volver atrás cuando lo necesites [7:30].

¿Cómo hibernar una instancia EC2 sin perder el estado?

La hibernación es útil cuando una carga se prende y apaga varias veces y necesitas conservar lo que hay en memoria [8:00].

Dos requisitos clave:

  • La instancia debe tener un kernel compatible (kernel de Linux).
  • Debes habilitar la opción de hibernación al crear la instancia o en el Launch Template.

Al detener una instancia con hibernación activa, AWS guarda el contenido de la RAM en el disco duro. Cuando la prendes de nuevo, todo vuelve exactamente como lo dejaste [8:35].

¿Qué diferencia hay entre detener e hibernar una instancia EC2? Detener apaga la instancia y limpia la RAM. Hibernar guarda el estado de la memoria en disco para retomarlo intacto al encender de nuevo.

¿Tienes en tu empresa una carga que se beneficiaría de host dedicado, placement groups o hibernación? Cuéntame tu caso en los comentarios.