# Tema 2 - Implementación y Administración de Sistemas en la nube ## 1. Servicios en la nube - **IaaS (Infraestructura como servicio):** Proporciona recursos básicos de computación: máquinas virtuales, redes, almacenamiento. El usuario gestiona el sistema operativo, el middleware, las aplicaciones y los datos. - **PaaS (Plataforma como servicio):** Ofrece entornos de desarrollo y despliegue listos para usar. El proveedor gestiona el sistema operativo, el middleware y la infraestructura. - **SaaS (Software como servicio):** Aplicaciones completas accesibles vía web. El proveedor gestiona todo: infraestructura, plataforma y software. ### 1.1 Servicios clave en AWS | Servicio | Descripcion | Tipo | |----------|----------|----------| | EC2 | Maquinas virtuales | IaaS | | S3 | Almacenamiento de objetos | IaaS | | RDS | Bases de datos | PaaS | | Lambda | Ejecucion de funciones sin servidor | PaaS | | VPC | Red privada | IaaS | | IAM | Gestion de usuarios, roles y permisos | Seguridad | ## 2. Monitor de recursos El monitoreo de recursos en la nube, es el proceso de rastrear, analizar y gestionar el rendimiento, la disponibilidad y la seguridad de los servicios e infraestruturas en la nube. Se realiza mediante el uso de herramientas manuales y automaticas para observar metricas clave. **Que implica el monitoreo de recursos en la nube:** - *Analisis continuo:* Se supervisa el rendimiendo en tiempo real - *Seguimiento de metricas clave:* Se monitorizan datos como la utilizacion de CPU, memoria, etc - *Identificacion de problemas:* Se buscan problemas potenciales, como cuellos de botella - *Seguridad y cumplimiento:* Se rastrean los datos para identificar vulnerabilidades de seguridad y asegurarse de que se cumplen las normativas. - *Optimizacion de costos:* Se analiza el uso de recursos para optimizar gastos **Herramientas:** Las herramientas destacadas en los principales proveedores de cloud son: - Amazon CloudWatch (AWS) - Azure Monitor (Microsoft) - Google Operations (GCP) **Buenas practicas** - Definir metriclas clave - Consolidar datos en una plataforma - Controlar costes - Supervisar uso - Automatizar reglas de rendimiento - Centralizar y probar regularmente herramientas **Servicios de monitoreo en AWS** *Amazon CloudWatch* - Métricas: CPU, memoria, tráfico de red, etc. - Logs: registro de eventos y errores. - Alarmas: notificaciones automáticas ante eventos críticos. - Dashboards: visualización personalizada. *AWS CloudTrail* - Registro de actividad de usuarios y servicios. - Auditoría de seguridad y cumplimiento. *AWS X-Ray* - Análisis de rendimiento de aplicaciones distribuidas. - Trazado de solicitudes entre microservicios. - Identificación de cuellos de botella. ### 2.1 Rendimiento en un entorno nube El rendimiento en la nube hace referencia a la capacidad de los recursos y servicios cloud para trabajar de forma eficiente Implica aspectos como: - Tiempo de respuesta de los servicios - Velocidad de procesamiento - Capacidad de red y disco - Adaptacion de la carga En la nube, el rendimiento no depende solo del "hardware", sino también de la configuración, la arquitectura del sistema y las políticas de escalado y disponibilidad. **Diferencias entre rendimiento en local y en cloud** | Aspecto | Entorno Local | Entorno Cloud | |----------|----------|----------| | Control sobre hardware | Total | Limitado | | Rendimiento estable | Si, si no hay sobrecarga | Puede variar | | Elasticidad | Limitada o nula | Alta | | Escalado | Manual y lenta | Automatica y rapida | | Mantenimiento | A cargo del equipo local | A cargo del proveedor | | Coste de rendimiento | Inversion en hardware | Pago por uso | **Factores que afectan al rendimiendo en la nube** - *Elasticidad:* Es la capacidad de adaptarse automaticamente a los cambios en la carga de trabajo. - *Escalabilidad:* Es la capacidad del sistema para aumentar o reducir su capacidad para manejar una carga creciente - *Disponibilidad:* Asegura que los servicios esten disponibles y operativos cuando se necesitan ## 3. Seguridad y gestion de Identidades (IAM) La seguridad en AWS, se rige por el **Modelo de responsabilidad compartida** (AWS protege la infraestructura y el cliente protege sus datos). ### 3.1 Conceptos de IAM (Identity and access management). **Entidades:** - **Usuario raiz:** Tiene acceso total. No debe usarse para tareas diarias, se recomienda crear usuarios administradores. - **Usuario IAM:** Persona o aplicacion con credenciales especificas. - **Grupo:** Coleccion de usuarios con permisos identicos. - **Rol:** Identidad con permisos temporales, asumida por usuarios o servicios. **Polticas y permisos:** - Documentos en formato **json** que definen que acciones se permiten o deniegan sobre ciertos recursos. - **Estructura JSON:** Incluye version, ```statement``` (Declaracion), ```effect``` (Allow/Deny),```action``` y ```resource```. - **Principio de minimo privilegio:** Otorgar solo los permisos estrictamente necesarios. ## 4. Capa de almacenamiento: Amazon S3 Amazon S3 (Simple Storage Service), es un almacenamiento de objetos seguro y escalable. **Estructura:** - **Buckets:** Contenedores (como carpetas) donde se guardan los archivos (objetos). - **Objetos:** Archivos junto con sus metadatos, tienen una URL unica y un tamaño maximo de 5Tb **Clases de almacenamiento:** - **S3 Standart:** Para acceso frecuente y uso general. - **S3 Intelligen-Tiering:** Mueve datos automaticamente segun patrones de uso. - **S3 Standart-IA:** Para acceso poco frecuentes - **S3 Glacier:** Para archivos a largo plazo **Funcionalidad clave:** - **Ciclo de vida:** Reglas automaticas para mover objetos a clases mas baratas o eliminarlos tras cierto tiempo - **Control de versiones:** Protege contra borrados o sobreescrituras accidentales - **Alojamiento web estatico:** Permite alojar HTML/CSS/JS directamente desde un bucket. ## 5. Capa de Base de Datos **Tipos de bases de datos:** - **Relacionales (SQL):** Estructura tabular, esquema rigido, escalado vertical. Ideal para integridad de datos. - **No relacionales (NoSQL):** Esquemas flexibles, escalado horizontal. Ideal para alto rendimiento. **Servicios AWS** - **Amazon RDS:** Servicio para bases de datos relacionales, reduce la carga administrativa. - **Amazon Aurora:** Base de datos relacional creada para la nube, de alto rendimiendo y durabilidad. Compatible con MySQL y PostgreSQL - **Amazon Aurora Sin Servidor:** Configuracion de escalada automatico bajo demanda, adecuada para, cargas de trabajo variable, desarollo y prueba, planificacion de capacidad. ### 5.1 Practicas de seguridad recomendadas * Ejecutar instancias en VPCs, para obtener control del acceso a la red * Utilizar politicas de IAM, para asignar permisos * Usar grupos de seguridad para controlar las conexiones * Utilizar conexiones SSL/TLS con la base de datos * Cifrar las instancias de base de datos