Micaela Turrin
AWS EC2
Actualizado: 26 may 2022
Elastic Compute Cloud es una VM que se puede utilizar para servidor de aplicaciones, web, bases de datos, videojuegos, correos, contenido multimedia, files, proxy, cómputos, etc.

Son instancias de pago por uso en que se puede administrar la capacidad de CPU, memoria, almacenamiento y redes.
Cuando creas una instancia, tenés que elegir:
AMI: sistema operativo que va a correr en la vm
tipo de instancia: el tamaño, memoria, cpu
Pide un key pair, es una clave criptográfica que es necesario descargar
Configuración general: networking (red VPC, subred, ip public), firewall (security group - puertos), ubicación, rol iam (identity auth management), comportamiento al cierre (detener o finalizar), monitorización, etc.
Adición de almacenamiento (instances stores)
Tags: esto permite clasificar el producto
Security group: protocolo de escritorio remoto RDP para windows // SSH para linux

Puede haber situaciones en las que el rendimiento de los volúmenes de EBS puede que no sea suficiente y limite el rendimiento de su aplicación:
Los EC2 se almacenan en dispositivos de almacenamiento compartido y están disponibles como almacenamiento en bloque adjunto a la red. Entonces, el ancho de banda de los discos, están limitados por el rendimiento de la red, sobre lo que están conectados. EC2 x rendimiento de la red/EC2 conectados.
Si las IOPS de su volumen de EBS aumentan hasta el valor máximo, se pondrán en cola más operaciones de E/S.
Esto se soluciona con un disco de almacenamiento que se adjuntan a las instancias EC2. Estos almacenes de instancias están conectados a la computadora host. Es así como la instancia puede interactuar con los volúmenes del almacén de instancias muy rápido, sobretodo para el acceso secuencial.
Las instances Stores permiten el almacenamiento de alta velocidad y baja latencia. Solo proporcionan almacenamiento temporal al nivel de bloque, es decir que los datos en volumen persisten solo durante la vida de la instancia asociada. Si los datos serán persistentes, mejor usar GBS, EFS o S3.
FML0/ FML1 - Los instances stores se pueden usar más de uno para un bloque, Es necesario que la instancia sea compatible. Almacenamiento de instancia.
Ejemplo, una c5ad4xlarge le permite agregar hasta 2 instances stores de 300 gb ssd de tamaño. Usan un protocolo de transporte y acceso de almacenamiento de estado sólido, llamado NVMe SSD. Si querés agregar más almacenamiento que lo estipulado por la instancia en el origen, hay que usar otra ec2 dedicada.
Tipos de EC2
Hay de diferentes tamaños que le permite escalar sus recursos según los requisitos de la carga de trabajo de destino:
Uso general
Proporcionan un conjunto equilibrado de recursos informáticos, como para servidores web y repositorios de código. Ejemplo: instancias c5, c5n, c6g, c6gdy, c6gn, a1, t3, t4, etc.
Optimizadas para la informática
Son ideales para las aplicaciones relacionadas con computación que disponen de alto rendimiento. Ejemplo: instancias c5, c5n, c5a, c6g, c4, etc. Para apps con trabajo intenso de CPU: codificar videos, usuarios recurrentes, servidores de juegos. ACN C5.
Optimizadas para la memoria
Diseñadas para ofrecer un rendimiento rápido para cargas de trabajo que procesan grandes cantidades de datos en memoria. Ejemplo: instancias r6g, r5, r5a, r5n, r4, x1e, x1, z1d. Procesamiento de big data.
Optimizadas para el almacenamiento
Diseñadas para cargas de trabajo que requieren un alto acceso de lectura y escritura secuencial a grandes conjuntos de datos en almacenamiento local. Se optimizan para ofrecer decenas de miles de operaciones de E/S aleatorias de baja latencia por segundo (IOPS) para las apps. Ejemplo: instancias i3, i3en, d2, d3, h1. Para lectura/escritura secuencial alta en el almacenamiento local: db relacionales, almacenamiento de datos y procesamiento de impagenes.
Informática acelerada
Son aceleradores de hardware o coprocesadores para algunas funciones como cálculos numéricos de coma flotante, procesamiento de gráficos o coincidencia de patrones de datos. Ejemplo: instancias p2, p3, p4, inf1, g4, g3. Arreglos de compuertas lógicas programables en sitio (FPGA). Optimizadas en GPU para IA.


Curiosidades:
Putty key es un software que convierte los files de pem (VM para linux) en ppk (windows). Key pair. Es una pass para conectarte a la instancia.
ec2-user es el user que proporciona aws compatible con las imágenes AMI de aws.

Como acceder a tu máquina virtual
Existen varias formas de conectarse al recurso. Por el momento, vamos a continuar con el método RDP.

Es necesario copiar la dirección Public IPv4 y acceder con el escritorio remoto. Te va a pedir que inicies sesión con el user admin y la pass disponible en la consola.
El file pem (VM para linux) en ppk (windows), más famoso como Key pair, es un archivo que contiene una clave privada para conectarte a la instancia (la pass del user admin). Ec2-user es el user admin que proporciona aws compatible con las imágenes AMI de aws.

Para ingresar:

Una vez adentro:

Cuando terminás de trabajar en el recurso, si no dejás nada corriendo, se recomienda apagarlo, "stopear la instancia". Si elegís la opción, terminar instancia, la borrás. Ojo.
Cuánto $ale
Las VMs se cobran por los valores de:
procesamiento (Windows se paga por hora y Linux por segundo)
tamaño de los discos rígidos
tráfico de red (saliente)
Esto se elige según el propósito. Ejemplo, si es algo momentáneo, conviene elegir una VMs on demand, pero si es para un ambiente productivo (mediano-largo plazo), conviene elegir una de reserva, que sabés que la vas a usar por 1 a 3 años. Si la compraste y te arrepentiste, existe un programa de reventa, donde podés venderla por meses.
Spot sirve para los recursos ociosos, es barato porque permite usar recursos pagos que se encuentran disponibles como un ticket de avión a un valor muy económico. No garantiza que cuando lo queramos usar, va a estar, porque eso depende de la oferta-demanda. El precio lo pone el mercado.
Compute savings está orientado a containers o lambda. Tenancy, Dedicated es cuando el hardware no lo compartís con nadie. Es para el ámbito financiero o gubernamental.

Escalabilidad
El auto scaling, permite la entrega de servicio continua ante cualquier eventualidad. Vos podés administrar estos recursos de forma manual y también hacerlo de forma automática dentro de un marco de reglas (máx, min).

Ejemplo: si el uso del procesador supera el 80% durante un tiempo determinado, le permitimos tomar acción y agregar servidores en un balanceador. Cuántos y cómo, depende de la configuración. Lo mismo ocurre para disminuir la capacidad. Esto también tiene una inteligencia predictiva, para proveer el recurso antes que sea necesario.

Esto funciona con un balanceador. Se otorga un punto de acceso con un Elastic load balancing.



Y vos, ¿qué VM te soluciona la vida?
Leé más en camonlabs.com/blog