¿Qué es AWS Elastic Compute Cloud – EC2?

Uno de los servicios más elementales de AWS es Elastic Compute Cloud o por sus siglas, EC2.

Showcase

En español el servicio se llamaría Nube de Cómputo Elástica, y es que es precisamente eso. Un modelo que al seguir un modelo CaaS  (Compute as a Service), proveé poder de cómputo como servicio a través de la nube y aumenta o disminuye la capacidad dependiendo de las necesidades del usuario.

¿Cómo funciona EC2?

El servicio de EC2 te permite utilizar espacio y poder de cómputo en los centros de datos de Amazon. Puedes “crear” una o varias instancias de EC2. Pero cómo ya te imaginarás el uso que les des puede variar mucho. Por suerte en AWS solo pagas por instancias que esten corriendo y tienes la libertad de “destruir” y “crear” instancias conforme necesites.

“¿Qué es una instancia?” te preguntarás. Piensa en una instancia como una parte del host (servidor físico) creada específicamente para ti. EC2 corre en máquinas físicas utilizando tecnología de virtualización. De esta manera cuando tu usas una instancia no estás utilizando todo el host físico, en cambio estas compartiendo ese host entre múltiples instancias de EC2.

Imagen de servidor que contiene 3 instancias diferentes de EC2.

Algunas de esas instancias pueden ser tuyas, pero otras podrán ser de otros clientes de AWS. ¿Eso significa que otros usuarios pueden tener acceso a tu instancia de alguna manera? Porsupuesto que no, de otra manera este servicio no hubiera tenido éxito.
No te preocupes por temas de privacidad. Ninguna instancia de EC2 está al tanto de la existencia de las demás. Cada una vive en su propio mundo. Para ti conectarte a tu instancia requiere lo mismo que el conectarte a un servidor propio, lo único diferente es que en realidad no estás usando una máquina completa sino una parte de la misma.

El crear máquinas virtuales que comparten hardware es un proceso común y normalmente se le conoce como Multitenancy.

Imagen que muestra a un usuario con 1 sola instancia totalmente seprarado del 2° usuario y sus 2 instancias.
El 2° usuario tiene acceso a su 2 instnacias pero estas también se encuentran separadas entre sí.
Las instancias nunca están conectadas entre sí, ya sea que pertenezcan a usuarios diferentes o al mismo usuario.

Como es de esperarse en un servidor, EC2 tiene la posibilidad de que instales el sistema operativo que quieras, ya sea WIndows o Linux. Así mismo puedes instalar cualquier app, base de datos y/o programa que necesites.

AWS ofrece diferentes tipos de instancias, de manera que se pueden adaptar mejor al uso que vayan a tener para tu negocio.

Tipos de instancias EC2

Las instancias en EC2 se dividen por familias. Cada familia tiene diversos tipos que señalan la capacidad y tamaño de la misma.

General purpose (De propósito general)

Para cuando la necesidad de poder de cómputo, memoria y networking es más o menos similar. O cuando no necesitas un enfoque especial en un área específica de recursos.
Al utilizar recursos de manera balanceada, estas instancia son buenas para manejar diversas cargas de trabajo como:

  • Web Services
  • Repositorios de trabajo
  • Servidores de aplicaciones
  • Servidores de juego
  • Servidores back-end para aplicaciones empresariales
  • Bases de datos pequeñas y medianas

Compute optimized (Optimizado para cómputo)

Para aplicaciones con procesos computacionalmente intensivos, que se benefician por procesadores de alto rendimiento. Algunos casos de uso comúnes:

  • Servidores dedicados de juegos
  • HPC – High Performance Computing (Cómputo de Alto Rendimiento)
  • Modelado científico

Memory optimized (Optimizado para memoria)

Diseñado para un rápido rendimiento con cargas de trabajo que procesan grandes conjuntos de datos en la memoria.  También funciona para cuando se necesitan grandes cantidades de datos precargados antes de correr un aplicativo. Ideal para casos como:

  • Base de datos de alto rendimiento
  • Procesamiento en tiempo real de grandes cantidades de datos no estructurados

Accelerated Computing (Cómputo Acelerado)

Usa aceleradores de hardware o coprocesadores para realizar funciones mas eficientemente de lo que es posible en software que corre en CPUs. Algunos casos de uso son:

  • Cálculos de  números de punto flotante
  • Procesamiento de gráficos
  • Streaming de juegos
  • Streaming de aplicaciones
  • Búsqueda de patrones de datos
  • Utilización de aceleradores de hardware

Storage optimized (Optimizado para Almacenamiento)

Para cargas de trabajo que requieren un acceso frecuente y secuencial a grandes conjuntos de datos en el almacenamiento local. Esta opción es mejor para:

  • Sistemas de archivos distribuidos
  • Aplicaciones de data warehousing
  • Sistemas OLTP
  • Alto rendimiento para datos almacenados localmente
  • Alto requerimiento de IOPS

Con esto ya tienes una idea de las bases de EC2. Pero falta lo más interesante. ¿Cuánto cuesta y cómo cobra AWS por este servicio? Para eso continúa leyendo ¿Qué plan de contratación de EC2 te conviene?