Opciones de computación

1. Introducción #

AWS ofrece diferentes formas de ejecutar aplicaciones y procesos en la nube.

Hasta ahora hemos visto Amazon EC2, que permite crear servidores virtuales llamados instancias. EC2 ofrece mucho control, pero también exige más responsabilidad por parte del cliente.

AWS también ofrece servicios más administrados, donde AWS se encarga de más tareas operativas.

La idea principal es elegir el servicio adecuado según el nivel de control, facilidad de uso y responsabilidad que necesitemos.


2. Servicios no administrados, administrados y sin servidor #

2.1 Servicios no administrados #

Un servicio no administrado ofrece mucho control, pero también requiere más trabajo por parte del cliente.

El ejemplo más claro es Amazon EC2.

Con EC2, AWS se encarga de:

  • Centros de datos.
  • Hardware físico.
  • Red física.
  • Hipervisor.
  • Infraestructura base.

Pero el cliente se encarga de:

  • Sistema operativo.
  • Parches.
  • Seguridad del sistema.
  • Aplicaciones instaladas.
  • Configuración de red.
  • Escalado.
  • Mantenimiento de la instancia.

Por tanto, EC2 ofrece mucha flexibilidad, pero también más responsabilidad.

2.2 Servicios administrados #

En los servicios administrados, AWS asume más tareas operativas.

El cliente configura el servicio y AWS se encarga de mantener gran parte de la infraestructura.

Ejemplos de servicios administrados:

  • Elastic Load Balancing.
  • Amazon SQS.
  • Amazon SNS.
  • Amazon ECS.
  • Amazon EKS.
  • AWS Elastic Beanstalk.
  • AWS Batch.

Estos servicios reducen el trabajo de administración y permiten centrarse más en la aplicación.

2.2 Servicios completamente administrados #

Algunos servicios son completamente administrados, lo que significa que el cliente no tiene que preocuparse por la infraestructura subyacente.

2.4 Servicios sin servidor #

Los servicios serverless o sin servidor llevan la abstracción un paso más allá.

No significa que no existan servidores.

Significa que el cliente no tiene que aprovisionarlos, administrarlos ni mantenerlos.

AWS se encarga de:

  • Aprovisionamiento.
  • Escalado.
  • Alta disponibilidad.
  • Mantenimiento.
  • Infraestructura subyacente.

El cliente se centra principalmente en el código y en la lógica de negocio.

El ejemplo más importante es:

  • AWS Lambda.

3. Comparación rápida #

Tipo de servicioControl del clienteResponsabilidad del clienteEjemplo
No administradoAltoAltaAmazon EC2
AdministradoMedioMediaELB, SQS, SNS, ECS
Sin servidorBajo sobre infraestructuraBaja sobre infraestructuraAWS Lambda

4. AWS Lambda #

4.1 ¿Qué es AWS Lambda? #

AWS Lambda es un servicio de computación sin servidor.

Permite ejecutar código sin crear ni administrar servidores.

También se conoce como Function as a Service, o función como servicio.

Con Lambda, subes tu código, defines cuándo debe ejecutarse y AWS se encarga del resto.


4.2 Cómo funciona Lambda #

Una función Lambda se ejecuta en respuesta a un evento o disparador.

Ejemplos de disparadores:

  • Subida de un archivo a Amazon S3.
  • Llegada de un mensaje a Amazon SQS.
  • Petición HTTP desde una API.
  • Evento programado.
  • Flujo de datos en tiempo real.

Ejemplo:

Una aplicación permite subir imágenes.

Cuando un usuario sube una imagen, Lambda se ejecuta automáticamente para procesarla.


4.3 Ventajas de Lambda #

Lambda ofrece varias ventajas:

  • No hay que administrar servidores.
  • Escala automáticamente.
  • Es altamente disponible.
  • Se paga solo por el tiempo de ejecución.
  • Se integra fácilmente con otros servicios de AWS.
  • Permite crear arquitecturas basadas en eventos.

4.4 Límite importante de Lambda #

Una ejecución de Lambda puede durar como máximo 15 minutos.

Por tanto, Lambda es adecuada para tareas cortas o procesos que puedan dividirse en partes pequeñas.

No es ideal para procesos largos que necesiten ejecutarse durante horas.


4.5 Lenguajes compatibles #

Lambda admite varios lenguajes mediante entornos de ejecución.

Algunos ejemplos:

  • Node.js.
  • Python.
  • Java.
  • .NET.
  • Go.
  • Ruby.

También se pueden crear entornos personalizados.


4.6 Casos de uso de Lambda #

Lambda es útil para:

  • Procesar imágenes.
  • Responder a eventos.
  • Ejecutar tareas automáticas.
  • Procesar mensajes de SQS.
  • Crear backend de APIs.
  • Automatizar tareas internas.
  • Procesar datos en tiempo real.
  • Generar informes.

5. Ejemplo: Lambda con SQS #

Una arquitectura sencilla puede usar:

  • Amazon SQS como cola de mensajes.
  • AWS Lambda como función que procesa esos mensajes.
  • Amazon CloudWatch para consultar los registros.

Flujo del proceso #

  1. Una aplicación envía mensajes a una cola SQS.
  2. SQS almacena los mensajes.
  3. Lambda se activa automáticamente.
  4. Lambda procesa los mensajes.
  5. Los resultados y logs se pueden consultar en CloudWatch.

Idea clave #

SQS permite almacenar mensajes y Lambda permite procesarlos automáticamente sin administrar servidores.


6. Contenedores en AWS #

6.1 ¿Qué es un contenedor? #

Un contenedor empaqueta todo lo necesario para ejecutar una aplicación.

Incluye:

  • Código.
  • Dependencias.
  • Librerías.
  • Configuración.
  • Entorno de ejecución.

Esto permite que una aplicación funcione igual en distintos entornos.

Resuelve el típico problema:

“En mi ordenador funciona”.


6.2 Ventajas de los contenedores #

Los contenedores ofrecen:

  • Portabilidad.
  • Aislamiento.
  • Inicio rápido.
  • Mejor aprovechamiento de recursos.
  • Facilidad para desplegar aplicaciones.
  • Escalabilidad.

Son muy usados en arquitecturas modernas y microservicios.


7. Orquestación de contenedores #

Cuando una aplicación usa muchos contenedores, se necesita gestionar:

  • Inicio de contenedores.
  • Parada de contenedores.
  • Escalado.
  • Red.
  • Recuperación ante fallos.
  • Actualizaciones.
  • Supervisión.

Esto se llama orquestación de contenedores.

AWS ofrece principalmente dos servicios:

  • Amazon ECS.
  • Amazon EKS.

8. Amazon ECS #

Amazon Elastic Container Service, o Amazon ECS, es un servicio de orquestación de contenedores propio de AWS.

Permite ejecutar y administrar contenedores de forma sencilla e integrada con otros servicios de AWS.

Es ideal cuando se quiere una solución de contenedores gestionada y sencilla dentro del ecosistema AWS.

Casos de uso #

  • Aplicaciones web.
  • APIs.
  • Microservicios.
  • Procesamiento en segundo plano.
  • Aplicaciones empresariales contenerizadas.

9. Amazon EKS #

Amazon Elastic Kubernetes Service, o Amazon EKS, permite ejecutar Kubernetes en AWS.

Kubernetes es una plataforma de código abierto para administrar aplicaciones en contenedores.

EKS es útil cuando una empresa ya usa Kubernetes o necesita mayor compatibilidad con entornos híbridos o multi-nube.

Casos de uso #

  • Grandes plataformas de microservicios.
  • Empresas que ya usan Kubernetes.
  • Aplicaciones híbridas.
  • Entornos con alta necesidad de control.

10. Amazon ECR #

Amazon Elastic Container Registry, o Amazon ECR, es un registro administrado de imágenes de contenedor.

Sirve para almacenar imágenes Docker de forma segura.

Flujo habitual #

  1. El desarrollador crea una imagen de contenedor.
  2. Sube la imagen a ECR.
  3. ECS o EKS descarga esa imagen.
  4. El contenedor se ejecuta en AWS.

ECR funciona como un almacén seguro para las imágenes de las aplicaciones.


11. ¿Dónde se ejecutan los contenedores? #

AWS ofrece dos opciones principales para ejecutar contenedores:

  • Amazon EC2.
  • AWS Fargate.

11.1 Contenedores sobre EC2 #

En este modelo, los contenedores se ejecutan sobre instancias EC2.

El cliente administra las máquinas virtuales.

Ventajas:

  • Mayor control.
  • Posibilidad de personalizar la infraestructura.
  • Útil para requisitos específicos.

Inconvenientes:

  • Hay que administrar las instancias.
  • Hay que parchear el sistema operativo.
  • Hay que gestionar capacidad y escalado.

11.2 Contenedores sobre AWS Fargate #

AWS Fargate permite ejecutar contenedores sin administrar servidores.

El cliente define los contenedores y AWS se encarga de la infraestructura.

Ventajas:

  • No hay que administrar instancias EC2.
  • Escala con facilidad.
  • Reduce la carga operativa.
  • Es más cómodo para equipos pequeños o aplicaciones modernas.

12. Comparación: EC2, Lambda, ECS, EKS y Fargate #

ServicioPara qué sirveNivel de administración
EC2Ejecutar servidores virtualesMenos administrado
LambdaEjecutar funciones por eventosSin servidor
ECSOrquestar contenedores en AWSAdministrado
EKSEjecutar Kubernetes en AWSAdministrado
FargateEjecutar contenedores sin servidoresSin servidor

13. Servicios de computación adicionales #

AWS ofrece otros servicios de computación pensados para casos más específicos.


13.1 AWS Elastic Beanstalk #

AWS Elastic Beanstalk facilita el despliegue y administración de aplicaciones web.

El desarrollador sube el código y Elastic Beanstalk crea automáticamente el entorno necesario.

Puede configurar:

  • Instancias EC2.
  • Balanceadores de carga.
  • Auto Scaling.
  • Monitorización.
  • Red.
  • Despliegue de la aplicación.

La ventaja es que simplifica el despliegue, pero permite seguir viendo y controlando los recursos subyacentes.

Ideal para #

  • Aplicaciones web.
  • APIs REST.
  • Backends.
  • Aplicaciones en Java, .NET, Python, Node.js, Docker, etc.

13.2 AWS Batch #

AWS Batch permite ejecutar trabajos por lotes en AWS.

Está pensado para tareas pesadas que se ejecutan de forma planificada o masiva.

AWS Batch se encarga de:

  • Programar trabajos.
  • Aprovisionar recursos.
  • Escalar capacidad.
  • Ejecutar tareas.
  • Optimizar recursos.

Ideal para #

  • Simulaciones científicas.
  • Procesamiento masivo de datos.
  • Renderizado.
  • Análisis financiero.
  • Machine learning.
  • Genómica.
  • Transcodificación multimedia.

13.3 Amazon Lightsail #

Amazon Lightsail ofrece servidores privados virtuales sencillos, con precios predecibles.

Es una opción simplificada para usuarios que no necesitan toda la complejidad de AWS.

Incluye:

  • Servidores.
  • Almacenamiento.
  • Redes.
  • Bases de datos.
  • Plantillas preconfiguradas.

Ideal para #

  • Blogs.
  • Sitios web pequeños.
  • Aplicaciones sencillas.
  • Entornos de desarrollo.
  • Pequeñas empresas.
  • Aprendizaje de AWS.

13.4 AWS Outposts #

AWS Outposts permite llevar infraestructura y servicios de AWS a un centro de datos local.

Es una solución de nube híbrida.

Permite usar servicios de AWS en las instalaciones de la empresa, manteniendo una experiencia similar a la nube de AWS.

Ideal para #

  • Baja latencia.
  • Requisitos de residencia de datos.
  • Cumplimiento normativo.
  • Integración con sistemas locales.
  • Migración gradual a la nube.
  • Entornos híbridos.

14. Cómo elegir el servicio adecuado #

Usa EC2 cuando... #

Necesites mucho control sobre el servidor.

Ejemplos:

  • Configuración personalizada del sistema operativo.
  • Aplicaciones tradicionales.
  • Software que necesita acceso al sistema.
  • Migraciones desde servidores físicos.

Usa Lambda cuando... #

Necesites ejecutar código corto en respuesta a eventos.

Ejemplos:

  • Procesar archivos.
  • Automatizar tareas.
  • Responder a eventos.
  • Crear funciones backend.
  • Procesar mensajes.

Usa ECS cuando... #

Quieras ejecutar contenedores de forma sencilla en AWS.

Ejemplos:

  • Microservicios.
  • APIs.
  • Aplicaciones contenerizadas.
  • Equipos que no necesitan Kubernetes.

Usa EKS cuando... #

Necesites Kubernetes.

Ejemplos:

  • Ya usas Kubernetes.
  • Quieres portabilidad.
  • Necesitas control avanzado.
  • Tienes arquitecturas complejas de microservicios.

Usa Fargate cuando... #

Quieras ejecutar contenedores sin administrar servidores.

Ejemplos:

  • Aplicaciones modernas.
  • Equipos pequeños.
  • Microservicios.
  • Cargas que deben escalar fácilmente.

Usa Elastic Beanstalk cuando... #

Quieres desplegar una aplicación web sin configurar manualmente toda la infraestructura.

Ejemplos:

  • Subir código y dejar que AWS cree el entorno.
  • Aplicaciones web tradicionales.
  • APIs REST.

Usa AWS Batch cuando... #

Necesitas ejecutar trabajos pesados por lotes.

Ejemplos:

  • Procesamiento de datos.
  • Simulaciones.
  • Cálculos científicos.
  • Tareas masivas.

Usa Lightsail cuando... #

Quieres algo sencillo, económico y predecible.

Ejemplos:

  • WordPress.
  • Web pequeña.
  • Proyecto personal.
  • Servidor básico.

Usa Outposts cuando... #

Necesitas servicios de AWS en tu propio centro de datos.

Ejemplos:

  • Baja latencia local.
  • Normativa de datos.
  • Sistemas híbridos.
  • Procesamiento cerca del origen de los datos.

15. Resumen del módulo #

AWS ofrece varias opciones de computación para adaptarse a distintos tipos de aplicaciones.

Amazon EC2 proporciona servidores virtuales con mucho control, pero requiere mayor responsabilidad de administración.

AWS Lambda permite ejecutar código sin administrar servidores y es ideal para arquitecturas basadas en eventos.

Los contenedores permiten empaquetar aplicaciones de forma portable, y AWS ofrece servicios como ECS, EKS, ECR y Fargate para ejecutarlos y gestionarlos.

Además, servicios como Elastic Beanstalk, AWS Batch, Lightsail y Outposts cubren casos de uso concretos, desde aplicaciones web sencillas hasta nube híbrida.


Ideas clave para el examen AWS Cloud Practitioner #

  • EC2 es computación mediante servidores virtuales.
  • EC2 ofrece mucho control, pero requiere administrar sistema operativo, parches y escalado.
  • Los servicios administrados reducen la carga operativa del cliente.
  • Serverless no significa que no haya servidores, sino que no los administras.
  • Lambda es computación sin servidor basada en eventos.
  • Lambda tiene una duración máxima de ejecución de 15 minutos.
  • Lambda escala automáticamente.
  • Los contenedores empaquetan código, dependencias y configuración.
  • ECS es el servicio de orquestación de contenedores propio de AWS.
  • EKS permite ejecutar Kubernetes administrado en AWS.
  • ECR almacena imágenes de contenedor.
  • Fargate ejecuta contenedores sin administrar servidores.
  • Elastic Beanstalk simplifica el despliegue de aplicaciones web.
  • AWS Batch ejecuta trabajos por lotes.
  • Lightsail ofrece servidores sencillos con precio predecible.
  • Outposts lleva servicios de AWS a instalaciones locales.

Opciones de computación

Loading...