Infraestructura de alta disponibilidad en la nube de Amazon AWS
Escrito por Ángel Lafuente Echeazarra el lunes 14 mayo 2012 a las 16:26 :: Link permanente :: rss
Desde principios de año estamos implantando una infraestructura IaaS para uno de nuestros cliente en Amazon web Services (AWS). La segunda fase del proyecto tenía como objetivo lograr un servicio de alta disponibilidad.
El cliente planteó las siguientes necesidades y retos:
- Externalización del área de sistemas. El cliente quería centrarse en el desarrollo de su servicio despreocupándose de todos los aspectos de infraestructura (hardware, software y comunicaciones) y su gestión.
- Sin inversiones. El cliente no desea realizar una fuerte inversión hardware en el inicio del proyecto.
- El servicio desarrollado se concibe como SaaS y por lo tanto debe ser accesible por Internet.
- La alta disponibilidad, resistencia ante fallos, y la seguridad son primordiales.
- Se necesita un entorno flexible y escalable donde poder desarrollar y crecer rápidamente en caso de éxito.
- Tecnología Microsoft. Los pilares del servicio son el sistema operativo Windows, el servidor de aplicaciones IIS, la base de datos SQL Server y el lenguaje .NET.
- Autonomía. El cliente debe ser independiente en las operaciones de gestión de la infraestructura creada.
- Planes de contingencia y de seguridad.
PRIMERA FASE: INFRAESTRUCTURA BÁSICA EN AWS
Tras la evaluación inicial, en la que se eligió AWS como proveedor de IaaS, se implantaron (en la cuenta del cliente de AWS) una red privada propia (Virtual Private Cloud - VPC) con acceso vía VPN, un Directorio Activo y AMIs personalizadas de SQL Server e IIS.
SEGUNDA FASE: ALTA DISPONIBILIDAD
En esta segunda fase se ha implementado la siguiente arquitectura, cuyas características explicamos a continuación.
![]()
Reparto de carga y alta disponibilidad
El reparto de carga se consigue mediante la función Elastic Load Balancer de EC2. Para que el servicio sea accesible desde Internet, el balanceador dispone de una IP pública. Salvo el balanceador, toda la infraestructura se encuentra en una red aislada con direccionamiento privado (VPC). De esta manera el cliente dispone de un CPD virtual y privado en la nube de AWS.
Hay servidores de base de datos e IIS en distintas zonas de disponibilidad (diferentes centros de datos de AWS en Irlanda) configurados para una rápida recuperación en caso de fallo. El balanceador reparte la carga del servicio entre los servidores IIS de ambas zonas. Una base de datos SQL secundaria se sincroniza cada 15 minutos con la primaria para actuar como base de datos del servicio en caso de fallo. La base de datos secundaria puede utilizarse para la extracción de informes y estadísticas del servicio sin afectar al servicio.
Seguridad
El balanceador de AWS es el único que accede al front-end de servidores IIS. El tráfico entre las diferentes máquinas está limitado por las políticas de seguridad de red de VPC (grupos de seguridad). El cliente accede a los sistemas para su gestión vía VPN. Todas las máquinas están dentro de un dominio por lo que se pueden aplicar medidas de seguridad a través del Directorio Activo.
Escalabilidad
La virtualización permite ampliar las características de CPU y RAM de cada máquina hasta 15 GB de memoria y CPU de 8 unidades informáticas EC2 (4 núcleos virtuales con 2 unidades informáticas EC2 cada uno). Respecto al almacenamiento, se pueden asignar a cada instancia hasta 16 volúmenes EBS de 1Tbyte. Además, se han mejorado las AMIs (plantillas) de modo que se pueden configurar rápidamente nuevos servidores de IIS o SQLServer e integrarlos en la infraestructura de alta disponibilidad.
Plan de contingencia
Como se ha comentado anteriormente, una base de datos en modo ''standby', sita en otra zona de disponibilidad, se sincroniza con la principal cada 15 minutos para minimizar la posibilidad de perdida de datos. Todos los días se realiza una copia de seguridad de esta base de datos en standby en Amazon S3, sin parar o ralentizar el servicio de la base de datos principal.
En todos estos aspectos, se ha formado al personal del cliente y se ha redactado un documento de operaciones para favorecer su autonomía.
RETOS FUTUROS
- Monitorización de servicios, máquinas y AWS con herramienta de software libre.
- Plan de seguridad de sistemas.
- Copias de seguridad fuera de la infraestructura del proveedor Iaas, ya se en local o en otra nube.
- Estrategias de reducción de costes a partir de los datos recogidos y la integración de la herramienta de monitorización con Cloudwatch y Autoscale.
- Si la infraestructura creciese, automatización de tareas de despliegue mediante herramientas de gestión de la configuración como Chef o Puppet.
EN AWS TAMBIÉN CON MySQL y ORACLE DATABASE COMO SERVICIO
Este tipo de arquitecturas de alta disponibilidad también pueden construirse en AWS utilizando el servicio de base de datos relacional (RDS), como sugieren desde Amazon, con la opción Multi A-Z de RDS.
En Solid Rock IT somos arquitectos de sistemas con gran experiencia en informática tradicional y nube, por lo que somos una referencia en la implantación de proyectos IaaS.

Comentarios
No hay comentarios de momento.
Añadir un comentario