AWS CloudFormation y alta disponibilidad con ArcGIS Server

Algunas funciones de Amazon Web Services (AWS) CloudFormation se pueden usar para disponer de algunas de las ventajas de la alta disponibilidad al trabajar con ArcGIS Server en AWS.

Para entender la necesidad de esta aproximación es necesario conocer algunos fundamentos. La forma típica de empezar a usar ArcGIS Server en AWS es utilizando ArcGIS Server Cloud Builder. Se trata de un asistente sencillo que ayuda a configurar un sitio de ArcGIS Server en Amazon Elastic Compute Cloud (EC2). El resultado del asistente es un sitio que potencialmente puede tener muchos equipos, distribuir tareas entre ellos y aprovechar al máximo la arquitectura peer-to-peer de ArcGIS Server 10.1 y 10.2. Cloud Builder también ofrece una infraestructura para realizar copias de seguridad de sitios, además de plantillas que se pueden usar para lanzar sitios adicionales con un patrón idéntico.

La arquitectura que se crea con Cloud Builder se muestra en el diagrama siguiente.

Arquitectura de ArcGIS Server iniciada por Cloud Builder

A pesar de todas sus ventajas, el sitio creado con Cloud Builder tiene algunos inconvenientes en cuanto se refiere a la alta disponibilidad. Si la instancia del servidor SIG que ejecuta el almacenamiento de configuración se pierde, el sitio quedará inutilizado. Además, la recuperación de una copia de seguridad puede tardar 30 minutos o más, lo cual sería un paro demasiado largo en algunas organizaciones.

Una forma alternativa que evita algunos de estos problemas es la arquitectura por silos, que se ilustra a continuación, en la cual muchos sitios de ArcGIS Server idénticos pero independientes se conectan mediante un equilibrador de carga elástico (ELB). Esta arquitectura se utilizaba exclusivamente con ArcGIS Server en AWS antes de la versión 10.1 y todavía se puede usar con 10.1 y 10.2 si se está dispuesto a sacrificar facilidad de administración y la posibilidad de distribuir tareas grandes (como la construcción de cachés de teselas) entre servidores.

Una de las ventajas principales de la arquitectura en silos es que permite continuar ejecutando ArcGIS Server incluso aunque se pierda una instancia de servidor SIG.

Arquitectura de ArcGIS Server en silos del tipo que se puede iniciar con CloudFormation

La arquitectura en silos no se puede construir con Cloud Builder. Se debe crear a mano con la Consola o las API de administración de AWS. No obstante, algunas de las características de Amazon CloudFormation pueden ayudarle a iniciar y mantener una arquitectura en silos de forma mucho más fácil que en el pasado. CloudFormation garantiza que siempre disponga de un número mínimo de máquinas en el sitio, lo cual permite la recuperación sin interrupciones si una de ellas deja de estar disponible.

El resto de este tema explica cómo se configura una arquitectura en silos con CloudFormation.

Uso de CloudFormation para construir una arquitectura en silos

Amazon CloudFormation es un servicio que le ayuda a definir arquitecturas para los Amazon Web Services que utilice. Es un ejemplo de infraestructura como código, lo cual significa que usted escribe código que se puede implementar en una infraestructura específica de hardware en un entorno de nube. En el caso de CloudFormation, se utiliza una plantilla de notación de objetos JavaScript (JSON) para definir una pila de recursos que funcionan juntos de una forma predeterminada. En este caso, la plantilla define sus sitios de ArcGIS Server en silos y el Elastic Load Balancer que los mantiene juntos.

Copie y examine las plantillas

Pasos:
  1. Para empezar, examine una de estas plantillas de ejemplo:
  2. Copie el código de la plantilla en un archivo de texto y guárdelo.
  3. Examine las propiedades JSON establecidas y modifíquelas según sea necesario.

    Hay varias propiedades del objeto Parámetros que se pueden establecer al iniciar la pila, como el número y los tipos de instancias que participan en el sitio y en la Amazon Machine Image (AMI) utilizada. Otros recursos, como los ajustes del equilibrador elástico de carga (ELB), forman parte de la plantilla y solo los puede cambiar el autor de la misma.

    Nótense los ajustes de escalado automático y de la alarma CloudWatch que definen desencadenadores para agregar y eliminar máquinas del sitio en función de factores como el uso de la CPU. También es posible definir cuántas máquinas se actualizarán simultáneamente si alguna vez se modifica la AMI, lo cual permite mantener siempre una instancia disponible.

  4. Además de los elementos de esta plantilla, se puede introducir una LBCookieStickinessPolicy en el ELB, que determina la activación o no de las sesiones permanentes. Estas garantizan que las peticiones de un usuario se dirijan a la misma máquina de servidor SIG durante toda su sesión. Esto puede ser útil para trabajar con funciones de larga duración como las tareas de geoprocesamiento asíncronas.
  5. También se puede definir el certificado SSL que se debe aplicar a la pila. Para ello, cargue su certificado en la gestión de identidad y acceso de AWS (IAM) e inserte el código en la plantilla para especificar el ajuste SSLCertificateId en el ELB.

Cree la pila

Después de seleccionar una plantilla, siga los pasos siguientes para iniciar un sitio de ArcGIS Server con múltiples máquinas según la arquitectura en silos.

Pasos:
  1. Utilice la Consola de administración de AWS para iniciar una instancia utilizando una de las AMI de ArcGIS Server suministradas por Esri.
  2. Licencie ArcGIS Server y cree un sitio sobre la instancia.
  3. Configure la instancia con sus servicios, datos y todas las aplicaciones de terceros que desee instalar.
    PrecauciónPrecaución:

    Si tiene algún servicio de mapas que no vaya a usar un caché, configure la propiedad supportedImageReturnType del servicio de mapas en MIME en lugar de URL (para que no se dirija al usuario de nuevo hacia la pila y, potencialmente, a la instancia equivocada, al tratar de recuperar las imágenes del mapa). Deberá editar las propiedades del servicio en el Directorio del administrador de ArcGIS Server con el fin de ajustar este parámetro, ya que no está disponible en ArcGIS Manager.

  4. Guarde una AMI desde su instancia. Todas las instancias creadas a partir de esta AMI serán iguales. Cada una será su propio sitio de ArcGIS Server con su propio almacén de configuración, directorios de servidor y datos.
  5. Después de crear la AMI, anote el ID de AMI. Esto es necesario para crear la pila.
  6. En la Consola de administración de AWS, haga clic en Servicios > CloudFormation para abrir la página Pilas de CloudFormation.
  7. Haga clic en Crear pila.
  8. Proporcione un Nombre de pila.
  9. Seleccione Subir un archivo de plantilla, vaya a uno de los archivos de plantilla que ha guardado y modificado arriba, y haga clic en Continuar.
  10. Configure las propiedades siguientes de la pila:
    1. Cambie la propiedad AMI por el ID de la AMI que ha creado en el paso 3.
    2. Cambie MaxSize por el número máximo de instancias que desee tener en la pila simultáneamente.
    3. Si va a usar la plantilla VPC, configure las opciones de VPCId, Subredes y AZs (Zonas de disponibilidad) para que correspondan con la configuración del entorno VPC que desee.
    4. Ajuste InstanceType para que refleje el tamaño de instancia que desee.
    5. Cambie KeyName para que coincida con el nombre de uno de sus pares de clave de Amazon. No incluya la extensión .pem.
    6. Cambie MinSize por el número mínimo de instancias que desee tener en la pila simultáneamente. Si mantiene este valor en 2 o más, quedará protegido de la pérdida de su sitio en el caso de que una máquina deje de estar disponible. Si solo se encuentra una instancia, CloudFormation creará inmediatamente una segunda.
  11. Haga clic en Continuar.
  12. Agregue etiquetas para identificar fácilmente su instancia, como Key = Nombre y Value = MyCloudFormation, y haga clic en Continuar.
  13. Examine todos sus parámetros y haga clic en Continuar cuando esté listo para crear la pila.

Se iniciará la pila. Después de un breve periodo de tiempo, ArcGIS Server estará accesible mediante el formato de URL siguiente: http://<Dirección de Elastic Load Balancer>/arcgis/rest.

6/16/2014