1. Opciones de Compra
    1. Bajo demanda
      1. Paga, por segundo de encendido de instancias
      2. cargas de trabajos flexibles, irregulares
      3. sin compromiso a largo plazo
      4. Sin costo fijo y pago anticipado
    2. Spot
      1. Para cargas de trabajo no críticas y flexibles, tolerantes a fallos, desarrollo/pruebas, tiempo flexible, cargas de trabajo sin estado
      2. Nacen de la capacidad excedente (no utilizada)
      3. Discount up to 90%
    3. Instancias Reservadas
      1. Contratar instancia por un período de 1 o 3 años. Compromiso de pago,
      2. Uso comprometido en estado constante
      3. Tipos
        1. Estándar
          1. Descuento hasta 72%
          2. Se puede cambiar la zona de disponibilidad, el tamaño de la instancia
        2. Convertible
          1. Descuento hasta 66%
          2. Se puede cambiar familias de instancias, sistemas operativos o tenencias
    4. Planes de Ahorro
      1. Comprometerse a una cantidad constante de uso, en USD por hora, durante un período de 1 o 3 años
      2. Flexibilidad de cambios: Region, Size, Family, Tenancy, SO,
      3. Tipos
        1. EC2
          1. Solo para instancia EC2
        2. Compute
          1. Se puede combinar con otros servicios Serverless (Lambda), Container Services
    5. Instancias Dedicadas
      1. Pago por hora, por instancias que se ejecutan en hardware de un solo inquilino
    6. Host Dedicados
      1. Host físico que esté totalmente dedicado a ejecutar sus instancias y aplique sus licencias de software existentes por socket, por núcleo o por máquina virtual para reducir los costos
  2. Otros Servicios de Informática
    1. AWS Elastic Beanstalk
      1. Implementar y escalar servicios y aplicaciones web desarrollados con Java, .NET, PHP, Node.js, Python, Ruby, Go y Docker en servidores familiares como Apache, Nginx, Passenger e IIS.
      2. PAAS que maneja automáticamente: Infrastructure provisioning and configuration Deployment Load balancing Automatic scaling Health monitoring Analysis and debugging Logging
    2. AWS Lambda
      1. Servicio informático sin servidor/Serverless controlado por eventos. ejecutar código sin aprovisionar ni administrar servidores
      2. Precio por # innovación + duración ms & memoria consumida 128 MiB - 10 GiB de la ejecución del código
      3. Java, Go, PowerShell, Node.js, C#, Python y Ruby,
    3. Contenedores
      1. Método de virtualización del sistema operativo que permite ejecutar una aplicación y sus dependencias en procesos aislados de recursos
        1. Contienen todo lo que el software necesita para ejecutarse, como bibliotecas, herramientas del sistema, código y el tiempo de ejecución.
      2. Elastic Container Service ECS
      3. Elastic Kubernetes Service EKS
      4. Elastic Container Registry ECR
        1. Alojamiento de alto rendimiento de Imágenes de contenedores
      5. AWS Fargate
        1. Informática sin servidor para contenedores con ECS o EKS
      6. Casos de Usos
        1. Deploy microservices to speed innovation
        2. Batch processing
        3. Migrate legacy applications without requiring code changes
        4. Accelerate machine learning
    4. Amazon LightSail
      1. Aprovisionamiento de servidores privados virtuales, sin experiencia en programación y administración
      2. Imágenes con sistemas operativos base, stacks de desarrollo como LAMP, LEMP (Nginx) y SQL Server Express, y aplicaciones como WordPress, Drupal y Magento.
    5. AWS Batch
      1. Planifica, programa y ejecuta sus cargas de trabajo de informática por lotes en AWS Fargate, Amazon EC2 y las instancias de spot.
    6. AWS Outpost
      1. Extender recursos y servicios de AWS a las instalaciones locales (DC onpremisis)
      2. Servidores 1U y 2U, bastidores Rack 42U
  3. Escalabilidad
    1. Amazon EC2 Auto Scaling
      1. Agrega o elimina instancias EC2 según las condiciones que defina. Mantener el estado y la disponibilidad de la flota de EC2
      2. - Supervisar el estado de las instancias en ejecución, - Reemplazar instancias deterioradas automáticamente, - Equilibrar la capacidad en todas las zonas de disponibilidad
      3. instancias en varias zonas de disponibilidad, pero no en regiones de AWS.
      4. Tipos
        1. Calendarizadas
          1. El escalado basado en una programación le permite escalar su aplicación antes de los cambios de carga conocidos
        2. Dynamic
          1. Se define una alarma a través de una métrica y umbral (ejemplo CPU % utilización) para ajusta horizontalmente la capacidad deseada del grupo de EC2 cuando se activa la alarma
        3. Predictive
          1. Utiliza el aprendizaje automático para programar el número correcto de instancias EC2 en previsión de los cambios de tráfico que se aproximan.
    2. Elastic Load Balancer
      1. Distribuir el tráfico de red para mejorar la escalabilidad de las aplicaciones
      2. Tipos
        1. Application Load Balancer (ELB)
          1. Toma decisiones de enrutamiento en la capa de aplicación (HTTP/HTTPS/gRPC), Modelo OSI de capa 7
          2. Target: IP, Instance, Lambda
        2. Network Load Balancer (NLB)
          1. Toma decisiones de enrutamiento en la capa de transporte (TCP/UDP/SSL). Puede manejar millones de solicitudes por segundo. Modelo OSI de capa 4
          2. Targte types: IP, Instance, Application Load Balancer
        3. Gateway Load Balancer (GLB)
          1. Implementar y ejecutar dispositivos virtuales de terceros,
          2. Distribuir tráfico Puerta de enlace de capa 3 + Equilibrio de carga de capa 4
          3. Target: IP, Instance
  4. Tipo de Instancias
    1. Uso General
      1. combinación equilibrada de recursos informáticos, de memoria y de red
      2. Para distintas cargas de trabajo por cortos periodos
      3. Sitios y aplicaciones web, entornos de desarrollo, servidores de compilación, repositorios de código etc
    2. Optimizadas para Informática
      1. procesadores de alto rendimiento
      2. procesamiento por lotes, entrega de anuncios, codificación de video, videojuegos, creación de modelos científicos, análisis distribuido e inferencia de machine learning basado en CPU
    3. Optimizadas para Memoria
      1. rendimiento rápido para las cargas de trabajo que procesan grandes conjuntos de datos en la memoria
      2. Aplicaciones de memoria intensiva como bases de datos de código abierto, cachés en memoria, SAP
    4. Informática Acelerada
      1. Aceleradores de hardware, o co-procesadores, basadas en GPU
      2. Aprendizaje automático, informática de alto rendimiento, dinámica de fluidos computacional, finanzas computacionales, análisis sísmico, reconocimiento de voz, vehículos autónomos ETC
    5. Optimizadas para Almacenamiento
      1. Acceso de escritura y lectura secuencial alto a conjuntos de datos muy grandes en el almacenamiento local
      2. Bases de datos relacionales (p. ej., MySQL, MariaDB, PostgreSQL) y bases de datos que no son de SQL (KeyDB, ScyllaDB, Cassandra), Data Warehousing, Sistemas de archivos Distribuidos
    6. Nomenclatura
      1. Familia + Generación + Procesador.Tamaño ( vCPU, GiB Memoria, Red, Almacenamiento ) ejemplo: M6g.medium
      2. a – AMD processors
      3. g – AWS Graviton processors
      4. i – Intel processors
      5. d – Instance store volumes
      6. n – Network optimization
      7. b – Block storage optimization
      8. e – Extra storage or memory
      9. z – High frequency
  5. Servicios de Integración de Aplicaciones
    1. Reducir interdependencia Loose coupling Ayuda: Microservicios
    2. Simple Notification Service SNS
      1. Envío de Notificaciones o Mensaje entre compenentes de SW o Subcriptores, Tópicos, Publicadores
    3. Simple Queue Service SQS
      1. Manejo de Colas Mensajes
    4. API Gateway
      1. Crear Publicar, Gestionar, Monitorear API REST y websocket