Componentes clave de una arquitectura de alojamiento web de AWS - Alojamiento de aplicaciones web en la nube de AWS

Componentes clave de una arquitectura de alojamiento web de AWS

En las siguientes secciones, se describen algunos de los componentes clave de una arquitectura de alojamiento web implementada en la nube de AWS y se explica en qué se diferencian de una arquitectura de alojamiento web tradicional.

Administración de red

En la nube de AWS, la capacidad de separar su red de la de otros clientes permite que la arquitectura sea más segura y escalable. Aunque los grupos de seguridad proporcionan seguridad a nivel de host (consulte la sección Seguridad del host), Amazon Virtual Private Cloud (Amazon VPC) le permite lanzar recursos en una red virtual y aislada lógicamente que haya definido.

Amazon VPC es un servicio que le proporciona un control total sobre los detalles de su configuración de red en AWS. Entre los ejemplos de este control, se incluyen la creación de subredes públicas para servidores web y subredes privadas sin acceso a Internet para sus bases de datos. Además, Amazon VPC le permite crear arquitecturas híbridas mediante el uso de redes privadas virtuales (VPN) de hardware y utilizar la nube de AWS como una extensión de su propio centro de datos.

Amazon VPC también incluye compatibilidad con IPv6, además de la compatibilidad con IPv4 tradicional para su red.

Entrega de contenido

Cuando el tráfico web está disperso geográficamente, no siempre es factible, y desde luego no es rentable, replicar toda la infraestructura a nivel global. Una red de entrega de contenido (CDN) le ofrece la posibilidad de utilizar su red global de ubicaciones de borde para entregar a sus clientes una copia en caché de contenidos web como vídeos, páginas web, imágenes, etc. Para reducir el tiempo de respuesta, la CDN utiliza la ubicación de borde más cercana al cliente o a la ubicación de la solicitud de origen. El rendimiento se incrementa drásticamente dado que los recursos web se entregan desde la caché. Para los datos dinámicos, muchas CDN pueden configurarse para recuperar los datos de los servidores de origen.

Puede usar CloudFront para entregar su sitio web, lo que incluye contenido dinámico, estático y de streaming, mediante una red global de ubicaciones de borde. CloudFront dirige automáticamente las solicitudes de su contenido a la ubicación de borde más cercana para que el contenido se entregue con el mejor rendimiento posible. CloudFront está optimizado para funcionar con otros servicios de AWS, como Amazon S3 y Amazon Elastic Compute Cloud (Amazon EC2). CloudFront también funciona a la perfección con cualquier otro servidor de origen que no sea de AWS, que almacene las versiones originales y definitivas de sus archivos.

Al igual que en otros servicios de AWS, no hay contratos ni compromisos mensuales sobre el uso de CloudFront; solo paga por la cantidad de contenido que distribuya a través del servicio.

Además, cualquier solución existente para el almacenamiento en caché de borde en la infraestructura de aplicaciones web debería funcionar bien en la nube de AWS.

Administración del DNS público

Para trasladar una aplicación web a la nube de AWS, es necesario realizar algunos cambios en el sistema de nombres de dominio (DNS). Para ayudarlo a administrar el enrutamiento de DNS, AWS incluye Amazon Route 53, un servicio web de DNS en la nube escalable y de alta disponibilidad. Route 53 está diseñado para ofrecer a los desarrolladores y las empresas un método enormemente fiable y rentable para dirigir a los usuarios finales a las aplicaciones de Internet convirtiendo nombres como “www.ejemplo.com” en direcciones IP numéricas, como 192.0.2.1, que los equipos utilizan para conectarse entre sí. Route 53 también es completamente compatible con IPv6.

Seguridad del host

Además del filtrado del tráfico de red entrante en el borde, AWS también recomienda que las aplicaciones web filtren el tráfico de red a nivel de host. Amazon EC2 incluye una característica denominada grupos de seguridad. Un grupo de seguridad es algo parecido a un firewall de red entrante, que le permite especificar los protocolos, los puertos y los intervalos de IP de origen que pueden acceder a las instancias de EC2.

Puede asignar uno o más grupos de seguridad a cada instancia de EC2. Cada grupo de seguridad permite el tráfico adecuado en cada instancia. Los grupos de seguridad se pueden configurar de modo que solo las subredes, las direcciones IP y los recursos específicos tengan acceso a una instancia de EC2. Como alternativa, pueden hacer referencia a otros grupos de seguridad para limitar el acceso a las instancias de EC2 que se encuentran en grupos específicos.

En la arquitectura de alojamiento web de AWS de la figura 3, el grupo de seguridad para el clúster de servidores web podría permitir el acceso solo desde el equilibrador de carga de la capa web y solo a través de TCP en los puertos 80 y 443 (HTTP y HTTPS). Por otro lado, el grupo de seguridad del servidor de aplicaciones podría permitir el acceso solo desde el equilibrador de carga de la capa de aplicación. En este modelo, los ingenieros de soporte también necesitarían acceder a las instancias de EC2, lo que se puede realizar con AWS Systems Manager Session Manager. Para obtener un análisis más profundo sobre la seguridad, consulte Seguridad en la nube de AWS, que contiene boletines de seguridad, información sobre certificaciones y documentos técnicos de seguridad en los que se explican las capacidades de seguridad de AWS.

Equilibrio de carga en clústeres

Los equilibradores de carga de hardware son un dispositivo de red que suele utilizarse en las arquitecturas de aplicaciones web tradicionales. AWS proporciona esta capacidad a través del servicio Elastic Load Balancing (ELB). ELB distribuye automáticamente el tráfico de aplicaciones entrante entre varios destinos, como instancias de EC2, contenedores, direcciones IP, funciones AWS Lambda y dispositivos virtuales. Puede controlar la carga variable del tráfico de su aplicación en una única zona o en varias zonas de disponibilidad. Elastic Load Balancing ofrece cuatro tipos de equilibradores de carga que cuentan con el nivel necesario de alta disponibilidad, escalado automático y seguridad para que sus aplicaciones sean tolerantes a errores.

Búsqueda de otros hosts y servicios

En la arquitectura de alojamiento web tradicional, la mayoría de los hosts tienen direcciones IP estáticas. En la nube de AWS, la mayoría de los hosts tienen direcciones IP dinámicas. Aunque todas las instancias de EC2 pueden tener entradas de DNS tanto públicas como privadas y se pueden direccionar a través de Internet, las entradas de DNS y las direcciones IP se asignan de forma dinámica cuando se lanza la instancia. No se pueden asignar manualmente. Las direcciones IP estáticas (direcciones IP elásticas en la terminología de AWS) se pueden asignar a las instancias en ejecución después de su lanzamiento. Debe usar direcciones IP elásticas para instancias y servicios que requieran puntos de conexión constantes, como bases de datos principales, servidores de archivos centrales y equilibradores de carga alojados en EC2.

Almacenamiento en caché dentro de la aplicación web

Las cachés de aplicaciones en memoria pueden reducir la carga de los servicios y mejorar el rendimiento y la escalabilidad en el nivel de la base de datos al almacenar en caché la información de uso frecuente Amazon ElastiCache es un servicio web que facilita la implementación, el funcionamiento y el escalado de una caché en memoria en la nube. Puede configurar la caché en memoria que cree para que se escale automáticamente con la carga y que reemplace automáticamente los nodos que fallen. ElastiCache es compatible con los protocolos Memcached y Redis, lo que simplifica la migración desde su solución local actual.