En este post vamos a ver qué es el servicio de Amazon Web Services EC2 o Elastic Compute Cloud. Es el servicio de AWS que nos permite provisionar máquinas virtuales en la nube
Para qué sirve EC2
Este servicio nos permite provisional máquinas virtuales en un entorno Cloud y poder poner cualquier tipo de sistema operativo que queramos. Y cuando digo cualquiera quiero decir cualquiera, incluso Mac Os. A día de hoy AWS es la única plataforma Cloud que te permite provisionar instancias de tipo Mac Os.
Podemos provisionar cualquier tipo de sistema operativo en cualquier tipo de plataforma, ya sea ARM o Intel. Otra de las cosas que podemos hacer es elegir el tipo de máquina que mejor se adecue a nuestro caso de uso.
Si tenemos un servicio que consume mucha memoria, tenemos maquinas optimizadas para memoria, pero si lo que necesitas es CPU tenemos otro tipo de instancias que están pensadas específicamente para eso.. Además de todo esto, tenemos otras instancias que están pensadas para hacer trabajos con GPU.
Qué tipo de instancias tiene EC2
Vamos a ver brevemente qué tipo de instancias tenemos en AWS EC2 y para qué sirve cada una de ellas.
En la página https://aws.amazon.com/ec2/instance-types puedes ver todas las instancias que tenemos para elegir.
Las que son de propósito general, son máquinas que no están ni optimizadas para una cosa ni para otra. Es decir, valen para todo.

Dentro de estas máquinas tenemos las Mac. Aquí puedes levantar máquinas de tipo Mac Os con 12 vCPU y 32 Gb de RAM.

Pero si lo que necesitas es una máquina Intel, también puedes usar otro tipo de máquinas. Por ejemplo, las T3 son un tipo de máquinas que te valen para cosas que sean de propósito general. Es decir, no necesitas mucha RAM ni tampoco mucha CPU, sino que necesitas algo que esté equilibrado. Para eso tienes este tipo de máquinas basadas en chipset Intel.

Pero si lo que quieres es un ARM, tienes también las T4g. Todas las denominaciones G de AWS son las que llevan su chipset Graviton. Son unos tipos de procesadores basados en ARM que ha desarrollado AWS.
Tenemos por ejemplo las máquinas T4g small que tienen dos vCPU y tienen 2 Gb RAM.

Y si lo que necesitas es RAM o computación, tienes que irte a máquinas más específicas.
Instancias EC2 optimizadas para computación
Las que están optimizadas para computación puedes ver que son las C5 y C6. Dentro de las C6 tienes también las tipo G que usan el chipset Gravtion que te comentaba antes.
Por ejemplo, la C5 pueden llegar hasta una c5.24xlarge que tiene 96 vCPU y 192 Gb de RAM.

Instancias EC2 optimizadas para memoria
Si lo que necesitas es mucha RAM, las optimizadas para memoria son las tuyas. Aquí tienes, por ejemplo, la R6g con el chipset Graviton que tienen hasta 512 Gb de RAM.

Instancias EC2 con GPU
Y si lo que necesitas es GPU tienes las tipo P. En este caso tienes hasta 8 cores de NVIDIA A100 para que los uses en tus proyectos de Machine Learning o de inteligencia artificial. Como puedes ver, tienes 8 GPU, 96 vCPU y 1152 Gb de RAM. El único problema de este tipo de máquinas es su precio, que ahora verás cuál es.

Precios de las instancias EC2
En la página https://aws.amazon.com/ec2/pricing/on-demand vamos a ver todos los precios de las máquinas que hemos estado comentando durante este post. Una cosa, estos son precios On Demand. Más adelante te contaré cómo te puedes ahorrar hasta un 70% por ciento en tus máquinas virtuales.
Lo primero que hay que hacer es seleccionar en qué zona vamos a tener nuestras máquinas virtuales. Depende de que en zona estén el precio variará. Vamos a seleccionar Irlanda.
Podemos filtrar por las máquinas que nos interesen, ya sean de tipo Linux, RHEL o Windows. En este caso, vamos a usar tipo RHEL. Vemos que una de tipo t4g.large nos costaría $0.1336 por hora.

En EC2 solo pagas por lo que usa. Si usas una máquina durante 2 horas sólo vas a pagar esas 2 horas. Y si la usas durante 3 minutos sólo vas a pagar esos tres minutos.
En esa página tienes todo el listado de las máquinas que puedes utilizar. Vamos a ver las máquinas P que son las más potentes de GPU y vamos a ver cuál es el precio para esas máquinas. Una P4, por ejemplo, la p4d.24xlarget vemos que tiene un coste de $35.52655 la hora.

Como ves, los precios dependen de qué tipo de instancias estés usando. Si quieres usar instancias muy grandes, los precios se elevarán.
Cómo ahorrar hasta un 70% en EC2 con Savings Plans
Hay un truco para ahorrar mucho dinero en AWS EC2. Es el truco para ahorrar dinero usando Savings Plans. Vamos a ir a la página https://aws.amazon.com/savingsplans/pricing para ver los precios de las instancias.
Si te comprometes con AWS a usar las máquinas durante al menos 1 año Amazon te va a hacer un descuento bastante importante. Elegimos Irlanda y decimos que no vamos a hacer ningún pago inicial (Upfront). Por ejemplo, aquí puedes ver que una a1.medium nos costaba $0.0228 y ahora nos cuesta $0.0226. Eso es un veintidós por ciento de descuento,

Pero si pagas por adelantado un año Amazon te hace un descuento todavía mayor, en este caso para un a1.medium tendrías un descuento de un 27%.

Cuál es el truco final? Si estás seguro que vas a usar durante 3 años las máquinas lo mejor es que hagas un Upfront de 3 años. Si te comprometes durante 3 años en AWS tienes un descuento de un 47% en las a1.medium.

También puedes ordenar por las que más descuento te dan. Fíjate la diferencia de usar una m2.4xlarge On Demand, que es un precio de $1.10 la hora en usarla con un Upfront 3 años te costaría $0.333, es decir, un 70% de descuento.

Si sólo quieres hacer durante 1 año también tienes descuentos que van hasta un 53%. Por ejemplo, en una m2.2xlarge pasan de $0.55 a $0.259.

Cómo ahorrar hasta un 90% en EC2 con Spot Instances
Hemos visto una de las formas de ahorrar en AWS. Pero hay otra forma en la que puedes ahorrar mucho más dinero con las instancias de tipo Spot. Con este tipo de instancias puedes ahorrar hasta un 90% del precio. En esta página https://aws.amazon.com/ec2/spot/pricing puedes ver los precios para las instancias Spot.
Qué son las instancias spot de EC2
En las instancias de tipo Spot lo que haces es pujar por un tipo de instancia a un precio determinado. Si tu puja es la ganadora, te llevas esa instancia y puedes usarla.
¿Y qué pasa si hay otra puja ganadora? Pues en ese momento lo que pasa es que tu instancia se va apagar. Este tipo d instancias están muy bien para cosas como por ejemplo, grupos de auto escalado en el que aunque se caiga una instancia del grupo auto escalado, tú puedes poner levantar otra máquina en otra instancia.
También para, por ejemplo, procesos en los que no necesites que estén 24×7 corriendo en los que tienes muchos workers trabajando y que necesitas, por ejemplo, que se ejecuten a la vez pero te da igual si alguno de ellos se cae y vuelve a iniciar desde cero.
Qué puedes hacer con EC2
Además de todo lo que te he contado, hay más cosas que puedes hacer con el servicio EC2. Como te estaba comentando antes, puedes crear grupos de alto escalado. En estos grupos puedes poner reglas en las que si llegas a un porcentaje de CPU o si llegas a un número de peticiones en tus servidores, automáticamente cree otra instancia que se va a sumar a tu grupo de alto escalado y que va a hacer que tu web no se caiga.
Pero además de todo lo que te he contado, puedes hacer backups personalizados a la hora que tú quieras, puedes poner más de un disco en cada máquina, puedes hacer que cuando se cae una máquina, te llegue un email y te avise.
Para resumir, EC2 te da toda la potencia del Cloud en máquinas virtuales a un precio muy reducido si sabes utilizarlo de forma correcta