Caracteristicas adicionales de EC2

Clase 13 de 69Curso de AWS Certified Solutions Architect Associate

Resumen

La optimización del rendimiento en la nube puede marcar una diferencia significativa en los costos operativos de las empresas. Como demuestra el caso de Nexia Bank, incluso 5 milisegundos de latencia pueden traducirse en miles de dólares anuales. Descubre cómo ajustar parámetros específicos en AWS EC2 para maximizar el rendimiento y reducir costos de tus aplicaciones críticas.

¿Qué es la tenencia en EC2 y cómo afecta el rendimiento?

La tenencia se refiere al lugar donde se ejecutan nuestras cargas de trabajo en AWS. Una instancia EC2 es esencialmente una máquina virtual que opera en un servidor de Amazon, pero podemos configurar dónde y cómo se ejecuta esta máquina virtual. Existen tres tipos principales de tenencia:

  • Host compartido: Es la configuración predeterminada donde múltiples máquinas virtuales de diferentes organizaciones operan en el mismo hardware. Aunque cada una tiene su separación, si otra máquina virtual consume demasiados recursos, puede afectar la latencia de nuestras aplicaciones.

  • Instancia dedicada: En este caso, tenemos un hardware dedicado exclusivamente para ejecutar nuestras cargas de trabajo, lo que mejora el rendimiento al no competir por recursos.

  • Host dedicado: Representa el nivel más alto de dedicación, donde todo el servidor está asignado únicamente a nuestras cargas de trabajo. Esto nos permite controlar todos los aspectos del servidor y optimizar de manera más específica.

Para Nexia Bank, la solución fue implementar un host dedicado, eliminando la interferencia de otras organizaciones y mejorando significativamente la latencia de sus aplicaciones bancarias críticas.

¿Cómo funcionan los grupos de ubicación para optimizar cargas de trabajo?

Los grupos de ubicación son estrategias para distribuir instancias EC2 que permiten optimizar el rendimiento según diferentes necesidades:

Grupos de tipo clúster

Están optimizados para cargas de trabajo de alto rendimiento. Las instancias se colocan en el mismo espacio físico para minimizar la latencia y maximizar el rendimiento en la comunicación entre ellas.

Grupos de tipo spread

Diseñados para aplicaciones que requieren alta disponibilidad. Cada instancia se coloca en hardware físico separado, asegurando que un fallo en un componente no afecte a todas las instancias simultáneamente.

Grupos de tipo partition

Son una forma lógica de agrupar varios spreads o cargas de trabajo en diferentes hardwares. Esta configuración es ideal para aplicaciones data-intensivas como Hadoop, Kafka o Cassandra.

¿Qué interfaces de red ofrece AWS para optimizar el networking?

Las interfaces de red son componentes esenciales para la comunicación entre instancias EC2. AWS ofrece tres tipos:

  1. ENI (Elastic Network Interface): Es la más común y adecuada para la mayoría de las cargas de trabajo. Proporciona alta resiliencia y disponibilidad, ya que la interfaz puede mantenerse activa incluso si una instancia falla, permitiendo su transferencia a una nueva instancia.

  2. ENA (Elastic Network Adapter): Utilizada para cargas de trabajo de alto rendimiento que requieren un throughput de entre 10 a 100 gigabytes por segundo. Este valor es importante recordarlo para el examen de certificación.

  3. EFA (Elastic Fabric Adapter): La menos común, diseñada específicamente para cargas de HPC (High Performance Computing) o aplicaciones de machine learning que necesitan comunicación intensiva entre diferentes instancias.

AMIs e imágenes personalizadas

Las AMIs (Amazon Machine Images) son las imágenes desde las cuales se lanzan las máquinas virtuales en EC2. AWS proporciona un catálogo con opciones predefinidas:

Quick Starts:
- Amazon Linux
- MacOS
- Red Hat
- Ubuntu
- SUSE
- Windows

Para crear AMIs personalizadas podemos:

  1. Configurar una instancia existente y crear una imagen desde ella
  2. Utilizar herramientas externas como Packer
  3. Usar AWS Image Builder para crear imágenes y snapshots según reglas predefinidas

Launch Templates y configuraciones avanzadas

Los Launch Templates son plantillas para lanzar nuevas instancias con configuraciones predefinidas. Ofrecen ventajas como:

  • Versionamiento de configuraciones
  • Compatibilidad con Auto Scaling Groups
  • Configuración de hibernación para instancias
  • Scripts de UserData para ejecutar instrucciones al inicio

La hibernación es una característica importante que permite guardar el estado de la memoria RAM en el disco duro cuando detenemos una instancia, conservando así todo el trabajo en progreso. Para habilitar la hibernación, se requiere un kernel compatible (como el de Linux) y activar esta opción al crear la instancia.

La optimización del rendimiento en AWS EC2 puede tener un impacto significativo en los costos operativos y en la experiencia del usuario final. Ya sea mediante la selección adecuada del tipo de tenencia, la configuración de grupos de ubicación o la implementación de interfaces de red especializadas, AWS ofrece múltiples herramientas para ajustar el rendimiento según tus necesidades específicas. ¿Tu empresa tiene algún caso de uso que podría beneficiarse de estas estrategias de optimización? Comparte tu experiencia en los comentarios.