Automatiza las recomendaciones de Amazon Redshift Advisor con alertas por correo electrónico utilizando una API

Resource type
Información de producto

Amazon Redshift es un almacén de datos en la nube rápido, escalable, seguro y completamente gestionado que te permite analizar tus datos a gran escala. Ahora, Amazon Redshift permite acceder programáticamente a las recomendaciones de Amazon Redshift Advisor mediante una API, lo que te permite integrar sugerencias sobre cómo mejorar el rendimiento de tu clúster aprovisionado en tus propias aplicaciones.

Amazon Redshift Advisor ofrece recomendaciones para optimizar el rendimiento de tu clúster Redshift y te ayuda a ahorrar en costos operativos. Advisor desarrolla recomendaciones personalizadas analizando métricas de rendimiento y uso de tu clúster y muestra recomendaciones que deberían tener un impacto significativo en el rendimiento y las operaciones. Con la capacidad de acceder a estas recomendaciones a través de la API ListRecommendations, puedes implementarlas bajo demanda o automáticamente a través de tus propias aplicaciones y herramientas internas sin la necesidad de acceder a la consola de Amazon Redshift.

En este artículo, te mostramos cómo usar la API ListRecommendations para configurar notificaciones por correo electrónico para las recomendaciones de Advisor en tu clúster Redshift. Estas recomendaciones, como identificar tablas que deben limpiarse para ordenar los datos o encontrar columnas de tabla que son candidatas para la compresión, pueden ayudar a mejorar el rendimiento y ahorrar costos.

Cómo acceder a las recomendaciones de Redshift Advisor

Para acceder a las recomendaciones de Advisor en la consola de Amazon Redshift, selecciona Advisor en el panel de navegación. Puedes ampliar cada recomendación para ver más detalles, así como ordenar y agrupar las recomendaciones.

También puedes usar la API ListRecommendations para automatizar la recepción de las recomendaciones de Advisor e implementarlas programáticamente. La API devuelve una lista de acciones recomendadas que se pueden analizar e implementar. La API y los SDK también te permiten configurar flujos de trabajo para usar Advisor programáticamente para optimizaciones automatizadas. Estas verificaciones periódicas automatizadas de Advisor utilizando cron, junto con la implementación de los cambios, pueden ayudarte a mantener optimizados los clústeres de Redshift automáticamente sin intervención manual.

También puedes usar el comando list-recommendations en la AWS Command Line Interface (AWS CLI) para invocar las recomendaciones de Advisor desde la línea de comandos y automatizar el flujo de trabajo mediante scripts.

Descripción general de la solución

El siguiente diagrama ilustra la arquitectura de la solución:

El flujo de trabajo de la solución consta de los siguientes pasos:

  1. Una programación de Amazon EventBridge invoca una función AWS Lambda para recuperar las recomendaciones de Advisor.
  2. Advisor genera recomendaciones que son accesibles a través de una API.
  3. Opcionalmente, esta solución almacena las recomendaciones en un bucket de Amazon Simple Storage Service (Amazon S3).
  4. Amazon Simple Notification Service (Amazon SNS) envía automáticamente notificaciones a los usuarios finales.

Prerrequisitos

Para implementar esta solución, debes tener lo siguiente:

  • Una cuenta de AWS
  • Un clúster aprovisionado de Redshift
  • Un tema SNS con una suscripción de correo electrónico
  • Acceso de administrador para iniciar la pila AWS CloudFormation
  • Opcionalmente, un bucket S3

Implementar la solución

Completa los siguientes pasos para implementar la solución:

  1. Elige Launch Stack.
  2. Para Stack name, ingresa un nombre para la pila, por ejemplo, blog-redshift-advisor-recommendations.
  3. Para SnsTopicArn, ingresa el nombre del recurso de Amazon (ARN) del tema SNS para recibir las alertas por correo electrónico.
  4. Para ClusterIdentifier, ingresa el nombre de tu clúster Redshift si deseas recibir notificaciones de Advisor para un clúster en particular. Si lo dejas en blanco, recibirás notificaciones para todos los clústeres aprovisionados de Redshift en tu cuenta.
  5. Para S3Bucket, ingresa el nombre del bucket S3 para almacenar las recomendaciones detalladas de Advisor en un archivo JSON. Si lo dejas en blanco, se omitirá este paso.
  6. Para ScheduleExpression, ingresa la frecuencia en formato cron para recibir alertas de recomendaciones de Advisor. Para este artículo, queremos recibir alertas cada domingo a las 14:00 UTC, así que ingresamos *cron(0 14 ? * SUN ).

Asegúrate de proporcionar la expresión de tiempo cron correcta al implementar la pila de CloudFormation para evitar fallos.

Mantén todas las opciones por defecto en Configure Stack options y elige Next. Revisa la configuración, selecciona la casilla de verificación de reconocimiento y crea la pila. Si la pila de CloudFormation falla por algún motivo, consulta Troubleshooting CloudFormation.

Detalles del flujo de trabajo

Veamos más de cerca la función Lambda y el flujo de trabajo completo:

Los valores de entrada proporcionados para SnsTopicArn, ClusterIdentifier y S3Bucket en la creación de la pila de CloudFormation se establecen como variables ambientales en la función Lambda. Si el parámetro ClusterIdentifier es None, invocará la API ListRecommendations para generar recomendaciones de Advisor para todos los clústeres dentro de la cuenta (misma región de AWS). De lo contrario, pasará el valor ClusterIdentifier y generará recomendaciones de Advisor solo para el clúster dado. Si se proporciona un parámetro S3Bucket, la solución crea una carpeta llamada RedshiftAdvisorRecommendations y genera el archivo de recomendaciones de Advisor en formato JSON dentro de ella. Si no se proporciona un valor para S3Bucket, se omitirá este paso.

A continuación, la función resumirá las recomendaciones por cada clúster aprovisionado (para todos los clústeres en la cuenta o un solo clúster, dependiendo de tu configuración) según el impacto en el rendimiento y el costo en categorías ALTO, MEDIO y BAJO. Se enviará un correo electrónico de notificación de SNS a los suscriptores con las recomendaciones resumidas.

Los comandos SQL se incluyen como parte de la acción recomendada de Advisor. RecommendedActionType-SQL resume el número de acciones SQL que se pueden aplicar mediante comandos SQL.

Si no hay recomendaciones disponibles para ningún clúster, se enviará un correo electrónico de notificación de SNS notificando que no hay recomendaciones de Advisor.

Se crea una regla de EventBridge para invocar la función Lambda según la frecuencia que proporcionaste en los parámetros de la pila. De forma predeterminada, está programada para ejecutarse semanalmente cada domingo a las 14:00 UTC.

Limpieza

Recomendamos eliminar la pila de CloudFormation si no vas a seguir utilizando la solución. Esto evitará incurrir en costos adicionales por los recursos creados como parte de la solución.

Conclusión

En este artículo, discutimos cómo Redshift Advisor te ofrece recomendaciones específicas para mejorar el rendimiento y reducir los costos operativos de tu clúster Redshift. También te mostramos cómo acceder a estas recomendaciones programáticamente mediante una API e implementarlas bajo demanda o automáticamente utilizando tus propias herramientas internas sin tener acceso a la consola de Amazon Redshift.

Al integrar estas recomendaciones en tus flujos de trabajo, puedes tomar decisiones informadas e implementar mejores prácticas para optimizar el rendimiento y los costos de tus clústeres Redshift, mejorando en última instancia la eficiencia y productividad general de tus operaciones de procesamiento de datos.

Te animamos a probar esta solución automatizada para acceder programáticamente a las recomendaciones de Advisor. Si tienes algún comentario o pregunta, no dudes en dejarla en los comentarios.