Blog de Amazon Web Services (AWS)

Configuración de Microsoft SQL Server Reporting Services en Amazon RDS para SQL Server

Por Edgar Tellez, Sr. Solutions Architect en AWS

 

Ahora puede ejecutar Microsoft SQL Server Reporting Services (SSRS) directamente en una Amazon Relational Database Service (RDS) para la instancia de SQL Server. Puede activar SSRS en instancias Single-AZ o Multi-AZ en las ediciones Standard o Enterprise de SQL Server 2017. Si ejecuta SSRS en Amazon Elastic Compute Cloud (Amazon EC2), ahora puede ahorrar costos de licenciamiento ejecutando SSRS directamente en un Amazon RDS para SQL Server, el cual aloja el portal web del servidor de informes en la misma instancia de RDS DB que la base de datos de SQL Server.

Obtiene beneficios como la administración de las claves de cifrado SSRS, la modificación de las configuraciones SSRS con solo hacer clic en un botón, la aplicación de parches de software y las configuraciones Multi-AZ del servicio Amazon Relational Database Service  (Amazon RDS), que proporcionan alta disponibilidad para SSRS.

SSRS es una herramienta para la generación y distribución de informes. La interfaz de SSRS es un portal web con el que puede interactuar para crear, ver, editar y eliminar informes. Los informes le permiten visualizar y dar sentido a sus datos para tomar decisiones.

Esta publicación cubre cómo hacer las siguientes tareas con SSRS

  • Habilitar el servicio en su instancia de base de datos de SQL Server de Amazon RDS
  • Configurar el puerto y la memoria del servicio.
  • Conceder y revocar permisos
  • Conéctese al portal web
  • Implementar informes
  • Deshabilitar el servicio

 

Prerrequisitos

Para configurar SSRS en Amazon RDS para SQL Server, su instancia de RDS debe cumplir los siguientes requisitos:

  • Ser ediciones SQL Server 2017 Standard o Enterprise (14.00.3223.3.v1 y superior)
  • Estar unido al servicio de directorio de AWS para Microsoft Active Directory

 

 

Crear y asociar un grupo de opciones

SSRS se activa en una instancia de RDS a través de un grupo de opciones. Debe usar un grupo de opciones existente para SQL Server 2017 basado en la edición de su instancia de RDS. Para obtener más información, consulte Trabajar con grupos de opciones. Para activar SSRS a través de un grupo de opciones, complete los siguientes pasos:

 

1. En la consola de Amazon RDS seleccione Option Groups

2. Seleccione el Option Group en el cual se adicionará la opción de SSRS

3. Elija la opción Add option

 

 

4. En Option name, elija SSRS.

 

 

5. Aparecerán las siguientes configuraciones de opciones

    • Port – Establecer cualquier valor entre 1150 y 49152 siempre que no entre en conflicto con un puerto reservado. Los puertos SSRS típicos como 443 y 80 están reservados y no están permitidos en Amazon RDS.
    • Max Memory – Configure la memoria máxima para el servicio SSRS. Si el servicio SSRS alcanza la memoria máxima configurada, intentará liberar memoria o rechazará solicitudes para que no exceda el límite. Dependiendo del uso de SSRS, considere un valor que no sea intrusivo para otras aplicaciones en la misma instancia, como el motor de base de datos de SQL Server. Los valores válidos están entre 10 y 80%..
    • Security Groups – Seleccione un Security Group asociado con la instancia de base de datos. Este grupo de seguridad debe tener una regla que permita el acceso entrante a SSRS para el puerto configurado.

6. En Scheduling debe de seleccionar cuando se realizaran estos cambios dentro del servicio de Amazon RDS, ya sea que se realice durante el horario de mantenimiento especificado o de manera inmediata, esta opción realizara un reinicio del servicio y podría provocar indisponibilidad del mismo.

7. Elija la opción Add Option para asociar la opción SSRS con el grupo de opciones.
Ahora puede asociar este grupo de opciones con una instancia de RDS para activar SSRS.

 

Base de Datos Report Server

Cuando agrega la opción SSRS por primera vez, verá dos nuevas bases de datos en su instancia de RDS: rdsadmin_ReportServer y rdsadmin_ReportServerTempDB.

SSRS está configurado para usar estas bases de datos. Si está en una instancia de Multi-AZ RDS, puede ver que rdsadmin_ReportServerTempDB no está reflejado o no es parte del grupo de disponibilidad, lo cual es normal. La automatización de RDS administra estas bases de datos durante la conmutación por error o los reemplazos de hosts para que el servicio SSRS no se vea afectado.

 

Conexión al Report Server Web Portal

Después de agregar SSRS a un grupo de opciones y asociado con una instancia de RDS, puede conectarse al portal web del servidor de informes. Puede acceder al portal web en su navegador a través de cualquier computadora que también esté unida al dominio de la instancia de RDS.

Antes de poder ver el portal web, debe otorgar acceso a un usuario de dominio. Para realizarlo, complete los siguientes pasos:

1. Inicie SQL Server Management Studio (SSMS).

2. Conéctese al motor de SQL Server de la instancia de RDS para la que está activado SSRS.

3. Ejecute el procedimiento almacenado, completando los argumentos apropiados:

exec msdb.dbo.rds_msbi_task
 @task_type='SSRS_GRANT_PORTAL_PERMISSION',
 @ssrs_group_or_username=N'AD\user'

AD es el nombre de su dominio y user es el nombre del usuario o grupo con el que accede al portal web.

 

4. Puede verificar el estado del procedimiento almacenado con el siguiente código

SELECT * FROM dbo.rds_fn_task_status(NULL,task_id)

El valor de task_id es el ID de la tarea, este se obtiene del paso previo. Ingrese 0 para mostrar todos los id_task de todas las tareas existentes.

La siguiente imagen muestra el resultado de la llamada al punto anterior; task_id se refiere al ID de la tarea del cliente, task_type es el tipo de tarea, el lifecycle es el estado en el que se encuentra la tarea y task_info proporciona información adicional sobre el estado de la tarea.

 

 

Cuando la tarea en lifecycle es SUCCESS, la tarea se completo y puede avanzar al siguiente paso.

SSRS utiliza HTTPS SSL para sus conexiones con el servidor de informes, por lo que debe importar un certificado de Amazon RDS en la instancia del cliente. Para obtener más información sobre el uso de SSL con SQL Server, consulte Uso de SSL con una instancia de base de datos de Microsoft SQL Server.

Usando su navegador preferido, puede conectarse al portal web. La URL del portal web es https://<rds-endpoint>:<port>/Reports, donde <rds-endpoint> es el punto final de la instancia RDS y <port> es el puerto configurado para SSRS al agregar la opción.

 

Administrar permisos SSRS

Después de conectarse al portal con su usuario de dominio, puede configurar y administrar permisos a nivel de elemento.

1. Abra el portal web en su navegador

2. En la pagina principal del portal, elija Manage Folder o Administrar Carpeta.

 

3. En la pestaña Seguridad (Security), agregue, edite y elimine asignaciones de roles. El usuario al que le otorgó permisos de portal ya debe tener el rol de Administrador de contenido. La siguiente captura de pantalla muestra el resultado después del procedimiento almacenado para otorgar permiso al portal ejecutado para el usuario msbiDomain\Admin.

 

 

Agregar usuarios o grupos adicionales ya no requiere el procedimiento almacenado porque puede hacerlo directamente aquí.

 

Eliminar permisos de nivel de sistema

No puede ver los permisos a nivel de sistema de SSRS a través del portal web. Sólo aquellos usuarios o grupos a los que se les otorga acceso al portal a través del procedimiento almacenado tienen una asignación de nivel de sistema. Si necesita eliminarlos, debe hacerlo utilizando el siguiente código:

exec msdb.dbo.rds_msbi_task
 @task_type='SSRS_REVOKE_PORTAL_PERMISSION',
 @ssrs_group_or_username=N'AD\user'

AD es el nombre de su dominio y user es el nombre del usuario o grupo al cual quiere eliminar permisos a nivel de sistema

Asegúrese de que el lifecyle de la tarea muestre SUCCESS para el permiso de nivel de sistema del usuario. Esto también elimina las asignaciones de roles a nivel de elemento del usuario.

 

Trabajando con informes

Después de tener el permiso del portal, puede implementar informes a través del portal web. Puede elegir la herramienta Cargar (Upload) en el portal web, como se ve en la siguiente captura de pantalla.

 

 

También puede implementar informes con las Herramientas de datos de SQL Server (SSDT). Para crear un proyecto de servidor de informes e implementar el informe directamente en SSRS que se ejecuta en la instancia de RDS, complete los siguientes pasos:

1. Abra SSDT y elija o cree un nuevo proyecto de servidor de informes (Report Server Project) como se muestra en la captura de pantalla a continuación.

Asegúrese de abrir SSDT con el inicio de sesión de Windows al que se le otorgó permiso para SSRS a través del procedimiento almacenado. Esto es para garantizar que la implementación del informe no falle, porque el usuario debe tener permisos suficientes para implementar un informe directamente, además, cualquier usuario asignado al rol de Administrador de contenido también puede implementar un informe.

 

 

Después de diseñar el informe, puede hacer que el destino de la implementación sea el punto final de la instancia de RDS.

2. Seleccione en el menú Project

3. Elija SSRSProject Properties. (Para esta publicación, el Proyecto se llama SSRSProject)

 

 

4. Establezca TargetServerURL con el endpoint HTTPS de la instancia RDS con el sufijo del puerto en el que escucha SSRS y /ReportServer (por ejemplo, https://my-instance-endpoint.amazonaws.com:8443/ReportServer).

 

 

Ahora, cuando se realice el despliegue de la solución se cargara directamente en SSRS en la instancia de RDS.

 

Trabajar con Fuentes de Datos

En un informe, es posible que tenga una fuente de datos que sea una base de datos en la misma instancia de RDS en la que se ejecuta SSRS. Si usa la autenticación de Windows para que las credenciales del informe inicien sesión en la fuente de datos, es posible que tenga problemas de autenticación.

Puede resolver esto asegurándose de que la fuente de datos en la cadena de conexión esté configurada en la interfaz loopback (por ejemplo, localhost o . . ) O el nombre de dominio completo (FQDN) de la instancia de RDS. El FQDN de una instancia RDS es el nombre de instancia con el sufijo del FQDN del dominio (por ejemplo, my-instance.my.domain.com, donde my-instance es el nombre de la instancia y my.domain.com es el nombre del dominio). La siguiente captura de pantalla muestra una conexión de fuente de datos usando el FQDN de una instancia de base de datos RDS a la base de datos testDB.

 

 

Deshabilitando SSRS

Si ya no necesita que SSRS se ejecute en la instancia de RDS, puede eliminar la opción para desactivar el servicio.

La eliminación de la opción no elimina las bases de datos del servidor de informes, por lo que puede eliminar la opción de forma segura sin perder los informes guardados en SSRS. Agregar la opción SSRS después de la eliminación reactiva el servicio SSRS y puede acceder a todos los informes que cargó anteriormente.

Es posible que también desee eliminar las bases de datos del servidor de informes si ya no utiliza SSRS y no desea que las bases de datos ocupen espacio. En este caso, después de la eliminación de la opción, puede utilizar un procedimiento almacenado que descarte las bases de datos rdsadmin_ReportServer y rdsadmin_ReportServerTempDB. Vea el siguiente código:

exec msdb.dbo.rds_drop_ssrs_databases;

 

Resumen

Esta publicación mostró cómo configurar SSRS en Amazon RDS para SQL Server. Si ejecuta SSRS en Amazon EC2, puede ahorrar costos al consolidar esas cargas de trabajo para que se ejecuten en la misma instancia de RDS que su base de datos de SQL Server. Puede implementar, almacenar y descargar informes fácilmente mediante el portal web del servidor de informes después de la activación en una instancia de RDS. Pruebe SSRS hoy mismo en la Consola de administración de AWS y comparta sus experiencias en los comentarios.

 


Sobre el autor

Edgar Tellez ha ayudado a múltiples empresas de sector público y privado en la adopción tecnológica de nube en los últimos 10 años. Antes de formar parte del equipo de AWS, Edgar trabajo en otros proveedores de nube, se especializo en Plataforma de Datos como es SQL Server, Business Intelligence (SSAS,SSIS,SSRS), Machine Learning, etc. ayudando a clientes en toda Latinoamerica.