Computación con Amazon EC2

1. ¿Qué es Amazon EC2? #

Amazon EC2, o Amazon Elastic Compute Cloud, es el servicio de AWS que permite crear y utilizar servidores virtuales en la nube.

En AWS, estos servidores virtuales se llaman instancias EC2.

Una instancia EC2 permite ejecutar aplicaciones, servidores web, bases de datos, procesos internos o cualquier software que una empresa necesite.

2. EC2 como servicio de computación #

Amazon EC2 proporciona capacidad de cómputo bajo demanda.

Esto significa que puedes crear servidores cuando los necesitas y detenerlos o eliminarlos cuando ya no hacen falta.

Ventajas principales de EC2 #

  • Se crean instancias en pocos minutos.
  • Se paga solo por el tiempo de uso.
  • No es necesario comprar servidores físicos.
  • Permite elegir sistema operativo.
  • Permite instalar aplicaciones propias.
  • Puede aumentar o reducir su capacidad.

3. Instancias EC2 #

Una instancia EC2 es una máquina virtual ejecutándose en la infraestructura de AWS.

Aunque técnicamente es una máquina virtual, en AWS se usa el término instancia.

En una instancia EC2 puedes elegir:

  • Sistema operativo: Linux o Windows.
  • Tipo de instancia.
  • Cantidad de CPU.
  • Cantidad de memoria.
  • Almacenamiento.
  • Configuración de red.
  • Software instalado.

4. Multitenencia e hipervisor #

Las instancias EC2 se ejecutan sobre servidores físicos reales de AWS.

Un mismo servidor físico puede alojar varias instancias de diferentes clientes. Esto se llama multitenencia.

Para que cada instancia esté aislada de las demás se utiliza un hipervisor.

El hipervisor permite:

  • Compartir recursos físicos.
  • Aislar unas instancias de otras.
  • Gestionar CPU, memoria y red.
  • Mantener la seguridad entre clientes.

AWS administra el hardware físico, el hipervisor y el aislamiento entre instancias.

5. Elasticidad en EC2 #

La palabra Elastic en EC2 indica que las instancias pueden adaptarse a las necesidades del negocio.

Puedes empezar con una instancia pequeña y, si necesitas más potencia, cambiarla por una más grande.

Esto se llama escalado vertical.

Ejemplo #

Una aplicación empieza funcionando en una instancia pequeña.

Con el tiempo recibe más usuarios y necesita más memoria y CPU.

La empresa puede cambiar la instancia por una más potente.


6. Familias de instancias EC2 #

AWS ofrece distintos tipos de instancias según el tipo de carga de trabajo.

Las principales familias son:

6.1 Instancias de uso general #

Ofrecen equilibrio entre CPU, memoria y red.

Son adecuadas para:

  • Aplicaciones web.
  • Servidores pequeños y medianos.
  • Repositorios de código.
  • Entornos de prueba.

Son una buena opción inicial cuando no se conoce bien el comportamiento de la aplicación.

6.2 Instancias optimizadas para computación #

Tienen más capacidad de procesamiento.

Son adecuadas para:

  • Servidores de juegos.
  • Procesamiento intensivo.
  • Modelado científico.
  • Aprendizaje automático.
  • Computación de alto rendimiento.

6.3 Instancias optimizadas para memoria #

Están pensadas para aplicaciones que necesitan mucha RAM.

Son adecuadas para:

  • Bases de datos en memoria.
  • Procesamiento de grandes volúmenes de datos.
  • Cachés.
  • Análisis en tiempo real.

6.4 Instancias de computación acelerada #

Utilizan aceleradores de hardware, como GPU.

Son adecuadas para:

  • Procesamiento gráfico.
  • Inteligencia artificial.
  • Machine learning.
  • Cálculos matemáticos complejos.
  • Análisis de patrones.

6.5 Instancias optimizadas para almacenamiento #

Están diseñadas para cargas que necesitan alto rendimiento de lectura y escritura local.

Son adecuadas para:

  • Bases de datos de alto rendimiento.
  • Sistemas de archivos distribuidos.
  • Procesamiento de datos intensivo.
  • Aplicaciones con muchas operaciones de entrada/salida.

7. Elección del tamaño de instancia #

Además de elegir la familia de instancia, hay que elegir el tamaño.

El tamaño determina cuántos recursos tendrá la instancia:

  • CPU.
  • Memoria.
  • Capacidad de red.
  • Rendimiento.

Una instancia más grande ofrece más potencia, pero también cuesta más.

La idea principal es elegir el tamaño adecuado para no pagar por recursos innecesarios.


8. Formas de interactuar con AWS #

En AWS, prácticamente todo se gestiona mediante llamadas API.

Una API permite crear, modificar, consultar o eliminar recursos de AWS.

Existen tres formas principales de interactuar con AWS:

8.1 Consola de administración de AWS #

Es una interfaz web visual.

Es útil para:

  • Aprender.
  • Crear recursos manualmente.
  • Revisar configuraciones.
  • Consultar facturación.
  • Monitorizar servicios.

Es la opción más sencilla para empezar.

8.2 AWS CLI #

La AWS CLI permite administrar AWS desde la terminal mediante comandos.

Ejemplo:

1aws ec2 describe-availability-zones

Permite automatizar tareas usando scripts.

Es más recomendable que la consola para entornos repetitivos o de producción.

8.3 AWS SDK #

El SDK de AWS permite interactuar con AWS usando lenguajes de programación.

Por ejemplo:

  • Python.
  • Java.
  • JavaScript.
  • PHP.
  • C#.
  • Go.

Es útil para crear aplicaciones que gestionen recursos de AWS automáticamente.


9. Crear una instancia EC2 básica #

Para crear una instancia EC2 desde la consola, normalmente se configuran estos elementos:

9.1 Nombre de la instancia #

Sirve para identificarla fácilmente.

Ejemplo:

1Mi servidor web

9.2 AMI #

Una AMI, o Amazon Machine Image, es una plantilla que contiene el sistema operativo y, opcionalmente, software preinstalado.

Ejemplos:

  • Amazon Linux.
  • Ubuntu.
  • Windows Server.
  • Red Hat.

9.3 Tipo de instancia #

Define la potencia del servidor.

Ejemplo:

1t3.micro

Una instancia t3.micro suele utilizarse para pruebas o cargas pequeñas.

9.4 Par de claves #

Permite conectarse de forma segura a la instancia.

Está formado por:

  • Clave pública: se coloca en la instancia.
  • Clave privada: la conserva el usuario.

En Linux se usa normalmente para acceder mediante SSH.

9.5 Configuración de red #

Permite definir si la instancia será pública o privada y qué tráfico podrá recibir.

Para un servidor web se suele permitir:

  • HTTP.
  • HTTPS.

9.6 Almacenamiento #

La instancia necesita almacenamiento en disco.

Normalmente se usa Amazon EBS.

Ejemplo:

18 GB gp3

9.7 Datos de usuario #

Los User Data permiten ejecutar un script automáticamente al iniciar la instancia.

Ejemplo de uso:

  • Instalar un servidor web.
  • Activar Apache o Nginx.
  • Descargar archivos iniciales.
  • Configurar la aplicación.

10. Opciones de precios de Amazon EC2 #

Amazon EC2 ofrece varias formas de pago.

10.1 Instancias bajo demanda #

Se paga por el tiempo que la instancia está en ejecución.

No requiere compromiso a largo plazo.

Es ideal para:

  • Pruebas.
  • Desarrollo.
  • Cargas impredecibles.
  • Primeros pasos en AWS.

10.2 Savings Plans #

Permiten ahorrar a cambio de comprometerse a un uso constante (gasto por hora específico) durante 1 o 3 años.

Pueden ofrecer descuentos importantes.

Son útiles cuando ya se conoce el consumo aproximado.

10.3 Instancias reservadas #

Las Instancias Reservadas (RIs) son más rígidas, ya que requieren reservar especificaciones técnicas exactas, pero ofrecen descuentos ligeramente mayores para cargas predecibles

Se reservan durante 1 o 3 años.

Opciones de pago:

  • Todo por adelantado.
  • Pago parcial por adelantado.
  • Sin pago por adelantado.

10.4 Instancias Spot #

Permiten utilizar capacidad sobrante de AWS con grandes descuentos.

El inconveniente es que AWS puede interrumpirlas si necesita recuperar esa capacidad.

Son adecuadas para:

  • Procesamiento por lotes.
  • Tareas tolerantes a interrupciones.
  • Análisis de datos.
  • Renderizado.
  • Procesos que pueden reanudarse.

No son recomendables para aplicaciones críticas que no pueden detenerse.

10.5 Hosts dedicados #

Son servidores físicos reservados para un único cliente.

Son útiles cuando existen:

  • Requisitos estrictos de seguridad.
  • Necesidades de cumplimiento normativo.
  • Licencias específicas de software.
  • Necesidad de aislamiento físico.

11. Escalabilidad y elasticidad #

La escalabilidad es la capacidad de aumentar o reducir recursos según la demanda.

La elasticidad es la capacidad de hacerlo automáticamente y de forma rápida.

11.1 Escalado vertical #

Consiste en aumentar la potencia de una máquina.

Ejemplo:

Cambiar una instancia pequeña por otra con más CPU y memoria.

Ventaja #

Es sencillo de entender.

Limitación #

Tiene un límite físico y puede no resolver todos los problemas.

11.2 Escalado horizontal #

Consiste en añadir más instancias para repartir el trabajo.

Ejemplo:

Pasar de 2 servidores web a 6 servidores web.

Ventaja #

Permite atender más usuarios en paralelo.

Es el enfoque más común para aplicaciones modernas en la nube.


12. Amazon EC2 Auto Scaling #

Amazon EC2 Auto Scaling permite añadir o quitar instancias automáticamente según la demanda.

Puede aumentar instancias cuando sube la carga y reducirlas cuando baja.

Esto ayuda a conseguir:

  • Mejor rendimiento.
  • Menor coste.
  • Alta disponibilidad.
  • Ajuste automático a la demanda.

Ejemplo #

Una tienda online recibe mucho tráfico durante una campaña.

Auto Scaling crea más instancias.

Cuando termina la campaña, elimina las instancias sobrantes.


13. Amazon CloudWatch #

Amazon CloudWatch es el servicio de monitorización de AWS.

Permite recopilar métricas como:

  • Uso de CPU.
  • Uso de memoria.
  • Latencia.
  • Errores.
  • Tráfico de red.

Auto Scaling puede usar estas métricas para decidir cuándo aumentar o reducir instancias.


14. Elastic Load Balancing #

Cuando hay varias instancias, es necesario repartir el tráfico entre ellas.

Para eso se usa Elastic Load Balancing, o ELB.

Un balanceador de carga recibe peticiones y las distribuye entre varias instancias.

Beneficios de ELB #

  • Reparte tráfico automáticamente.
  • Evita sobrecargar una sola instancia.
  • Mejora la disponibilidad.
  • Permite escalar aplicaciones.
  • Desacopla diferentes partes de la arquitectura.

Ejemplo #

Una aplicación web tiene 4 instancias EC2.

El usuario no accede directamente a una instancia concreta.

Accede al balanceador de carga.

El balanceador decide qué instancia atenderá la petición.


15. Arquitecturas desacopladas #

Una arquitectura desacoplada evita que un componente dependa directamente de otro.

Esto mejora:

  • Resiliencia.
  • Escalabilidad.
  • Mantenimiento.
  • Tolerancia a fallos.

Arquitectura fuertemente acoplada #

La aplicación A envía mensajes directamente a la aplicación B.

Si B falla, A también puede fallar.

Arquitectura débilmente acoplada #

La aplicación A envía mensajes a una cola.

La aplicación B procesa esos mensajes cuando puede.

Si B falla, los mensajes esperan en la cola.


16. Amazon SQS #

Amazon Simple Queue Service, o SQS, es un servicio de colas de mensajes.

Permite enviar, almacenar y recibir mensajes entre componentes de software.

Características de SQS #

  • Almacena mensajes hasta que se procesan.
  • Escala automáticamente.
  • Ayuda a desacoplar aplicaciones.
  • Mejora la tolerancia a fallos.
  • Evita pérdida de mensajes.

Ejemplo #

Una tienda online recibe pedidos.

Los pedidos se colocan en una cola SQS.

Un sistema de procesamiento los recoge y los gestiona cuando puede.


17. Amazon SNS #

Amazon Simple Notification Service, o SNS, es un servicio de notificaciones.

Permite enviar mensajes a varios destinatarios o servicios.

A diferencia de SQS, SNS no está pensado como una cola donde los mensajes esperan a ser procesados.

SNS funciona como un sistema de publicación y suscripción.

Usos de SNS #

  • Enviar correos electrónicos.
  • Enviar SMS.
  • Enviar notificaciones push.
  • Avisar a otros servicios.
  • Distribuir eventos.

Ejemplo #

Cuando un pedido está listo, SNS puede enviar una notificación al cliente.


18. Diferencia entre SQS y SNS #

ServicioIdea principalEjemplo
SQSCola de mensajesUn pedido espera hasta ser procesado
SNSNotificación inmediataSe avisa al cliente de que el pedido está listo

Regla sencilla #

SQS sirve para guardar mensajes hasta que alguien los procese.

SNS sirve para enviar avisos o notificaciones.


Resumen del módulo #

En este módulo hemos aprendido que Amazon EC2 es uno de los servicios principales de computación de AWS.

Permite crear servidores virtuales bajo demanda, elegir su tamaño, sistema operativo, red y almacenamiento.

También hemos visto que AWS permite escalar aplicaciones usando EC2 Auto Scaling y repartir tráfico con Elastic Load Balancing.

Por último, hemos introducido servicios de mensajería como SQS y SNS, fundamentales para crear arquitecturas desacopladas y resistentes.


Ideas clave para el examen AWS Cloud Practitioner #

  • EC2 permite crear servidores virtuales en la nube.
  • En AWS, los servidores virtuales se llaman instancias.
  • EC2 es flexible, escalable y de pago por uso.
  • Una AMI es una plantilla para lanzar instancias.
  • El tipo de instancia define CPU, memoria, red y almacenamiento.
  • El escalado vertical aumenta la potencia de una instancia.
  • El escalado horizontal añade más instancias.
  • EC2 Auto Scaling ajusta automáticamente el número de instancias.
  • CloudWatch permite monitorizar métricas.
  • ELB distribuye tráfico entre instancias.
  • SQS es una cola de mensajes.
  • SNS es un servicio de notificaciones.
  • Las arquitecturas desacopladas son más resistentes y escalables.
  • Las instancias Spot son baratas, pero pueden interrumpirse.
  • Las instancias reservadas y Savings Plans ayudan a ahorrar en cargas predecibles.
  • Los hosts dedicados ofrecen aislamiento físico.

Computación con Amazon EC2

Loading...

Nuevo quiz #

Loading...