Esenciales de AWS. Parte 1


Introducción

Amazon Web Services, también conocido como AWS, es una plataforma de infraestructura como servicio (IaaS) de una compañía subsidiaria de Amazon que vende servicios en la nube y que es actualmente el líder del mercado, con ventas que exceden los 200 billones de dólares. AWS es aún más grande que Azure de Microsoft, Google Cloud e IBM. Si optas por aprender AWS, las probabilidades de estar en grandes compañías se incrementan.


Con clientes alrededor del mundo el sitio, está disponible en más de 15 lenguajes y tiene la red mundial más grande. AWS ofrece 64 zonas en 21 regiones con un aproximado de 169 puntos de presencia. AWS tiene al menos tres veces menos horas de inactividad que otros proveedores de alojamiento en la nube.

En el portal de Marketplace de AWS puedes comprar software que se ejecuta en AWS, los desarrolladores pueden vender sus programas en este sitio también y los clientes se benefician de una gran cantidad de productos como sistemas operativos, Machine Learning y DevOps.


Explicación

Introducción a AWS 

Para los nuevos desarrolladores puede resultar fácil aprender a crear aplicaciones en AWS, ya que pueden elegir cualquier lenguaje de programación y herramientas conocidas.
Los lenguajes de programación que se pueden utilizar son Python, Java, JavaScript, C++, PHP, Node.js, Ruby, .NET y Go; por otra parte, algunas de las herramientas que se pueden utilizar son de línea de comandos, SDK de comunicación y colaboración, DevOps y automatización, IDE y conjuntos de herramientas IDE (entorno de desarrollo integrado), SDK (paquete de desarrollo de software) para dispositivos compatibles con IoT (Internet of Things), SDK para web front-end y dispositivos móviles, así como herramientas de monitoreo y rastreo.

Algunas de las herramientas que se pueden utilizar como línea de comandos y DevOps son las siguientes:

  • Línea de comandos: herramientas de PowerShell, CLI de AWS, CLI de Amazon ECS y AWS Copilot, entre otros.
  • DevOps y automatización: AWS code pipeline, AWS code build, AWS code deploy, AWS code commit, etcétera.

Los conceptos básicos de AWS son cinco pilares que describen los aspectos fundamentales del mismo y que provienen del marco de la buena arquitectura, que es una síntesis de más de una década de la creación de aplicaciones en la nube (Amazon, 2021).

Los cinco pilares de AWS son los siguientes (Amazon Web Services, 2021-a):

  1. Seguridad.
  2. Eficacia del rendimiento.
  3. Fiabilidad.
  4. Excelencia operativa.
  5. Optimización de costos.

El primer pilar, que es el de la seguridad, es el que se encarga de la infraestructura en la nube. Todos los temas que se derivan de la seguridad son responsabilidad del cliente y de AWS. Al compartir esta responsabilidad, tienes que tomar en cuenta la infraestructura física, el software y las capacidades de la red de los servicios en la nube de AWS, así como la seguridad de los usuarios que incluye la configuración correcta de los servicios, el software de aplicación y la administración de información confidencial.

En cuestiones de seguridad aplica el modelo zero trust, lo cual quiere decir que tienes que aplicar medidas de seguridad en todos los niveles del sistema y esto se divide en tres conceptos: gestión de identidades y accesos (IAM), cifrado de datos y seguridad en la red.

El segundo pilar, que se refiere a la eficacia del rendimiento, es en donde determinas cómo se pueden ejecutar los servicios de una manera escalable y eficiente en la nube, ya que la nube solo da los medios necesarios para administrar el tráfico. Los servicios se tienen que configurar con la proyección del escalamiento que consideres pertinente. Aquí utiliza el modelo en el cual tienes que ver a los servicios como ganado, no mascotas. Esto se debe a que comprar los servidores es caro y no solo eso, sino que las tareas de mantenimiento tienen un costo también, las configuraciones y la conexión física a los centros de datos puede tardar semanas y, debido a esto, los servidores son tratados como mascotas. En cambio, los servidores que están en la nube son considerados como ganado, ya que se pueden configurar en segundos.
La administración como ganado facilita el escalamiento de los servicios, ya que los servidores son fáciles y rápidos en su implementación. Si necesitas más capacidad, solo tienes que agregar más servidores logrando un mejor escalamiento.

Los conceptos más importantes en este pilar son dos: selección y escalado. El primero es la capacidad de poder elegir uno o más servicios, según la cantidad de trabajo que se vaya a realizar, y el segundo se refiere al aumento de instancias con límites superiores a la inicial.

La fiabilidad es el tercer pilar y se refiere a que los servicios, al ser creados, tienen que ser resistentes a las interrupciones en los servicios e infraestructura. Aquí es donde entra el término de radio alcance, que es el impacto máximo que se soportaría en caso de una falla. Entre menor sea el radio alcance, las fallas de los componentes serán menores.
Ya no se trata de si va a ocurrir alguna falla, sino de cuándo puede ocurrir, y para esto se utilizan dos técnicas para limitar el radio alcance:

  1. El aislamiento de errores: se utilizan componentes que son independientes y se separan en zonas; estas son divididas en tres niveles: recurso y solicitud, zona de disponibilidad y región.
  2. Los límites: son protecciones que se les aplican a los servicios por medio de restricciones para evitar las cargas excesivas como, por ejemplo, un ataque DoS (Denial of Service); a estos límites también se les conoce como cuotas de servicio.

La excelencia operativa, el cuarto pilar, se realiza por medio de la automatización, ya que se sabe que el error humano es la principal causa de las fallas y riesgos en las operaciones. Entonces, mientras se tengan más procesos automatizados, las fallas por el factor humano serán menores. Es importante mencionarte que al tener los procesos automatizados también disminuyen los trabajos manuales y repetitivos que te quitan mucho tiempo en las tareas diarias.

En este pilar se tienen dos conceptos de la excelencia operativa: infraestructura como código (IaC) y observabilidad.

  1. La IaC es la base para automatizar la infraestructura mediante archivos de configuración automática. Estos archivos son plantillas que contienen la descripción de los recursos necesarios para la automatización.
  2. La observabilidad mide el estado interno del sistema para detectar posibles fallas a la hora de la automatización.

Recuerda que lo que no se puede medir, no se puede mejorar; debes tomar medidas en torno a las métricas mediante el monitoreo, paneles, indicadores clave de rendimiento y del negocio.

El quinto pilar es la optimización de costos. En AWS, los gastos son operativos y no de capital, se paga por la capacidad que se utiliza, siendo los costos operativos menores y se puede revertir esta capacidad en caso de ser necesario. Por otro lado, los gastos tradicionales de las tecnologías de información en los data centers son muy costosos y se paga la capacidad por anticipado, sin tomar en cuenta si la capacidad será utilizada o no.

En este pilar se tienen dos conceptos:

  1. Pago de uso, en AWS solo se paga por lo que se va a utilizar.
  2. Optimización de costos del ciclo de vida, en el cual se realiza la mejora continua de los procesos a lo largo del tiempo para mejorar y optimizar los gastos en la nube.

La consola de administración AWS sirve para poder navegar a otras consolas de servicios individuales.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

En la barra de navegación solo tienes que seleccionar “Servicios” y esto desplegará toda la lista de los servicios disponibles.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

AWS CloudShell es un shell preautenticado basado en un navegador que puede iniciar directamente desde la consola de administración de AWS. Puede ejecutar comandos de la AWS CLI en servicios, utilizando shell Bash, PowerShell o Z.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Los cinco pilares que ofrece AWS son para el diseño y operación de los sistemas de la nube para que sean de bajo costo, seguros y eficientes. La guía de los pilares ofrece una serie de preguntas para la revisión de las arquitecturas propuestas, así como las mejores prácticas para resolver alguna contingencia que se llegue a presentar en algún pilar y, de esta manera, obtener arquitecturas eficientes y estables.

Administración de accesos en AWS utilizando usuarios (users), grupos (groups) y roles (roles)

Para facilitar la administración de identidades electrónicas se encuentra la tecnología para la administración de accesos e identidades (IAM). Esta tecnología se utiliza para registrar y administrar a los usuarios y los permisos de acceso de forma automática, así como los privilegios que se conceden, según los roles establecidos en la organización.

Con IAM de AWS puedes administrar a los usuarios y sus accesos a través de contraseñas y dispositivos de autenticación, administrar roles de IAM y sus permisos para que operaciones pueda llevar un control de los usuarios, según su rol y, por último, puede administrar a los usuarios federados y sus permisos. Esto quiere decir que les puede asignar el acceso a la consola de administración de AWS, usar las API y tener acceso a los recursos de usuarios ya existentes sin necesidad de crear un usuario para cada identidad.

Esta tecnología realiza el seguimiento y control de los accesos e identidades en el sistema. Los accesos tienen límites que son administrados por las políticas de IAM y cuentan con tres componentes: principios, acciones y recursos (Amazon Web Services, 2021-c).

  1. Principios: describen a quienes se les otorgan los permisos.
  2. Acciones: describen qué es lo que se debe realizar.
  3. Recursos: describen cuáles son las propiedades que se tienen que acceder.

Aplicar el modelo zero trust a IAM significa poner en práctica el principio de mínimo privilegio; este principio es cuando le otorgas una cuenta a un usuario con ciertos privilegios que son importantes para cumplir con su rol. Por ejemplo, una cuenta de usuario que solo tiene permitido crear copias de seguridad le darás privilegios solo para realizar copias de seguridad y cualquier aplicación que se necesite para crear dichas copias. También se aplica a usuarios de computadoras personales que tienen que estar protegidas por contraseñas. En resumen, cada usuario solo debe de contar solamente con los permisos mínimos para cumplir con su rol.

Las políticas que van asociadas a un recurso se les conoce como políticas basadas en recursos, y las que están asociadas a un principio se les llama políticas basadas en identidades.

  1. Políticas basadas en recursos: otorgan permisos para realizar acciones específicas en algún recurso y se define bajo qué condiciones se aplican. Estas políticas son un documento en que se dan los permisos que se adjuntan a los recursos y, por lo tanto, son en línea. No existen políticas administradas basadas en recursos. Las políticas que son más utilizadas en la cuestión de los recursos son las de las cubetas de Amazon S3, y en IAM se usan las políticas de confianza de roles.
  2. Políticas basadas en identidades: son documentos de políticas de permisos JSON que controlan las acciones que puede realizar una identidad (usuarios, grupos de usuarios y roles), en qué recursos y en qué condiciones. Las políticas basadas en identidad se pueden categorizar aún más:
    • Políticas administradas: políticas independientes basadas en identidad que puede adjuntar a varios usuarios, grupos y roles en su cuenta de AWS. Hay dos tipos de políticas administradas:
      1. Políticas administradas por AWS: políticas administradas que AWS crea y administra.
      2. Políticas administradas por el cliente: políticas administradas que crea y administra en la cuenta de AWS. Las políticas administradas por el cliente brindan un control más preciso sobre aquellas que las políticas administradas por AWS.

    • Políticas integradas: son políticas que agrega directamente a un solo usuario, grupo o rol. Las políticas en línea mantienen una relación estricta de uno a uno entre una política y una identidad. Se suprimen cuando se elimina la identidad.

Observa en esta imagen el servicio IAM en donde puedes crear grupos de usuarios, roles, políticas e identidades.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Para crear usuarios debes seleccionar el tipo de acceso de AWS, ya sea por acceso mediante la consola de administración o por programación. Después, debes establecer los permisos y las políticas para los usuarios y puedes realizarlo de tres maneras, mediante la creación de grupos, copiar los permisos de otros usuarios y, por último, agregar los permisos a cada usuario directamente. Cuando se termina este proceso es importante que descargues el archivo csv ya que la clave y contraseña solo se pueden ver una vez.

La configuración de roles permite que su servicio de AWS (EC2, Lambda, etc.) interactúe con otro. Permite que un servicio de AWS llame a otros servicios de AWS en su nombre. Es como asignar permisos a su usuario, aquí simplemente asigna permisos a un servicio de AWS.

IAM es universal, la cuenta raíz es simplemente la primera cuenta que se crea la primera vez que se registra en AWS. Los usuarios que se crean en la cuenta raíz no pueden tener accesos completos de administrador; los usuarios creados al inicio no cuentan con permisos. A los nuevos usuarios se les asignan Id de acceso y llave secreta de acceso, que no son lo mismo que una contraseña, ya que no se pueden usar para entrar a la consola de administración.

Servicios de cómputo

Amazon Elastic Compute Cloud (Amazon EC2) proporciona la capacidad informática que es escalable en la nube de AWS. El uso de este servicio EC2 elimina la necesidad de invertir en hardware por adelantado, por lo que se pueden desarrollar e implementar aplicaciones más rápido. Puede utilizar este servicio para iniciar tantos servidores virtuales como requieras, configurar la seguridad y la red, así como administrar el almacenamiento. Una de las ventajas de Amazon EC2 es que los recursos se pueden escalar para manejar de manera óptima los cambios y de esta manera disminuir la necesidad de proyectar el tráfico.

Amazon EC2 ofrece las siguientes funciones:

  • Instancias que son entornos informáticos virtuales.
  • Plantillas pre configuradas para las instancias, conocidas como Amazon Machine Images (AMI), que empaquetan los bits que necesita el servidor.
  • Configuraciones de CPU, memoria, almacenamiento y capacidad de red para las instancias, que son varios tipos de instancias.
  • Información de inicio de sesión asegurada para las instancias mediante pares de claves (AWS almacena la clave pública y el usuario guarda la clave privada).
  • Volúmenes de almacenamiento para datos temporales que se eliminan cuando detiene, hiberna o finaliza su instancia, conocidos como volúmenes de almacenamiento de instancias.
  • Volúmenes de almacenamiento persistentes de datos mediante Amazon Elastic Block Store (Amazon EBS), que son los volúmenes de Amazon EBS.
  • Cortafuegos que permiten la especificación de los rangos de las direcciones IP de origen, los puertos y protocolos que por medio de los grupos de seguridad puedan llegar correctamente a las instancias.
  • Direcciones IPv4 estáticas para computación en la nube dinámica, conocidas como direcciones IP elásticas.
  • Metadatos, que son etiquetas que se pueden crear y asignar a los recursos de Amazon EC2.
  • Redes virtuales con red propia y que están aisladas; a estas redes se les conoce como nubes privadas virtuales (VPC).

Para lanzar una instancia es necesario realizar los siguientes pasos:

Primero se tiene que crear un par de claves, ya que AWS encripta la clave pública para proteger los datos del inicio de sesión de las instancias. El par de claves necesitan tener un nombre al momento del lanzamiento de la instancia para después utilizar la clave privada para obtener la contraseña de administrador para la instancia, en este caso de Windows, para que se inicie la sesión usando RDP. El par de claves se pueden crear mediante la consola de Amazon EC2.

Para crear el par de claves primero tienes que ingresar a la consola de Amazon EC2. En el panel de navegación selecciona pares de claves y, por último, da clic en el botón de crear par de claves.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Al crear el nombre tienes que ingresar uno que sea descriptivo para el par de claves, ya que estas van asociadas, tanto la clave pública como la privada. El nombre puede tener hasta 255 caracteres en código ASCII, pero no puede tener espacios iniciales o finales.
Para el tipo de par de claves puedes elegir RSA o ED25519. Debes tener en cuenta que las claves ED25519 no son compatibles con instancias de Windows, EC2 Instance Connect o EC2 Serial Console.

Para el formato de archivo, de clave privada, selecciona el formato en el que quieres guardar la clave privada. Para guardar la clave privada, en un formato que pueda usarse con OpenSSH, selecciona pem. Para guardar la clave privada en un formato que puedas usar con PuTTY, selecciona ppk y, por último, nuevamente seleccione crear par de claves.
El navegador descarga automáticamente el archivo de clave privada. El nombre de archivo base es el nombre que especificaste como el nombre de su par de claves y la extensión del nombre de archivo está determinada por el formato de archivo que seleccionó; no hay que olvidar guardar el archivo de clave privada en un lugar seguro.

Ahora, tiene que crear un grupo de seguridad para que sirva de cortafuegos para las instancias asociadas y, de esta manera, puedas controlar el tráfico en la instancia. Tienes que agregar reglas que permitan conectarse a la instancia desde la dirección IP, HTTP O HTTPS.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Para crear un grupo de seguridad con privilegios mínimos hay que hacer lo siguiente en la consola de Amazon EC2:

  1. Selecciona una región para el grupo de seguridad. Estos son específicos de la región que se seleccione, entonces, tanto el par de llaves como el grupo de seguridad tienen que ser de la misma región.
  2. Selecciona grupos de seguridad y después haz clic en el botón de crear grupo de seguridad. Tienes que ingresar un nombre para el nuevo grupo de seguridad y una descripción. Se recomienda utilizar un nombre fácil de recordar como el nombre de usuario, seguido de _SG_, más el nombre de la región. Por ejemplo, lance_SG_uswest2. En la lista de VPC selecciona la VPC predeterminada para la región.

Para las reglas de entrada, crear reglas que permitan que un tráfico específico llegue a la instancia. Por ejemplo, puedes utilizar reglas para que un servidor web acepte tráfico HTTP y HTTPS.

  1. Selecciona agregar regla. En Tipo, escoge HTTP. En Fuente, selecciona En cualquier lugar.
  2. Selecciona agregar regla. En Tipo, escoge HTTPS. En Fuente, selecciona En cualquier lugar.
  3. Selecciona agregar regla. En Tipo, escoge RDP. En Fuente, tienes que realizar lo siguiente:
    1. Selecciona Mi IP para agregar automáticamente la dirección IPv4 pública de tu computadora local.
    2. Selecciona Personalizado y especifica la dirección IPv4 pública de tu computadora con la notación CIDR, y agrega el tamaño de la red con el sufijo de enrutamiento. Por ejemplo, 198.162.10.5 / 32. Si la empresa o el enrutador proporciona direcciones de un rango especifica el rango completo, como 203.0.113.0/24.

Para las reglas de salida:

  1. Mantén la regla predeterminada que permite todo el tráfico de salida.
  2. Selecciona Crear grupo de seguridad.

Ya que cuentas con el par de claves y el grupo de seguridad, ya puedes proceder a crear la instancia y, por medio de EC2, configurar el sistema operativo que se va a utilizar, ya sea Windows o Linux y, por último, las aplicaciones de la instancia. Para este caso vas a lanzar, conectar y usar una instancia con el sistema operativo de Windows.

Para iniciar una instancia de Windows por medio de la Consola de administración de AWS, será como se describe en el siguiente procedimiento. Cabe aclarar que no se cubrirán todas las opciones posibles.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Desde el panel de la consola, seleccionar Lanzar instancias.
Ahora se tiene que seleccionar una imagen de máquina de Amazon (AMI), muestra una lista de configuraciones básicas, llamadas Imágenes de máquina de Amazon (AMI), que sirven como plantillas para la instancia. Se selecciona la AMI para Windows Server 2019 Base o posterior. Se considera que estas AMI están marcadas como "elegibles para el nivel gratuito".

Ahora se tiene que seleccionar Elegir tipo de instancia, en donde se puede seleccionar la configuración de hardware de la instancia. Aquí se seleccionará el tipo de instancia t2.micro, que está seleccionado de forma predeterminada. El tipo de instancia t2.micro es elegible para el nivel gratuito. En las regiones donde t2.micro no está disponible se puede usar una instancia de t3.micro en el nivel gratuito.

En el apartado Elegir tipo de instancia, se selecciona Revisar y lanzar para permitir que el asistente complete los demás ajustes de configuración. En el apartado de Revisar lanzamiento de instancia, en Grupos de seguridad se puede utilizar el grupo de seguridad que crea el asistente o puede seleccionar el grupo de seguridad que se creó al realizar la configuración realizando lo siguiente:

  1. Seleccionar Editar grupos de seguridad, en el apartado Configurar grupo de seguridad se tiene que seleccionar un grupo de seguridad existente.
  2. Seleccionar Revisar y lanzar.
  3. Seleccionar lanzar en el apartado de Revisar lanzamiento de instancia y ahora se tiene que seleccionar Elegir par de claves existente, las cuales son las que se crearon anteriormente. No se debe de continuar con el proceso sin las claves, ya que al lanzar la instancia no se podrá conectar.

Ahora ya está listo, solo falta seleccionar la casilla de verificación de reconocimiento y luego elegir Lanzar instancia. La instancia va a tardar unos minutos en estar en línea.

Ahora se procederá a la conexión con la instancia de Windows; para esto se necesita la contraseña de administrador inicial y luego ingresar esta contraseña cuando se conecte a su instancia mediante Escritorio remoto. Pasan unos minutos después del lanzamiento de la instancia antes de que esta contraseña esté disponible.

En el panel de navegación de la consola de EC2, seleccionar Instancias, elegir la instancia y luego Conectar. En el apartado Conectarse a la instancia, seleccionar la pestaña del cliente RDP y luego elegir Obtener contraseña, después Examinar y se tiene que navegar hasta el archivo de clave privada (.pem) que se creó cuando se lanzó la instancia. Seleccionar el archivo y después Abrir para copiar todo el contenido del archivo en la ventana.

Ahora se tiene que seleccionar Descifrar contraseña. La consola muestra la contraseña de administrador predeterminada para la instancia en Contraseña, reemplazando el enlace Obtener contraseña que se mostró anteriormente. Guardar la contraseña en un lugar seguro. Esta contraseña es necesaria para conectarse a la instancia.

Se tiene que seleccionar Descargar archivo de escritorio remoto. El navegador solicitará que abra o guarde el archivo de acceso directo RDP. Cuando se termine de descargar el archivo, seleccionar Cancelar para volver al apartado de Instancias. Ya solo se tiene que abrir el archivo RDP para la Conexión a escritorio remoto. La cuenta de administrador se elige de forma predeterminada. Se tiene que copiar y pegar la contraseña que se guardó anteriormente.

Si se está utilizando Conexión a Escritorio remoto en una computadora con Windows, se tiene que seleccionar Ver certificado, después seleccionar la pestaña Detalles y se tiene que desplazar hacia abajo hasta Huella digital (Windows). Este es el identificador único del certificado de seguridad de la computadora remota.

En la consola de Amazon EC2, seleccione la instancia, después Acciones, Supervisar y solucionar problemas y, por último, obtener registro del sistema.

En la salida del registro del sistema se tiene que buscar RDPCERTIFICATE-THUMBPRINT. Si este valor coincide con la huella digital o la huella digital del certificado, ya se ha verificado la identidad de la computadora remota. Ahora hay que regresar al cuadro de diálogo del Certificado y seleccionar Aceptar.

Estos procedimientos son para crear cualquier tipo de instancia y con la práctica se podrán optimizar los recursos, así como los costos de infraestructura, con EC2 se pueden crear diferentes tipos de instancias con diferentes opciones como la memoria del CPU, almacenamiento y capacidad de la red que se necesitan para ejecutar las aplicaciones.

Por otra parte, Bootstrap es una estructura desarrollada por Twitter en el año 2010 (Rock Contente, 2020). Utiliza CCS en aplicaciones front-end para desarrollar aplicaciones en cualquier dispositivo; su principal objetivo es que la construcción de sitios web responsivos. El framework usa, además, Java script.

Las funcionalidades son las siguientes:

  • Diseño responsivo.
  • Biblioteca de componentes amplia.
  • Sistema de navegación sensible.
  • Usa diferentes lenguajes de programación.

Bootstrap puede descargarse como npm, desde Node.js, con RubyGems, Composer o Nuget, y usarse para crear un sitio web en WordPress, Ruby on Rails, Asp.Net, etc. Bootstrap sigue el concepto de mobile first, primero que funcione en dispositivos móviles y después en la versión desktop.

Para usarlo debes vincular la clase al elemento en el que quieres aplicar el recurso, su uso elimina escribir muchas líneas de código y ayuda a reducir el tamaño de los archivos.

Para terminar, Bootstrap es una estructura ideal para el desarrollo de aplicaciones front-end receptivas y cuenta con numerosos componentes que elevan el estándar visual a las páginas.

Balanceo de cargas, elasticidad y escalabilidad

Un balanceador de cargas elástico es el que se encarga de distribuir automáticamente el tráfico entrante a través de varios destinos, como instancias EC2, contenedores y direcciones IP, en una o más regiones de disponibilidad; también enruta y supervisa el estado de los objetivos registrados y que están en buen estado. El balanceador escala la carga a medida que su tráfico entrante cambia con el tiempo.


El balanceador de carga admite los siguientes equilibradores de carga: balanceadores de carga de aplicación, de red, de puerta de enlace y clásicos. Se puede seleccionar el tipo de balanceador de carga que mejor se adapte a las necesidades, según el tráfico proyectado.

Balanceador de carga de aplicación: se encarga del equilibrio de carga del tráfico de HTTP y HTTPS, trabaja en la capa 7 del modelo OSI, enrutando el tráfico a las instancias, contenedores, direcciones IP y funciones Lambda, según el contenido de la solicitud. También simplifica y mejora la seguridad de las aplicaciones mediante los cifrados SSL/TLS.

¿Cómo funcionan (Amazon Web Services, 2021-b)?

  1. El cliente realiza una solicitud a la aplicación.
  2. Los receptores del balanceador de carga reciben la solicitud que coincide con el protocolo y el puerto que se configuró.
  3. El receptor evalúa la solicitud entrante, según las reglas que están especificadas, y enruta la solicitud al grupo de destino adecuado. Se puede utilizar un receptor HTTPS para descargar el trabajo del cifrado y descifrado del TLS al balanceador de carga.
  4. Si el destino es el correcto, uno o más grupos reciben tráfico, según el algoritmo del balanceador de carga y las reglas de enrutamiento que se especificaron para el receptor.

Balanceador de carga de red: se encarga del equilibrio de carga del tráfico del protocolo de control de transmisión (TCP), así como del protocolo de datagramas de usuario (UDP) y la seguridad de la capa de transporte (TLS) en donde se requiere un buen rendimiento, ya que este balanceador recibe millones de solicitudes por segundo y, al mismo tiempo, tiene latencias muy bajas.

¿Cómo funcionan?

  1. El cliente realiza una solicitud a la aplicación.
  2. El balanceador de carga recibe la solicitud directamente o a través de un punto final para la conectividad privada (a través de AWS PrivateEnlace).
  3. Los receptores del balanceador de carga reciben solicitudes de puerto y protocolo, enrutan estas solicitudes, según la acción predeterminada que se especificaron. Puede utilizar un receptor TLS para descargar el trabajo de cifrado y descifrado al balanceador de carga.
  4. Los objetivos de uno o más grupos objetivo reciben el tráfico, de acuerdo con el algoritmo de flujo hash.

Balanceador de carga de puerta de enlace: se encarga de facilitar la ejecución y el escalado de los dispositivos de redes virtuales de terceros, es transparente para el origen y destino del tráfico y, debido a la capacidad de carga y escalado automático, lo hace el más adecuado para trabajar con los dispositivos de terceros para la seguridad y análisis de la red.

¿Cómo funcionan?

  1. El cliente realiza una solicitud a la aplicación.
  2. El balanceador de carga recibe la solicitud según las configuraciones de la tabla de enrutamiento que se establecen en el VPC, puerta de enlace de Internet o puerto de enlace de tráfico.
  3. El balanceador de carga enruta las solicitudes a un grupo objetivo que consiste en una flota escalable de dispositivos (por ejemplo, firewalls, sistemas de inspección profunda de paquetes, sistemas de filtrado de URL, etc.) para procesar los flujos de tráfico.
  4. El dispositivo virtual procesa el tráfico y lo reenvía al balanceador de carga o descarta el tráfico, según la configuración. Este tipo de balanceador de carga actúa como un supervisor entre el origen y el destino.
  5. El balanceador de carga reenvía el tráfico al destino.

Balanceador de carga clásico: se encarga del balanceo básico de las instancias y funciona en los niveles de conexión y solicitud; este balanceador está diseñado para las aplicaciones creadas en el entorno EC2 clásico.

¿Cómo funcionan?

  1. El cliente realiza una solicitud a la aplicación.
  2. Los receptores del balanceador de carga reciben la solicitud que coincide con el protocolo y el puerto que se configuró.
  3. El receptor envía solicitudes a instancias registradas que están en buen estado, según las comprobaciones de estado que configuraron. Los receptores de TCP aplican el enrutamiento por turnos, mientras que los receptores de HTTP / HTTPS aplican el algoritmo de solicitudes que sean menos pendientes. Se puede agregar o eliminar instancias del balanceador de carga, según sea necesario, sin interrumpir el flujo general de solicitudes a la aplicación.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Los balanceadores de carga interactúan con Amazon Virtual Private Cloud (VPC), lo cual proporciona la seguridad necesaria en la autenticación de usuarios, el descifrado SSL/TLS e incluye la administración de certificados. Esto agrega una protección antes de que algún ataque llegue a las aplicaciones.

Estos balanceadores son parte de AWS y no se requieren otros balanceadores externos de servidores globales. Este servicio es completamente administrable, por lo cual pueden entregarse las aplicaciones sin la necesidad de tener flotas de balanceadores. También permiten monitorear el rendimiento, así como el estado de las aplicaciones en tiempo real por medio de métricas y registros de Amazon CloudWatch, lo que permite detectar fallas y cuellos de botella en el rendimiento de las aplicaciones y así se puede cumplir con los acuerdos de nivel de servicio (SLA) de las aplicaciones.

Un grupo auto escalable es aquel que contiene múltiples instancias de EC2 y son una agrupación lógica de administración automática y escalado. También se puede utilizar las funciones de auto escalamiento de Amazon EC2 con sus respectivas políticas y verificaciones de estado. El servicio de auto escalamiento de EC2 se encarga de dar mantenimiento a las instancias de un grupo, así como el escalado automático. Este último beneficia a los costos, ya que la capacidad de las instancias se resuelve de manera automática. En pocas palabras, no se pagaría por recursos que no se están utilizando.
El grupo auto escalable se empieza lanzando instancias hasta alcanzar la capacidad deseada. Para mantener a las instancias, se realizan unas verificaciones de estado periódicas en las instancias del grupo. Aun y si alguna de las instancias muestra fallos o no está en buen estado, se continúa manteniendo la misma cantidad de instancias. Si una instancia no está en buen estado, el grupo finaliza la instancia en mal estado y lanza otra instancia para reemplazarla.

Se pueden configurar políticas de escalado para aumentar o disminuir las instancias del grupo de manera dinámica para cumplir con ciertas condiciones que pueden ir cambiando. Al estar funcionando el grupo con políticas, se ajustan las capacidades de este, según el rango de los valores de capacidad máxima-mínima que se especifiquen; asimismo, lanza o termina las instancias y puede escalar con un horario específico.

Al momento de lanzar instancias, si estas se encuentran en varias zonas, la capacidad de las instancias se distribuye entre esas zonas. Si se realiza un escalamiento, el auto escalamiento de Amazon EC2 mantendrá el equilibrio de manera automática en todas las zonas especificadas.

Se recomienda que, al empezar a crear grupos de auto escalamiento, se utilice una plantilla de lanzamiento para crear el grupo de auto escalamiento en el cual todos los atributos de las instancias sean los mismos (par de claves, grupo de seguridad, AMI, dispositivos de bloque, tipo de instancia, datos de usuario, monitoreo de instancia EC2, perfil de la instancia, kernel, ramdisk y tenencia de la instancia).

En la actualidad, las empresas necesitan desarrollar aplicaciones más rápido que nunca, mediante la arquitectura modular y automatización en los procesos de los desarrolladores. Los balanceadores de carga elásticos son adaptables en las aplicaciones modernas y a los cambios, sin que los clientes intervengan. También tienen soporte para los contenedores por medio de Kubernetes y esto logra balancear la carga entre las aplicaciones y los clientes, así como la colaboración mediante las comunicaciones de los servicios.

Monitoreo, alertas y notificaciones

Amazon CloudWatch es un servicio para observar y monitorear muy utilizado en DevOps por los desarrolladores y administradores de tecnologías de información. Este servicio ofrece información procesable para monitorear el rendimiento de las aplicaciones, por cuestiones de cambios, que lleguen a afectar el sistema y, de esta manera, se puede optimizar el uso de recursos y visualizar el estado de las operaciones.


CloudWatch recoge datos del monitoreo y operaciones en formato de registros, métricas y eventos; esto permite tener una visualización de todos los recursos. Se puede usar el servicio para detectar fallas o errores en los entornos, configurar alarmas, comparar registros y métricas, así como realizar acciones automatizadas que ayudan a mantener el sistema en buen estado.

Beneficios de Amazon CloudWatch

  • Observar la infraestructura y las aplicaciones en la misma plataforma.
  • Recopilar métricas en AWS o de manera local.
  • Mejorar en la optimización de recursos, así como en el desempeño de las operaciones.
  • Visibilidad en datos operativos.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Las bitácoras de CloudWatch se utilizan para monitorear, almacenar y acceder a los archivos de registro desde las instancias de Amazon EC2, AWS CloudTrail, Route 53 y otras fuentes.
Estas bitácoras centralizan los registros de todos los sistemas, servicios y aplicaciones que estén en uso; es un servicio altamente escalable y permite ver todos los registros independientemente del origen. Las bitácoras tienen un flujo consistente de eventos por tiempo y se pueden consultar o agrupar por campos específicos, así como consultar y visualizar los datos de los registros en los paneles y crear cálculos personalizados.

Características de las bitácoras de CloudWatch:

  • Supervisa los registros de las instancias de Amazon EC2.
  • Supervisa los eventos que se registran en AWS CloudTrail.
  • Consulta y archiva los datos de los registros.
  • Retiene los registros.
  • Registra las consultas de DNS de Route 53.

Los siguientes servicios son usados en conjunto con las bitácoras de CloudWatch:

  • AWS CloudTrail.
  • AWS Administración de Accesos e Identidades (IAM).
  • Flujos de datos de Amazon Kinesis.
  • AWS Lambda.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Los eventos de Amazon CloudWatch muestran un flujo de eventos casi en tiempo real del sistema en el cual se describen los cambios operativos a medida que ocurren en los recursos utilizados en AWS y se realizan las correcciones necesarias, enviando notificaciones y ejecutando funciones. Las reglas de configuración son simples, pueden enrutar funciones o flujos de destino, así como hacer coincidir los eventos.

Se pueden configurar los siguientes servicios de AWS como destinos para los eventos de CloudWatch:

  • Instancias de Amazon EC2.
  • Funciones Lambda AWS.
  • Flujo de datos de Amazon Kinesis.
  • Flujo de entrega en Amazon Kinesis Firehose.
  • Grupos de registros bitácoras de Amazon CloudWatch.
  • Tareas de Amazon ECS.
  • Automatización del administrador de tareas.
  • Canalizaciones en CodePipeline.
  • Proyectos de CodeBuild.
  • Plantillas de evaluación del inspector de Amazon.

Un evento indica un cambio en el entorno de AWS. Los recursos generan eventos en cualquier cambio de estado, por ejemplo, cuando cambia el estado de una instancia en EC2 o se produce algún escalamiento se generan eventos; AWS CloudTrail publica esos eventos cuando se realizan llamadas al API. Los eventos también se pueden personalizar a nivel de aplicación y los publica en los eventos de CloudWatch; además se pueden configurar los eventos para automatizarlos y que se creen periódicamente.

Las reglas enrutan los eventos que se generan para procesar a los objetivos. Una regla puede direccionarse a diferentes objetivos y estos se procesan al mismo tiempo; los destinos de una regla tienen que estar en la misma región que la regla.

Los objetivos procesan los eventos; un objetivo recibe los eventos en JSON.

AWS CloudTrail es un servicio de AWS que habilita el gobierno, la auditoría y su cumplimiento operativo y de riesgos de la cuenta AWS. Todas las acciones que realizan un servicio o un usuario queda registrada como eventos en CloudTrail. Al hablar de acciones se hace referencia a las actividades realizadas en la interfaz de línea de comandos de AWS, la Consola de administración de AWS, las API y los SDK de AWS.

Al observar las actividades que se realizan en la cuenta de AWS ayudan a mejorar las prácticas operativas y de seguridad. Con CloudTrail se puede archivar, buscar, descargar, analizar y contestar a las actividades realizadas en la infraestructura de AWS. Puedes identificar las acciones de los usuarios, en qué recursos actuó, cuándo ocurrió algún evento y muchos otros detalles para analizar y responder a las actividades de la cuenta de AWS.

Al momento de crear la cuenta en AWS CloudTrail se habilita y empieza a registrar las actividades en un evento. Estos se pueden visualizar fácilmente en la consola de CloudTrail en el apartado del Historial de eventos. Este historial se puede ver, descargar o buscar en los últimos 90 días de actividad en la cuenta; también se pueden crear rutas para archivar, analizar y responder a los cambios realizados en algún recurso de AWS. Estas rutas son configuradas de tal manera que permiten las entregas de eventos a una cubeta (bucket) de Amazon S3 que se especifique, asimismo con las bitácoras y eventos de Amazon CloudWatch.

Se pueden crear dos tipos de caminos con CloudTrail:

  • El camino que se aplica a todas las regiones: en este camino se registran los eventos en cada región y entrega los archivos de eventos a una cubeta específica de S3. Si se agrega una región después del enrutamiento a todas las regiones, la nueva región se agrega automáticamente y se registran los eventos en esa región. Esta es una práctica recomendada, ya que se capturan todas las actividades en todas las regiones. Es la opción cuando se crea una ruta en la consola de CloudTrail.
  • El camino que se aplica a una sola región: cuando el enrutamiento se aplica a una sola región se registran los eventos en esa región, y después esos archivos de evento se entregan a una cubeta específica de Amazon S3. Solo se puede crear una ruta en una sola región utilizando AWS CLI. Si se crean caminos adicionales, estos mandan los archivos de registro de eventos a la misma cubeta o a cubetas separadas. Esta opción es predeterminada cuando se crea un rastro con AWS CLI o la API de CloudTrail.

Las bitácoras de flujo de VPC (virtual private cloud) es una función que captura información del tráfico de IP que se dirige hacia y desde las interfaces de red en el VPC. Los datos del registro de flujo se pueden publicar en las bitácoras de CloudWatch o Amazon S3. Una vez que se crea un registro de flujo se puede recuperar y ver los datos en el destino seleccionado.

Las bitácoras de flujo ayudan con una serie de actividades como estas:

  • Diagnóstico de reglas de grupo de seguridad demasiado restrictivas.
  • Monitoreo del tráfico que llega a la instancia.
  • Determinar la dirección del tráfico hacia y desde las interfaces de red.

Los datos de las bitácoras de flujo se recopilan fuera de la ruta del tráfico de su red, de esta manera no afectan el rendimiento ni la latencia de la red, así se crean o eliminan los registros de flujo sin riesgo de impacto en el rendimiento de la red.

Se puede crear una bitácora de flujo para una VPC, una subred o una interfaz de red. Si se crea una bitácora de flujo para una subred o VPC se supervisa cada interfaz de red en esa subred o VPC. Los datos de la bitácora de flujo para una interfaz de red supervisada se registran en la bitácora de registro de flujo, que son eventos de registro que tienen campos que describen el flujo de tráfico.

Para crear una bitácora de flujo se tiene que especificar lo siguiente:

  • El recurso para el que se va a crear la bitácora de flujo.
  • El tipo de tráfico que se va a capturar (tráfico aceptado, tráfico rechazado o todo el tráfico).
  • Los destinos en los que se desea publicar los datos de la bitácora de flujo.

Se pueden crear bitácoras de flujo para las interfaces de red que crean otros servicios de AWS como los siguientes:
Equilibrio de carga elástica:

  • Amazon RDS.
  • Amazon ElastiCache.
  • Amazon Redshift.
  • Amazon WorkSpaces.
  • Puertas de enlace NAT.
  • Pasarelas de tránsito.

Independientemente del tipo de interfaz de red, debes utilizar la consola de Amazon EC2 o la API de Amazon EC2 para crear una bitácora de flujo para una interfaz de red.

Hay dos objetivos por la cual debes de realizar un monitoreo de los sistemas en las organizaciones y es para lograr conciencia de la situación y de esta manera proporcionar respuestas oportunas y efectivas y para obtener conocimientos para el negocio, el desarrollo y las operaciones que permitan cursos de acción que ayuden a la mejora continua de los procesos.


Cierre

Organizaciones de diferentes giros, tamaños y sectores utilizan la nube para diferentes tareas como el desarrollo de aplicaciones web, Big Data, almacenamiento de datos, pruebas funcionales de software y recuperación de datos en caso de algún desastre. Por ejemplo, las empresas del sector salud desarrollan tratamientos para los pacientes; muchas organizaciones del sector financiero usan la nube con herramientas de seguridad para la detección temprana de fraudes en tiempo real y, de esta manera, prevenirlos.

AWS es una plataforma con múltiples servicios que ayudan a crear una infraestructura sólida para cumplir con todas las actividades ya mencionadas y, de esta manera, implementar servicios tecnológicos en cuestión de minutos y que las empresas puedan marcar una diferencia en las experiencias de los clientes y mejoren la transformación de los negocios.


Checkpoint

Asegúrate de:

  • Aplicar correctamente el procedimiento para la creación de instancias en Amazon EC2.
  • Aplicar los tipos de servicios de AWS para comprender los procesos de creación, automatización y monitoreo de recursos.
  • Implementar los diferentes tipos de balanceadores de cargas de AWS para conocer las diferencias y ventajas de cada uno.
  • Usar las funciones de la consola de administración de AWS para conocer los diferentes servicios que se pueden utilizar para la creación de instancias, redes, comunicaciones, seguridad, base de datos y almacenaje.

Bibliografía

  • Amazon Web Services. (2021-a). Aspectos fundamentales de AWS. Recuperado de https://aws.amazon.com/es/getting-started/fundamentals-core-concepts/?e=gs2020&p=fundoverview
  • Amazon Web Services. (2021-b). Introducción a Elastic Load Balancing. Recuperado de https://aws.amazon.com/es/elasticloadbalancing/getting-started/?nc=sn&loc=4
  • Amazon Web Services. (2021-c). AWS Identity and Access Management (IAM). Recuperado de https://aws.amazon.com/es/iam/
  • Rock Content. (2020). Bootstrap: guía para principiantes de qué es, por qué y cómo usarlo. Recuperado de https://rockcontent.com/es/blog/bootstrap/

La obra presentada es propiedad de ENSEÑANZA E INVESTIGACIÓN SUPERIOR A.C. (UNIVERSIDAD TECMILENIO), protegida por la Ley Federal de Derecho de Autor; la alteración o deformación de una obra, así como su reproducción, exhibición o ejecución pública sin el consentimiento de su autor y titular de los derechos correspondientes es constitutivo de un delito tipificado en la Ley Federal de Derechos de Autor, así como en las Leyes Internacionales de Derecho de Autor.

El uso de imágenes, fragmentos de videos, fragmentos de eventos culturales, programas y demás material que sea objeto de protección de los derechos de autor, es exclusivamente para fines educativos e informativos, y cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por UNIVERSIDAD TECMILENIO.

Queda prohibido copiar, reproducir, distribuir, publicar, transmitir, difundir, o en cualquier modo explotar cualquier parte de esta obra sin la autorización previa por escrito de UNIVERSIDAD TECMILENIO. Sin embargo, usted podrá bajar material a su computadora personal para uso exclusivamente personal o educacional y no comercial limitado a una copia por página. No se podrá remover o alterar de la copia ninguna leyenda de Derechos de Autor o la que manifieste la autoría del material.