Soluciones de Well-Architected
1. Introducción #
AWS ofrece muchos servicios que pueden combinarse para crear arquitecturas en la nube.
Sin embargo, no basta con que una arquitectura funcione. También debe ser:
- Segura.
- Eficiente.
- Resiliente.
- Rentable.
- Operable.
- Sostenible.
Para evaluar si una arquitectura está bien diseñada, AWS proporciona el AWS Well-Architected Framework.
2. AWS Well-Architected Framework #
¿Qué es? #
El AWS Well-Architected Framework es un marco de buenas prácticas para diseñar, revisar y mejorar arquitecturas en AWS.
Ayuda a construir soluciones:
- Más seguras.
- Más fiables.
- Más eficientes.
- Más económicas.
- Más fáciles de operar.
- Más sostenibles.
3. Los 6 pilares de Well-Architected #
El marco se basa en seis pilares:
- Excelencia operativa.
- Seguridad.
- Fiabilidad.
- Eficiencia del rendimiento.
- Optimización de costes.
- Sostenibilidad.
4. Excelencia operativa #
Idea principal #
La excelencia operativa se centra en ejecutar, supervisar y mejorar sistemas para aportar valor al negocio.
Incluye:
- Automatizar despliegues.
- Supervisar aplicaciones.
- Responder a eventos.
- Mejorar procesos continuamente.
- Aprender de errores.
- Documentar operaciones.
Ejemplo #
Usar CodePipeline para automatizar despliegues y CloudWatch para supervisar el estado de la aplicación.
5. Seguridad #
Idea principal #
El pilar de seguridad busca proteger información, sistemas y recursos.
Incluye:
- Gestión de identidades.
- Principio de mínimo privilegio.
- Cifrado.
- Protección de datos.
- Detección de amenazas.
- Control de acceso.
- Auditoría.
Ejemplo #
Usar IAM, KMS, CloudTrail, GuardDuty y Security Hub para proteger y supervisar el entorno.
6. Fiabilidad #
Idea principal #
La fiabilidad se centra en que los sistemas funcionen correctamente y puedan recuperarse ante fallos.
Incluye:
- Alta disponibilidad.
- Recuperación ante desastres.
- Diseño multi-AZ.
- Copias de seguridad.
- Auto Scaling.
- Tolerancia a fallos.
Ejemplo #
Desplegar una aplicación en varias zonas de disponibilidad con Elastic Load Balancing y Auto Scaling.
7. Eficiencia del rendimiento #
Idea principal #
La eficiencia del rendimiento consiste en usar los recursos adecuados para cada carga de trabajo.
Incluye:
- Seleccionar bien el tipo de instancia.
- Escalar según demanda.
- Usar servicios administrados.
- Medir rendimiento.
- Revisar recursos cuando cambian las necesidades.
Ejemplo #
Cambiar una instancia EC2 demasiado grande por una más adecuada o usar Lambda para cargas event-driven.
8. Optimización de costes #
Idea principal #
La optimización de costes consiste en evitar gastos innecesarios y obtener el máximo valor por el dinero invertido.
Incluye:
- Eliminar recursos no usados.
- Elegir modelos de precio adecuados.
- Usar Savings Plans o instancias reservadas.
- Revisar Cost Explorer.
- Crear presupuestos.
- Ajustar tamaño de recursos.
Ejemplo #
Detectar instancias EC2 infrautilizadas con Trusted Advisor y reducir su tamaño.
9. Sostenibilidad #
Idea principal #
La sostenibilidad busca reducir el impacto ambiental de las cargas de trabajo.
Incluye:
- Usar recursos eficientes.
- Evitar infraestructura siempre encendida si no es necesaria.
- Dimensionar correctamente.
- Usar servicios administrados o serverless cuando encajen.
- Reducir desperdicio de capacidad.
Ejemplo #
Cambiar procesos que se ejecutan de forma ocasional en EC2 por funciones Lambda.
10. AWS Well-Architected Tool #
¿Qué es? #
AWS Well-Architected Tool es una herramienta de autoservicio para revisar cargas de trabajo en AWS.
Permite evaluar una arquitectura frente a los seis pilares del Well-Architected Framework.
Cómo funciona #
- Creas una carga de trabajo.
- Respondes preguntas sobre la arquitectura.
- La herramienta identifica riesgos y áreas de mejora.
- Se genera un informe.
- Se ofrecen recomendaciones basadas en buenas prácticas.
Ventajas #
- Ayuda a detectar problemas.
- Proporciona recomendaciones.
- Permite revisar arquitecturas de forma estructurada.
- Ayuda a priorizar mejoras.
- Puede personalizarse según el caso de uso.
11. Servicios especializados de AWS #
Además de los servicios principales vistos en el curso, AWS ofrece muchos servicios diseñados para casos específicos.
En este módulo destacamos cuatro categorías:
- Servicios de desarrollo.
- Servicios de aplicaciones empresariales.
- Servicios de computación para usuario final.
- Servicios de IoT.
12. Servicios de desarrollo #
AWS ofrece servicios para ayudar a desarrollar, probar, desplegar y depurar aplicaciones.
12.1 AWS CodeBuild #
AWS CodeBuild es un servicio de integración continua completamente administrado.
Permite:
- Compilar código fuente.
- Ejecutar pruebas.
- Crear paquetes de software.
- Escalar automáticamente.
- Pagar solo por el tiempo de compilación.
Caso de uso #
Compilar una aplicación automáticamente cada vez que se sube código al repositorio.
12.2 AWS CodePipeline #
AWS CodePipeline es un servicio de CI/CD completamente administrado.
Automatiza las fases de:
- Construcción.
- Prueba.
- Despliegue.
Caso de uso #
Cuando un desarrollador sube cambios al repositorio, CodePipeline puede iniciar automáticamente el flujo para probar y desplegar la aplicación.
12.3 AWS X-Ray #
AWS X-Ray ayuda a analizar y depurar aplicaciones distribuidas.
Permite ver cómo una petición atraviesa los distintos componentes de una aplicación.
Sirve para #
- Detectar cuellos de botella.
- Analizar latencia.
- Solucionar errores.
- Entender dependencias entre servicios.
- Mejorar rendimiento.
12.4 AWS AppSync #
AWS AppSync es un servicio administrado para crear APIs GraphQL.
GraphQL permite que una aplicación solicite solo los datos que necesita.
Caso de uso #
Una aplicación móvil necesita consultar datos de varias fuentes mediante una única API GraphQL.
12.5 AWS Amplify #
AWS Amplify ayuda a desarrollar, desplegar y administrar aplicaciones web y móviles.
Permite añadir fácilmente:
- Autenticación.
- APIs.
- Almacenamiento.
- Hosting.
- Funciones backend.
Caso de uso #
Crear rápidamente una aplicación web full-stack con autenticación y backend en AWS.
13. Servicios de aplicaciones empresariales #
13.1 Amazon Connect #
Amazon Connect es un servicio de centro de contacto en la nube.
Permite crear centros de atención al cliente con llamadas, chats, enrutamiento y análisis.
Caso de uso #
Una empresa quiere montar un call center escalable sin gestionar infraestructura propia.
13.2 Amazon Simple Email Service #
Amazon SES es un servicio escalable para enviar correos electrónicos.
Permite enviar:
- Emails transaccionales.
- Boletines.
- Campañas de marketing.
- Notificaciones.
Caso de uso #
Una tienda online envía confirmaciones de pedido y correos promocionales.
14. Servicios de computación para usuario final #
Estos servicios permiten ofrecer escritorios, aplicaciones o navegación remota a empleados.
14.1 Amazon AppStream 2.0 #
Amazon AppStream 2.0 permite transmitir aplicaciones de escritorio desde la nube a cualquier dispositivo compatible.
Caso de uso #
Un usuario accede a una aplicación pesada sin instalarla en su ordenador.
14.2 Amazon WorkSpaces #
Amazon WorkSpaces es un servicio de escritorios virtuales administrados.
Permite acceder a un entorno de trabajo desde cualquier lugar.
Caso de uso #
Empleados remotos acceden a su escritorio corporativo de forma segura.
14.3 Amazon WorkSpaces Secure Browser #
Amazon WorkSpaces Secure Browser proporciona un navegador remoto empresarial administrado.
Permite acceso seguro a:
- Aplicaciones web internas.
- SaaS.
- Internet pública controlada.
Caso de uso #
Un empleado necesita acceder a aplicaciones web corporativas sin instalar VPN ni software especializado.
15. Servicios de IoT #
15.1 AWS IoT Core #
AWS IoT Core permite conectar dispositivos físicos de forma segura con aplicaciones en la nube.
IoT significa Internet of Things, o Internet de las cosas.
AWS IoT Core permite #
- Conectar dispositivos.
- Recibir datos de sensores.
- Procesar mensajes.
- Controlar dispositivos remotamente.
- Usar autenticación y cifrado.
- Integrarse con otros servicios AWS.
Casos de uso #
- Cámaras inteligentes.
- Sensores industriales.
- Sistemas de riego inteligentes.
- Dispositivos domésticos conectados.
- Comederos inteligentes.
- Monitorización remota.
16. Comparación rápida de servicios especializados #
| Servicio | Categoría | Función principal |
|---|---|---|
| CodeBuild | Desarrollo | Compilar código y ejecutar pruebas |
| CodePipeline | Desarrollo | Automatizar CI/CD |
| X-Ray | Desarrollo | Depurar y rastrear aplicaciones |
| AppSync | Desarrollo | Crear APIs GraphQL |
| Amplify | Desarrollo | Crear apps web y móviles full-stack |
| Amazon Connect | Empresa | Centro de contacto en la nube |
| Amazon SES | Empresa | Envío de emails |
| AppStream 2.0 | Usuario final | Streaming de aplicaciones |
| WorkSpaces | Usuario final | Escritorios virtuales |
| WorkSpaces Secure Browser | Usuario final | Navegador remoto seguro |
| AWS IoT Core | IoT | Conectar dispositivos a la nube |
17. Casos prácticos #
Caso 1: Automatizar despliegues #
Una empresa quiere que cada cambio de código pase por pruebas y despliegue automático.
Servicio recomendado #
AWS CodePipeline.
Caso 2: Compilar y probar código #
Un equipo necesita ejecutar pruebas automáticas al subir código.
Servicio recomendado #
AWS CodeBuild.
Caso 3: Depurar una aplicación distribuida #
Una aplicación tiene problemas de latencia y no se sabe en qué componente ocurre.
Servicio recomendado #
AWS X-Ray.
Caso 4: Crear una API GraphQL #
Una aplicación móvil necesita consultar datos de varias fuentes desde una única API.
Servicio recomendado #
AWS AppSync.
Caso 5: Crear una app web con autenticación y hosting rápido #
Un equipo pequeño quiere construir una aplicación full-stack sin gestionar mucha infraestructura.
Servicio recomendado #
AWS Amplify.
Caso 6: Crear un centro de atención al cliente #
Una empresa necesita gestionar llamadas y chats de soporte.
Servicio recomendado #
Amazon Connect.
Caso 7: Enviar correos masivos o transaccionales #
Una tienda online quiere enviar confirmaciones de pedidos.
Servicio recomendado #
Amazon SES.
Caso 8: Dar acceso remoto a aplicaciones de escritorio #
Un usuario necesita usar software de escritorio sin instalarlo localmente.
Servicio recomendado #
Amazon AppStream 2.0.
Caso 9: Dar escritorios virtuales a empleados #
Una empresa quiere escritorios remotos administrados.
Servicio recomendado #
Amazon WorkSpaces.
Caso 10: Acceso seguro solo a aplicaciones web #
Una empresa quiere que empleados accedan a aplicaciones web internas sin VPN.
Servicio recomendado #
Amazon WorkSpaces Secure Browser.
Caso 11: Conectar sensores o dispositivos físicos a AWS #
Una empresa quiere recopilar datos de dispositivos IoT.
Servicio recomendado #
AWS IoT Core.
18. Ideas clave para el examen AWS Cloud Practitioner #
- AWS Well-Architected Framework ayuda a evaluar arquitecturas.
- Los seis pilares son excelencia operativa, seguridad, fiabilidad, eficiencia del rendimiento, optimización de costes y sostenibilidad.
- Excelencia operativa se centra en operar y mejorar procesos.
- Seguridad se centra en proteger datos, sistemas e identidades.
- Fiabilidad se centra en recuperación y resistencia ante fallos.
- Eficiencia del rendimiento se centra en usar recursos adecuados.
- Optimización de costes se centra en evitar gastos innecesarios.
- Sostenibilidad se centra en reducir impacto ambiental.
- AWS Well-Architected Tool permite revisar cargas de trabajo.
- CodeBuild compila código y ejecuta pruebas.
- CodePipeline automatiza CI/CD.
- X-Ray ayuda a depurar aplicaciones distribuidas.
- AppSync permite crear APIs GraphQL.
- Amplify ayuda a crear aplicaciones web y móviles full-stack.
- Amazon Connect es un centro de contacto en la nube.
- Amazon SES sirve para enviar correos electrónicos.
- AppStream 2.0 transmite aplicaciones de escritorio.
- WorkSpaces ofrece escritorios virtuales.
- WorkSpaces Secure Browser ofrece navegación remota segura.
- AWS IoT Core conecta dispositivos físicos con AWS.