Cómo Realizar la Modificación de Cloud Formation
DataSunrise ofrece un script dedicado para el despliegue de infraestructura HA dentro de Amazon Web Services basado en el Servicio de Amazon Cloud Formation. La siguiente plantilla crea todos los recursos necesarios para soportar el entorno HA de DataSunrise (los servidores EC2 bajo el grupo de AutoScaling, las bases de datos RDS Configurational Audit y Dictionary, el Balanceador de Carga, etc.) y se puede personalizar de acuerdo a las necesidades del cliente.
En este artículo, vamos a mostrar cómo se puede modificar la plantilla de Cloud Formation para soportar la configuración personalizada. Se presentarán 2 escenarios.
Escenario 1.
Lanzamos la actualización menor de DataSunrise y AMIs semanalmente para mantener nuestra solución actualizada y lo más optimizada posible. Por ejemplo, actualizar los drivers ODBC, corregir algunas vulnerabilidades de bases de datos, actualizar las bibliotecas necesarias, etc. Por lo tanto, nuestros clientes podrían verse obligados a actualizar las AMIs que están utilizando actualmente, a la versión más reciente.
Esto se puede hacer mediante la edición manual de la plantilla. Se proporciona una instrucción detallada a continuación:
- Abra el archivo de la plantilla y proceda a la sección RegionMap:

Imagen 1. El archivo de la plantilla
- Elija la región en la que se ha desplegado su entorno.
- Proceda a nuestro repositorio oficial de GitHub
Actualizamos los archivos de script allí cada semana, una vez que se lanza la nueva versión de DataSunrise.
- Proceda también a la sección RegionMap y a la región en la que se han desplegado sus recursos:

Imagen 2. El repositorio de DataSunrise
- Puede actualizar el ID de la AMI solo para la región que está utilizando. Por lo tanto, copie el ID de la AMI para la región requerida.
- Proceda a su archivo de plantilla actual y reemplace el ID de la AMI actual para la región requerida con el valor copiado de nuestro repositorio de GitHub.
- Vaya a la página de AWS CF y elija la opción para actualizar su stack de CF.
- Seleccione Reemplazar la plantilla actual y suba la versión editada de su plantilla (paso 6). Haga clic en Siguiente.
Ahora puede comprobar si el proceso de actualización finalizó correctamente. Por ejemplo, si fue necesario actualizar los drivers ODBC, puede realizar una conexión de prueba a su base de datos de destino para verificar que se hayan utilizado los drivers actualizados:
Configuración -> Bases de datos -> Su_base_de_datos_destino -> Probar conexión.

Imagen 3. Probar conexión
Si se utiliza la nueva versión del driver ODBC, la actualización de la AMI se ha completado correctamente.
De lo contrario, puede revisar nuevamente sus pasos o contactarnos para una investigación adicional.
Escenario 2.
A veces, nuestros clientes necesitan instalar algunas herramientas adicionales, por ejemplo, drivers ODBC, cambiar la configuración del servidor o aplicar las últimas correcciones de infraestructura. Esto se puede hacer modificando la parte UserData del archivo de la plantilla CF.
Veamos cómo se puede hacer esto. Configuraremos un driver ODBC para DB2 que no está incluido por defecto en nuestras imágenes de AWS.
En la plantilla CF, en la sección UserData, se están importando varios scripts que contienen todos los ajustes de configuración necesarios:

Imagen 4. Plantilla CF con scripts
Cada uno configura su propio conjunto de componentes del entorno:
- vm-creads.sh – este script es necesario para recuperar y adjuntar un rol IAM a la máquina EC2 actual.
- cf-params.sh – este script se utiliza para transferir los valores de los parámetros de los recursos del stack CF al script para que puedan ser utilizados fácilmente durante el flujo de trabajo del script.
- ds-manip.sh – este script es necesario para algunas operaciones administrativas, como otorgar permisos al usuario de DataSunrise sobre cualquier archivo, iniciar o cerrar sesión en la consola web de DataSunrise, etc.
- ds-setup.sh – este script contiene todas las funciones necesarias para configurar DataSunrise correctamente. Por ejemplo, configurar la contraseña de administrador, la configuración de la base de datos de diccionario, la configuración del proxy, etc.
- aws-ds-setup.sh – este script configura recursos basados en AWS, tales como las métricas de CloudWatch y la carga de registros.
- pre-setup.sh – este script es necesario para preparar el entorno para la instalación de DataSunrise: descargar los paquetes necesarios, compilaciones, configurar una licencia para la aplicación de DataSunrise, etc.
En el caso de hoy, vamos a instalar el driver ODBC para DB2 que se utilizará durante la inicialización de la instancia de la base de datos de destino. Por lo tanto, aplicaremos los cambios al archivo pre-setup.sh.
En nuestro escenario, los comandos necesarios se toman de la documentación oficial de DataSunrise Guía del Usuario
- Peguemos los comandos necesarios en el archivo pre-setup.sh.
- Pero primero, necesitamos subir el driver ODBC para DB2 al bucket S3. Así que, por favor, descargue los drivers desde el sitio web oficial. Deberá iniciar sesión en su cuenta de IBM o crear una nueva cuenta. Una vez descargado el driver, súbalo al bucket S3, aquel que ha especificado como BackupS3BucketName durante el despliegue del script de Cloud Formation.
- Ahora, pegue los comandos necesarios tal como se muestra a continuación:

Imagen 5. Comandos en el archivo pre-setup.sh[/caption>
Aquí están los comandos:
logBeginAct "Instalar driver ODBC para DB2..." aws s3 cp "s3://$BackupS3BucketName/ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz" ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz --only-show-errors tar -xfv ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz echo "[DB2]" | sudo tee -a /etc/odbcinst.ini echo "Driver = /home/user/clidriver/lib/libdb2o.so" | sudo tee -a /etc/odbcinst.ini echo "Description = Driver DB2" | sudo tee -a /etc/odbcinst.ini echo "FileUsage = 1" | sudo tee -a /etc/odbcinst.ini echo "DontDLClose = 1" | sudo tee -a /etc/odbcinst.ini RETVAL=$? logEndAct "Resultado de instalar driver ODBC para DB2 - $RETVAL"
- Para monitorear el progreso de la instalación del driver ODBC, puede utilizar nuestro mecanismo de registro:
- Utilice la función logBeginAct para iniciar el registro y separar una parte del proceso de instalación de otra:
la línea en la plantilla: logBeginAct “Instalar driver ODBC para DB2…”
la salida en el archivo cloud-init-output.txt: [DS <instance-id>]: Instalar driver ODBC para DB2…
* El archivo cloud-init-output.txt es un archivo que almacena todos los mensajes de registro del despliegue del script de Cloud Formation de DataSunrise. Se encuentra en /var/log/messages/. Puede consultarlo siempre que necesite solucionar problemas con el despliegue de su stack de Cloud Formation.
- Una vez que haya iniciado la parte de logBeginAct, dentro de esa parte puede utilizar la función log para registrar cualquier información o estado en el archivo cloud-init-output.txt.
No lo utilizaremos en la parte que se muestra, pero puede ver otro ejemplo:
[caption id="attachment_16720" align="alignnone" width="1024"]
Imagen 6. Ejemplo de la función log
- Para monitorear el progreso de la instalación del driver ODBC, puede utilizar nuestro mecanismo de registro:
- Para finalizar la parte de registro, puede ingresar:
logEndAct “Resultado de instalar driver ODBC para DB2 – $RETVAL”

Imagen 7. Ejemplo de $RETVAL
* La variable RETVAL se utiliza para comprobar el código de salida de la ejecución del comando anterior.
RETVAL=$?
- Guarde el archivo. Vaya a la página de AWS CF y elija la opción para actualizar su stack de CF.
- Seleccione Reemplazar la plantilla actual y suba la versión editada de su plantilla (paso 2). Haga clic en Siguiente.
- Reinicie la aplicación y realice la prueba de conexión para asegurarse de que ahora se esté utilizando el driver DB2:

Imagen 8. Consola Web de DataSunrise
La personalización de la plantilla se completó con éxito. La plantilla de Cloud Formation también se puede personalizar para otros casos de uso. La mayoría de las modificaciones generalmente se realizan en la sección de scripts UserData. No dude en contactarnos para asistencia si necesita ayuda con la personalización de Cloud Formation.