AWS Certified Cloud Practitioner v3 PDF
Document Details
Stéphane Maarek y Joan Amengual
Tags
Related
- AWS Certified Cloud Practitioner Exam Preparation PDF
- AWS Certified Solutions Architect Official Study Guide_ Associate Exam.pdf
- AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf
- AWS Certified Developer Associate Slides PDF
- Don Kristopher Angeles Resume - AWS-Certified Professional PDF
- AWS Certified Cloud Practitioner Practice Exam Test Set - 8.pdf
Summary
This document is a course for the AWS Certified Cloud Practitioner exam. It covers various AWS services such as Amazon S3, DynamoDB, Fargate, Lambda, and others. The course also explains serverless computing and its benefits, focusing on the practical aspects of cloud computing.
Full Transcript
NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Certified Cloud Practitioner Por Stéphane Maarek y Joan Amengual CURSO EXÁMENES PRÁCTICOS © Stephane Maarek & Joan Amengual ...
NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Certified Cloud Practitioner Por Stéphane Maarek y Joan Amengual CURSO EXÁMENES PRÁCTICOS © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Advertencia: Estas diapositivas están protegidas por derechos de autor y son estrictamente para uso personal Este documento está reservado a las personas inscritas en el curso AWS Certified Cloud Practitioner Por favor, no compartas este documento, está destinado únicamente a uso personal y a la preparación del examen, gracias. Si has obtenido estas diapositivas de forma gratuita en un sitio web que no es el del curso, por favor, ponte en contacto con [email protected]. ¡Gracias! ¡Mucha suerte para el examen y feliz aprendizaje! © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Tabla de contenidos ¿Qué es Cloud Computing? AWS Identity & Access Management Amazon EC2 Almacenamiento de instancias de Amazon EC2 Elastic Load Balancing y Auto Scaling Group Amazon S3 Bases de datos y análisis Otros servicios informáticos Despliegue y administración de infraestructura a escala Infraestructura global Integración en el Cloud © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Tabla de contenidos Monitorización del Cloud Amazon VPC Seguridad y normativa Machine Learning Gestión de cuentas, facturación y soporte Identidad avanzada Otros servicios de AWS Arquitectura y ecosistema de AWS Preparación del examen Enhorabuena © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Curso AWS Certified Cloud Practitioner © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Bienvenidos. Empezamos en 5 minutos Vamos a preparar el examen AWS Certified Cloud Practitioner Es una certificación exigente, por lo que este curso será largo e interesante Los conocimientos básicos de IT son útiles, pero lo explicaré todo Cubriremos más de 50 servicios de AWS (de los más de 200 de AWS) ¡Los principiantes de AWS / IT son bienvenidos! (pero tómate tu tiempo, no es una carrera) Aprender haciendo - ¡técnica clave de aprendizaje! Este curso combina la teoría y la práctica © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Ejemplo de pregunta: Cloud Practitioner ¿Qué servicio de AWS simplificaría la migración de una base de datos a AWS? A) AWS Storage Gateway muchos contenedores en un servidor Apps Apps Apps Container Container Container Guest OS Guest OS Guest OS Container Container Container (VM) (VM) (VM) Container Container Container Hypervisor Docker Daemon Host OS Host OS (EC2 Instance) Infrastructure Infrastructure © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com ECS Servicio ECS ECS = Elastic Container Service Lanzar contenedores Docker en AWS Nuevo contenedor Docker Debes aprovisionar y mantener la infraestructura (las instancias EC2) Instancia EC2 Instancia EC2 Instancia EC2 AWS se encarga de iniciar/parar los contenedores Tiene integraciones con el Application Load Balancer © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Fargate Nuevo contenedor Docker Lanza contenedores Docker en AWS No aprovisionas la infraestructura (no hay Fargate instancias EC2 que gestionar) - ¡más sencillo! Oferta serverless AWS sólo ejecuta los contenedores por ti en función de la CPU / RAM que necesites © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com ECR ECR = Elastic Container Registry ECR Fargate Registro privado de Docker en AWS Aquí es donde almacenas tus Imagen 1 imágenes Docker para que puedan ser ejecutadas por ECS o Fargate Imagen 2 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com ¿Qué es el serverless? Serverless es un nuevo paradigma en el que los desarrolladores ya no tienen que gestionar servidores... Sólo despliegan código Sólo despliegan... ¡funciones! Inicialmente... Serverless == FaaS (Función como servicio) Serverless fue pionero por AWS Lambda, pero ahora también incluye todo lo que se gestiona "bases de datos, mensajería, almacenamiento, etc." Serverless no significa que no haya servidores... significa que simplemente no los gestionas / aprovisionas / ves © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Hasta ahora en este curso... Amazon S3 DynamoDB Fargate Lambda © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Por qué AWS Lambda Servidores virtuales en el Cloud Limitado por la RAM y la CPU Funcionamiento continuo Amazon EC2 Escalar significa intervenir para añadir/quitar servidores Funciones virtuales: ¡no hay servidores que gestionar! Limitado por el tiempo - ejecuciones cortas Ejecución bajo demanda Amazon Lambda El escalado está automatizado © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Beneficios de AWS Lambda Precios sencillos: Paga por solicitud y tiempo de computación Capa gratuita de 1.000.000 de solicitudes de AWS Lambda y 400.000 GB de tiempo de computación Integrado con todo el conjunto de servicios de AWS Dirigido por eventos: las funciones son invocadas por AWS cuando se necesitan Integrado con muchos lenguajes de programación Fácil monitorización a través de AWS CloudWatch Fácil de obtener más recursos por funciones (¡hasta 10 GB de RAM!) ¡El aumento de la RAM también mejorará la CPU y la red! © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Soporte del lenguaje AWS Lambda Node.js (JavaScript) Python Java (compatible con Java 8) C# (.NET Core) Golang C# / Powershell Ruby API de tiempo de ejecución personalizado (compatible con la comunidad, ejemplo Rust) Imagen del contenedor Lambda La imagen del contenedor debe implementar la API de tiempo de ejecución Lambda Se prefiere ECS / Fargate para ejecutar imágenes Docker arbitrarias © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Ejemplo: Creación de miniaturas Serverless s h pu Nueva miniatura en S3 trigger pu sh La función Lambda de AWS Nombre de la imagen Nueva imagen en S3 Tamaño de la imagen crea una miniatura Fecha de creación etc. Metadata en DynamoDB © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Ejemplo: Trabajo CRON Serverless Trigger Cada 1 hora EventBridge Función AWS Lambda realiza una tarea © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Precios de AWS Lambda: ejemplo Puedes encontrar información general sobre los precios aquí: https://aws.amazon.com/lambda/pricing/ Pago por llamadas: Los primeros 1.000.000 de solicitudes son gratuitos 0,20 $ por cada millón de solicitudes a partir de entonces (0,0000002 $ por solicitud) Pago por duración: (en incrementos de 1 ms) 400.000 GB-segundos de tiempo de cálculo al mes GRATIS == 400.000 segundos si la función es de 1GB de RAM == 3.200.000 segundos si la función es de 128 MB de RAM Después, 1 dólar por 600.000 GB-segundos Suele ser muy barato ejecutar AWS Lambda, por lo que es muy popular © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Amazon API Gateway Ejemplo: construir una API serverless REST API PROXY REQUESTS CRUD Cliente API Gateway Lambda DynamoDB Servicio totalmente gestionado para que los desarrolladores puedan crear, publicar, mantener, supervisar y asegurar fácilmente las API Serverless y escalable Soporta APIs RESTful y APIs WebSocket Soporta seguridad, autenticación de usuarios, claves de la API, monitorización... © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Batch Procesamiento por lotes totalmente gestionado a cualquier escala Ejecuta eficientemente 100.000 trabajos de computación por lotes en AWS Un trabajo "por lotes" es un trabajo con un inicio y un final (en contraposición a uno continuo) Batch lanzará dinámicamente instancias EC2 o instancias Spot AWS Batch proporciona la cantidad adecuada de computación / memoria Tú envías o programas los trabajos por lotes y AWS Batch se encarga del resto Los trabajos por lotes se definen como imágenes Docker y se ejecutan en ECS Útil para optimizar los costes y centrarse menos en la infraestructura © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Batch – Ejemplo simplificado AWS Batch Instancia EC2 ECS Insertar Amazon S3 Trigger objeto procesado Spot Instance Amazon S3 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Batch vs Lambda Lambda: Límite de tiempo Tiempos de ejecución limitados Espacio de disco temporal limitado Serverless Por lotes: Sin límite de tiempo Cualquier tiempo de ejecución siempre que esté empaquetado como imagen Docker Depende de EBS / almacén de instancias para el espacio en disco Depende de EC2 (puede ser gestionado por AWS) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Amazon Lightsail Servidores virtuales, almacenamiento, bases de datos y redes Precios bajos y predecibles Alternativa más sencilla al uso de EC2, RDS, ELB, EBS, Route 53... Ideal para personas con poca experiencia en el Cloud Puedes configurar notificaciones y monitorización de tus recursos Lightsail Casos de uso: Aplicaciones web sencillas (tiene plantillas para LAMP, Nginx, MEAN, Node.js...) Sitios web (plantillas para WordPress, Magento, Plesk, Joomla) Entorno de desarrollo/prueba Tiene alta disponibilidad pero no tiene autoescalado, integraciones limitadas con AWS © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Resumen - Otros servicios de computación Docker: tecnología de contenedores para ejecutar aplicaciones ECS: ejecuta contenedores Docker en instancias EC2 Fargate: Ejecuta contenedores Docker sin aprovisionar la infraestructura Oferta serverless (sin instancias EC2) ECR: Repositorio privado de imágenes Docker Batch: ejecuta trabajos por lotes en AWS a través de instancias EC2 gestionadas Lightsail: precios predecibles y bajos para pilas de aplicaciones y bases de datos sencillas © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Resumen - Lambda Lambda es serverless, función como servicio, escalado sin fisuras, reactivo Facturación de Lambda: Por el tiempo de ejecución x por la RAM aprovisionada Por el número de invocaciones Soporte de lenguajes: muchos lenguajes de programación excepto (arbitrariamente) Docker Tiempo de invocación: hasta 15 minutos Casos de uso: Crear miniaturas para imágenes subidas a S3 Ejecutar un trabajo cron sin servidor Gateway de la API: exponer las funciones Lambda como API HTTP © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Despliegue y gestión de la infraestructura a escala © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Qué es CloudFormation CloudFormation es una forma declarativa de esbozar tu infraestructura de AWS, para cualquier recurso (la mayoría de ellos son compatibles). Por ejemplo, dentro de una plantilla de CloudFormation, dices Quiero un grupo de seguridad Quiero dos instancias EC2 que utilicen este grupo de seguridad Quiero un bucket S3 Quiero un load balancer (ELB) delante de estas máquinas Entonces CloudFormation los crea por ti, en el orden correcto, con la configuración exacta que especifiques © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Ventajas de AWS CloudFormation (1/2) Infraestructura como código No se crean recursos manualmente, lo que es excelente para el control Los cambios en la infraestructura se revisan a través del código Coste Cada recurso dentro de la pila está etiquetado con un identificador para que puedas ver fácilmente cuánto te cuesta una pila Puedes estimar los costes de tus recursos utilizando la plantilla de CloudFormation Estrategia de ahorro: En Dev, podrías automatizar la eliminación de plantillas a las 5 de la tarde y volver a crearlas a las 8 de la mañana, de forma segura © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Ventajas de AWS CloudFormation (2/2) Productividad Posibilidad de destruir y volver a crear una infraestructura en el Cloud sobre la marcha Generación automatizada de diagramas para tus plantillas Programación declarativa (no es necesario averiguar el orden y la orquestación) No vuelvas a inventar la rueda Aprovecha las plantillas existentes en la web Aprovecha la documentación Soporta (casi) todos los recursos de AWS: Todo lo que veremos en este curso es compatible Puedes utilizar "recursos personalizados" para los recursos que no son compatibles © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Stack Designer de CloudFormation Ejemplo: Stack de CloudFormation para WordPress Podemos ver todos los recursos Podemos ver las relaciones entre los componentes © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Cloud Development Kit (CDK) Define tu infraestructura de Cloud usando un lenguaje conocido: JavaScript/TypeScript, Python, Java y.NET El código se "compila" en una plantilla de CloudFormation (JSON/YAML) Por lo tanto, puedes desplegar juntos la infraestructura y el código de ejecución de la aplicación Genial para las funciones Lambda Genial para contenedores Docker en ECS / EKS Aplicación CDK CDK CLI Plantilla de CloudFormation Lenguajes CloudFormation de programación © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Ejemplo de CDK © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Arquitectura típica: Web App de 3 niveles Auto Scaling group ElastiCache Zona de disponibilidad 1 Multi AZ Almacenar / recuperar Zona de disponibilidad 2 datos de la sesión + Datos en caché ELB Zona de disponibilidad 3 Amazon RDS Lectura / escritura de datos © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Problemas de los desarrolladores en AWS Gestión de la infraestructura Desplegar el código Configurar todas las bases de datos, load balancers, etc. Problemas de escalado La mayoría de las aplicaciones web tienen la misma arquitectura (ALB + ASG) Lo único que quieren los desarrolladores es que su código se ejecute Posiblemente, de forma consistente en diferentes aplicaciones y entornos © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Visión general de AWS Elastic Beanstalk Elastic Beanstalk es una visión centrada en el desarrollador de la implementación de una aplicación en AWS Utiliza todos los componentes que hemos visto antes: EC2, ASG, ELB, RDS, etc. Pero todo está en una sola vista que es fácil de entender. Seguimos teniendo un control total sobre la configuración Beanstalk = Plataforma como servicio (PaaS) Beanstalk es gratuito, pero pagas por las instancias subyacentes © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Elastic Beanstalk Servicio gestionado La configuración de la instancia / el sistema operativo es manejado por Beanstalk La estrategia de despliegue es configurable pero la realiza Elastic Beanstalk Aprovisionamiento de capacidad Equilibrio de carga y autoescalado Supervisión del estado de la aplicación y capacidad de respuesta Sólo el código de la aplicación es responsabilidad del desarrollador Tres modelos de arquitectura: Despliegue de instancia única: bueno para el desarrollo LB + ASG: ideal para aplicaciones web de producción o preproducción Sólo ASG: ideal para aplicaciones no web en producción (trabajadores, etc.) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Elastic Beanstalk Soporte para muchas plataformas: Constructor de paquetes Go Docker de un solo contenedor Java SE Docker multicontenedor Java con Tomcat Docker preconfigurado.NET en Windows Server con IIS Node.js PHP Si no es compatible, puedes Python escribir tu plataforma personalizada (avanzado) Ruby © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Elastic Beanstalk - Monitorización de salud El agente de salud envía las métricas a CloudWatch Comprueba la salud de la aplicación, publica los eventos de salud © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CodeDeploy Queremos desplegar nuestra aplicación Instancias EC2 que se actualizan automáticamente v1 v2 Funciona con instancias EC2 v1 v2 Funciona con servidores locales Servicio híbrido v1 v2 Servidores locales que se actualizan Los servidores / instancias deben ser aprovisionados y configurados de antemano con el agente de CodeDeploy © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CodeCommit Antes de enviar el código de la aplicación a los servidores, es necesario almacenarlo en algún lugar Los desarrolladores suelen almacenar el código en un repositorio, utilizando la tecnología Git Una oferta pública famosa es GitHub, el producto competidor de AWS es CodeCommit CodeCommit: Servicio de control de fuentes que aloja repositorios basados en Git Facilita la colaboración con otros en el código Los cambios en el código se versionan automáticamente Ventajas: Totalmente gestionado Escalable y de alta disponibilidad Privado, seguro, integrado con AWS © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CodeBuild Servicio de construcción de código en el Cloud (el nombre es obvio) Compila el código fuente, ejecuta las pruebas y produce paquetes que están listos para ser desplegados (por CodeDeploy, por ejemplo) Recupera el código Construye el código Artefacto listo para desplegar CodeCommit CodeBuild Ventajas: Totalmente gestionado, sin servidor Continuamente escalable y altamente disponible Seguro Precio de pago por uso: sólo pagas por el tiempo de compilación © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CodePipeline Orquestar los diferentes pasos para que el código sea empujado automáticamente a producción Código => Construir => Probar => Aprovisionar => Desplegar Base de CICD (Integración continua y entrega continua) Ventajas: Totalmente gestionado, compatible con CodeCommit, CodeBuild, CodeDeploy, Elastic Beanstalk, CloudFormation, GitHub, servicios de terceros (GitHub...) y plugins personalizados... Entrega rápida y actualizaciones rápidas CodePipeline: capa de orquestación CodeCommit CodeBuild CodeDeploy Elastic Beanstalk © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CodeArtifact Los paquetes de software dependen unos de otros para ser construidos (también llamados dependencias de código), y se crean otros nuevos Almacenar y recuperar estas dependencias se llama gestión de artefactos Tradicionalmente tienes que configurar tu propio sistema de gestión de artefactos CodeArtifact es una gestión de artefactos segura, escalable y rentable para el desarrollo de software Funciona con herramientas comunes de gestión de dependencias como Maven, Gradle, npm, yarn, twine, pip y NuGet Los desarrolladores y CodeBuild pueden recuperar las dependencias directamente desde CodeArtifact © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CodeStar Interfaz de usuario unificada para gestionar fácilmente las actividades de desarrollo de software en un solo lugar "Forma rápida" de empezar a configurar correctamente CodeCommit, CodePipeline, CodeBuild, CodeDeploy, Elastic Beanstalk, EC2, etc. Puedes editar el código "en la nube" utilizando AWS Cloud9 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Cloud9 AWS Cloud9 es un IDE (Entorno de Desarrollo Integrado) en el Cloud para escribir, ejecutar y depurar código Los IDE "clásicos" (como IntelliJ, Visual Studio Code...) se descargan en un ordenador antes de ser utilizados Un IDE en el Cloud se puede utilizar dentro de un navegador web, lo que significa que puedes trabajar en tus proyectos desde tu oficina, casa o cualquier lugar con Internet sin necesidad de configuración AWS Cloud9 también permite la colaboración de código en tiempo real (pair programming) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Systems Manager (SSM) Te ayuda a gestionar tus sistemas EC2 y On-Premises a escala Otro servicio híbrido de AWS Obtén información operativa sobre el estado de tu infraestructura Conjunto de más de 10 productos Las características más importantes son: Automatización de parches para mejorar la normativa Ejecuta comandos en toda una flota de servidores Almacena la configuración de los parámetros con el almacén de parámetros SSM Funciona para Linux, Windows, MacOs y Raspberry Pi OS (Raspbian) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Cómo funciona Systems Manager Necesitamos instalar el agente SSM en los sistemas que controlamos SSM Se instala por defecto en las AMI de Amazon Linux y en algunas AMI de Ubuntu Si una instancia no puede ser controlada con SSM, probablemente se trate de un problema con el agente SSM Gracias al agente SSM, podemos SSM Agent SSM Agent SSM Agent ejecutar comandos, parchear y configurar nuestros servidores VM en las Instancia EC2 Instancia EC2 instalaciones © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Systems Manager – SSM Session Manager Te permite iniciar un shell seguro en tus servidores Instancia EC2 EC2 y locales (Agente SSM) Ejecuta No se necesita acceso SSH ni claves SSH comandos No se necesita el puerto 22 (mayor seguridad) Session Manager Envía los datos de registro de la sesión a S3 o a CloudWatch Logs Permisos IAM Usuario © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS OpsWorks Chef y Puppet te ayudan a realizar la configuración del servidor de forma automática, o acciones repetitivas Funcionan muy bien con EC2 y VM On-Premises AWS OpsWorks = Chef y Puppet gestionados Es una alternativa a AWS SSM Sólo aprovisiona recursos estándar de AWS: Instancias EC2, bases de datos, balanceadores de carga, volúmenes EBS... En el examen: Se necesita Chef o Puppet => AWS OpsWorks © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Arquitectura de OpsWorks Repositorio Stack OpsWorks Repositorio de libros de de app cocina Capa de Elastic ALB Load Balancer Capas de OpsWorks Capa servidor de aplicaciones Capas de OpsWorks Instancias de App Server (EC2) Aplicaciones Capa de base de datos Capas de OpsWorks Servidor de base de datos (RDS) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Resumen - Despliegue CloudFormation: (sólo AWS) Infraestructura como código, funciona con casi todos los recursos de AWS Se repite en todas las regiones y cuentas Beanstalk: (sólo AWS) Plataforma como servicio (PaaS), limitada a ciertos lenguajes de programación o Docker Implementa el código de forma coherente con una arquitectura conocida: por ejemplo, ALB + EC2 + RDS CodeDeploy (híbrido): despliega y actualiza cualquier aplicación en los servidores Systems Manager (híbrido): parchea, configura y ejecuta comandos a escala OpsWorks (híbrido): gestiona Chef y Puppet en AWS © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Resumen - Servicios para desarrolladores CodeCommit: Almacena el código en un repositorio git privado (versión controlada) CodeBuild: Construye y prueba el código en AWS CodeDeploy: Implementa el código en los servidores CodePipeline: Orquestación del pipeline (desde el código hasta la construcción y el despliegue) CodeArtifact: Almacena paquetes de software / dependencias en AWS CodeStar: Vista unificada para permitir a los desarrolladores hacer CICD y código Cloud9: IDE (Entorno de Desarrollo Integrado) en el Cloud con collab AWS CDK: Define tu infraestructura en el Cloud utilizando un lenguaje de programación © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Infraestructura Global © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com ¿Por qué hacer una solicitud global? Una aplicación global es una aplicación desplegada en múltiples geografías En AWS: pueden ser regiones y/o edge locations Disminución de la latencia La latencia es el tiempo que tarda un paquete de red en llegar a un servidor Un paquete de Asia tarda en llegar a Estados Unidos Implementa tus aplicaciones más cerca de tus usuarios para disminuir la latencia y mejorar la experiencia Recuperación de desastres (Disaster Recovery - DR) Si una región de AWS se cae (terremoto, tormentas, corte de energía, política)... Puedes conmutar por error a otra región y que tu aplicación siga funcionando Un plan de RD es importante para aumentar la disponibilidad de tu aplicación Protección contra ataques: la infraestructura global distribuida es más difícil de atacar © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Infraestructura global de AWS Regiones: Para desplegar aplicaciones e infraestructura Zonas de disponibilidad: Formadas por múltiples centros de datos Edge Location (puntos de presencia): para la entrega de contenidos lo más cerca posible de los usuarios Más en: https:// infrastructure.aws/ © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Aplicaciones globales en AWS DNS global: Route 53 Genial para encaminar a los usuarios al despliegue más cercano con la menor latencia Excelente para las estrategias de recuperación de desastres Red global de entrega de contenidos (CDN): CloudFront Replica parte de tu aplicación a las ubicaciones edge de AWS - disminuye la latencia Almacena las solicitudes comunes - mejora la experiencia del usuario y disminuye la latencia S3 Transfer Acceleration: Acelera las cargas y descargas globales en Amazon S3 AWS Global Accelerator: Mejora la disponibilidad y el rendimiento de las aplicaciones globales utilizando la red global de AWS © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Visión general de Amazon Route 53 Route53 es un DNS gestionado (Sistema de Nombres de Dominio) El DNS es una colección de reglas y registros que ayuda a los clientes a entender cómo llegar a un servidor a través de las URL En AWS, los registros más comunes son www.google.com => 12.34.56.78 == Registro A (IPv4) www.google.com => 2001:0db8:85a3:0000:0000:8a2e:0370:7334 == AAAA IPv6 search.google.com => www.google.com == CNAME: nombre de host a nombre de host ejemplo.com => recurso AWS == Alias (ej: ELB, CloudFront, S3, RDS, etc...) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Route 53 - Diagrama para un registro e D NS d om l i ci tud i n. c So d oma a p p.m y 5. 67.85 P) my : 3 2.4 ost a I ve l a IP e de h uel br Route 53 Dev A: nom e g istro (R S ol i c it Hos ud HTT t: m P yapp IP:32..my 4 Navegador web dom 5.67.85 Resp ain. uest com a HT TP Servidor de aplicación IP: 32.45.67.85 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Políticas de enrutamiento de Amazon Route 53 Necesidad de conocerlas a alto nivel para el examen Cloud Practitioner SIMPLE ROUTING POLICY WEIGHTED ROUTING POLICY No hay controles de salud Weight foo.example.com 70% 70 A: 11.22.33.44 Weight 20% 20 Navegador web Route 53 Route 53 Weight 10% 10 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Políticas de enrutamiento de Route 53 LATENCY ROUTING POLICY FAILOVER ROUTING POLICY Recuperación de desastres Control de Primary la salud Route 53 Failover © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS CloudFront Red de entrega de contenidos (CDN) Mejora el rendimiento de lectura, el contenido se almacena en caché en edge location Mejora la experiencia de los usuarios +400 puntos de presencia a nivel mundial (ubicaciones edge) Protección DDoS, integración con Fuente: https://aws.amazon.com/cloudfront/features/?nc=sn&loc=2 Shield, AWS Web Application Firewall © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com CloudFront - Orígenes Bucket S3 Para distribuir archivos y almacenarlos en caché en el borde Seguridad mejorada con CloudFront Origin Access Control (OAC) OAC sustituye a Origin Access Identity (OAI) CloudFront puede utilizarse como entrada (para subir archivos a S3) Origen personalizado (HTTP) Application Load Balancer Instancia EC2 Sitio web S3 (primero debes habilitar el bucket como sitio web S3 estático) Cualquier backend HTTP que desees © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com CloudFront a alto nivel GET /beach.jpg?size=300x300 HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.example.com Accept-Encoding: gzip, deflate Origen Reenviar la solicitud a tu origen S3 CloudFront Edge Location o Cliente HTTP Caché local © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com CloudFront - S3 como origen Cloud de AWS www pública AWS Privado AWS Privado Edge Edge Los Angeles Mumbai AWS Privado AWS Privado Origen (bucket S3) www pública OAC Edge Edge São Paulo Melbourne Identidad de acceso al origen + Política de bucket S3 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com CloudFront vs S3 Cross Region Replication (CRR) CloudFront: Red Global Edge Los archivos se almacenan en caché durante un TTL (quizás un día) Es ideal para contenidos estáticos que deben estar disponibles en todas partes S3 Cross Region Replication (CRR): Debe configurarse para cada región en la que quieras que se produzca la replicación Los archivos se actualizan casi en tiempo real Sólo lectura Ideal para contenidos dinámicos que deben estar disponibles con baja latencia en pocas regiones © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com S3 Transfer Acceleration Aumenta la velocidad de transferencia transfiriendo el archivo a una ubicación edge de AWS que reenviará los datos al bucket de S3 en la región de destino Rápido Rápido (www pública) (AWS privado) Fichero en USA Edge Location Bucket S3 USA Australia Prueba la herramienta en: https://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Global Accelerator Mejora la disponibilidad y el rendimiento global de la aplicación América Europa utilizando la red global de AWS Aprovecha la red interna de AWS para Edge location optimizar la ruta hacia tu aplicación (60% de mejora) Se crean 2 IP Anycast para tu aplicación y el tráfico se envía a través AWS Privado de los puntos de presencia (Edge Locations) Australia India Las Edge Locations envían el tráfico a ALB público tu aplicación © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Global Accelerator Sin Global Accelerator Con Global Accelerator https://aws.amazon.com/global-accelerator © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Global Accelerator vs CloudFront Ambos utilizan la red global de AWS y sus ubicaciones de borde en todo el mundo Ambos servicios se integran con AWS Shield para la protección DDoS CloudFront - Red de entrega de contenidos (CDN) Mejora el rendimiento de tu contenido almacenable en caché (como imágenes y vídeos) El contenido se entrega en edge location Global Accelerator Sin almacenamiento en caché, proxy de paquetes en el borde a las aplicaciones que se ejecutan en una o más regiones de AWS. Mejora el rendimiento de una amplia gama de aplicaciones sobre TCP o UDP Bueno para casos de uso de HTTP que requieren direcciones IP estáticas Bueno para casos de uso de HTTP que requieran una conmutación por error regional determinista y rápida © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com https://speedtest.globalaccelerator.aws/#/ © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Outposts Cloud híbrido: empresas que mantienen una infraestructura local junto a una infraestructura en la nube Por lo tanto, hay dos formas de tratar con los sistemas de IT: Cloud Centro de datos AWS de la empresa Una para el Cloud de AWS (utilizando la consola de AWS, la CLI y las API de AWS) Servidores Una para su infraestructura on-premise locales Los AWS Outposts son "racks de servidores" que Racks ofrecen la misma infraestructura, servicios, API y Ampliación de herramientas de AWS para crear tus propias los servicios Outposts aplicaciones en las instalaciones al igual que en el Cloud de AWS AWS configurará y administrará los "racks Outposts" dentro de tu infraestructura local y podrás empezar a aprovechar los servicios de AWS en las instalaciones Eres responsable de la seguridad física del rack de Outposts © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Outposts Ventajas: Acceso de baja latencia a los sistemas locales Procesamiento local de datos Residencia de datos Migración más fácil de las instalaciones a el Cloud Servicio totalmente gestionado Algunos servicios que funcionan en Outposts: Amazon EC2 Amazon EBS Amazon S3 Amazon EKS Amazon ECS Amazon RDS Amazon EMR © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS WaveLength Las WaveLength Zones son despliegues de infraestructura Región incrustados en los centros de datos de los proveedores de telecomunicaciones de las redes 5G Zona de Zona de Lleva los servicios de AWS al límite de las redes 5G disponibilidad 1 disponibilidad 2 Ejemplo: EC2, EBS, VPC... Aplicaciones de latencia ultrabaja a través de las redes 5G El tráfico no sale de la red del proveedor de servicios de comunicación (CSP) Conexión segura y de gran ancho de banda con la región AWS Zona WaveLength matriz Sin cargos adicionales ni acuerdos de servicio Casos de uso: Ciudades inteligentes, diagnósticos asistidos por ML, Puerta de vehículos conectados, flujos de vídeo en directo interactivos, AR/VR, juegos en tiempo real,... enlace de la empresa Operador de telecomunicaciones Red 5G © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com AWS Local Zones Coloca la informática, el almacenamiento, la base Región us-east-1 de datos y otros servicios de AWS seleccionados más cerca de los usuarios Zona de disponibilidad 1 Zona de disponibilidad 2 finales para ejecutar aplicaciones sensibles VPC a la latencia Subred privada Subred privada Amplía tu VPC a más ubicaciones - "Extensión de una región de AWS" Compatible con EC2, RDS, ECS, EBS, ElastiCache, Direct Connect... Ejemplo: Región de AWS: N. Virginia (us-east-1) Local Zone (Boston) Subred privada AWS Local Zones: Boston, Chicago, Dallas, Houston, Miami, … © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Arquitectura global de aplicaciones Región única, AZ única Región única, AZ múltiple Alta disponibilidad Alta disponibilidad Latencia global Latencia global Dificultad Dificultad Región Región Zona de disponibilidad Zona de disponibilidad A Zona de disponibilidad B Instancia EC2 Instancia EC2 Instancia EC2 © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Arquitectura global de aplicaciones Multi Región, Activa-Pasiva Multi Región, Activa-Activa Usuarios Latencia de lectura Usuarios Latencia de lectura Latencia de las escrituras Latencia de las escrituras lectura/escritura Dificultad Dificultad lec lec lectura/escritura tu tu ra ra /e Región - A Región - B Región - A Región - B sc rit rau Zona de disponibilidad Zona de disponibilidad Zona de disponibilidad Zona de disponibilidad Instancia EC2 Instancia EC2 Instancia EC2 Instancia EC2 (Activa) (Pasiva) (Activa) (Activa) © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Resumen - Aplicaciones globales en AWS DNS global: Route 53 Genial para dirigir a los usuarios a la implementación más cercana con la menor latencia Excelente para las estrategias de recuperación de desastres Red global de entrega de contenidos (CDN): CloudFront Replica parte de tu aplicación a las ubicaciones de borde de AWS - disminuye la latencia Almacena las solicitudes comunes - mejora la experiencia del usuario y disminuye la latencia S3 Transfer Acceleration Acelera las cargas y descargas globales en Amazon S3 AWS Global Accelerator Mejora la disponibilidad y el rendimiento de la aplicación global utilizando la red global de AWS © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Resumen - Aplicaciones globales en AWS AWS Outposts Implementa racks Outposts en tus propios centros de datos para ampliar los servicios de AWS AWS WaveLength Lleva los servicios de AWS a edge location de las redes 5G Aplicaciones de latencia ultrabaja AWS Local Zones Acerca los recursos de AWS (computación, base de datos, almacenamiento,...) a tus usuarios Buenas para aplicaciones sensibles a la latencia © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Integración en el Cloud © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Introducción a la sección Cuando empezamos a desplegar varias aplicaciones, es inevitable que tengan que comunicarse entre sí Hay dos patrones de comunicación entre aplicaciones 1) Comunicaciones sincrónicas 2) Asíncrona / basada en eventos (de aplicación a aplicación) (de la aplicación a la cola a la aplicación) Servicio de Servicio de Servicio de Servicio de Cola compras envío compras envío © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Introducción a la sección La sincronización entre aplicaciones puede ser problemática si hay picos repentinos de tráfico ¿Qué pasa si de repente necesitas codificar 1000 vídeos, pero normalmente son 10? En ese caso, es mejor desacoplar tus aplicaciones: usando SQS: modelo de cola usando SNS: modelo pub/sub utilizando Kinesis: modelo de flujo de datos en tiempo real ¡Estos servicios pueden escalar independientemente de nuestra aplicación! © Stephane Maarek & Joan Amengual Amazon SQS – Simple Queue Service NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com ¿Qué es una cola? Consumidor Productor Consumidor Envía mensajes Productor Mensajes de encuesta Consumidor SQS Queue Productor Consumidor © Stephane Maarek & Joan Amengual NOT FOR DISTRIBUTION © Stephane Maarek & Joan Amengual www.blockstellart.com Amazon SQS – Cola estándar La oferta más antigua de AWS (más de 10 años) Servicio totalmente gestionado (~serverless), utilizado para desacoplar aplicaciones Escala desde 1 mensaje por segundo hasta 10.000 por segundo Retención de mensajes por defecto 4 días, máximo de 14 días No hay límite en el número de mensajes que puede haber en la cola Los mensajes se eliminan después de ser leídos por los consumidores Baja latencia (