Análisis de anomalías de rendimiento con Amazon DevOps Guru para Amazon RDS
Amazon DevOps Guru es un servicio de operaciones totalmente administrado que ayuda a los desarrolladores y operadores a mejorar el rendimiento y la disponibilidad de sus aplicaciones. DevOps Guru descarga las tareas asociadas a la identificación de problemas operativos para que pueda implementar rápidamente recomendaciones para mejorar su aplicación. Para obtener más información, consulte What is Amazon DevOps Guru? (¿Qué es Amazon DevOps Guru?) en la Guía del usuario de Amazon DevOps Guru.
DevOps Guru detecta, analiza y hace recomendaciones sobre problemas operativos existentes para todos los motores de base de datos de Amazon RDS. Para ampliar esta capacidad, DevOps Guru para RDS aplica machine learning a las métricas de Información sobre rendimiento de bases de datos RDS para PostgreSQL. Estas funciones de monitoreo permiten a DevOps Guru for RDS detectar y diagnosticar cuellos de botella en el rendimiento y recomendar acciones correctivas específicas. DevOps Guru para RDS también puede detectar condiciones problemáticas en la base de datos RDS para PostgreSQL antes de que se produzcan.
Ahora puede ver estas recomendaciones en la consola de RDS. Para obtener más información, consulte Visualización y respuesta a las recomendaciones de Amazon RDS.
El siguiente vídeo contiene información general de DevOps Guru para RDS.
Para profundizar en el tema, consulte la publicación del blog de Amazon DevOps Guru para RDS entre bastidores.
Temas
Beneficios de DevOps Guru para RDS
Si es responsable de una base de datos RDS para PostgreSQL, es posible que no sepa que se está produciendo un evento o una regresión que está afectando a esa base de datos. Cuando aprenda sobre el problema, es posible que no sepa por qué está ocurriendo o qué hacer al respecto. En lugar de recurrir a un administrador de base de datos (DBA) para obtener ayuda o confiar en herramientas de terceros, puede seguir las recomendaciones de DevOps Guru para RDS.
Obtiene las siguientes ventajas del análisis detallado de DevOps Guru para RDS:
- Diagnóstico rápido
-
DevOps Guru para RDS monitorea y analiza continuamente la telemetría de bases de datos. Información sobre rendimiento, Monitorización mejorada y Amazon CloudWatch recopilan datos de telemetría de su instancia de base de datos. DevOps Guru para RDS utiliza técnicas estadísticas y de machine learning para extraer estos datos y detectar anomalías. Para obtener más información sobre los datos de telemetría, consulte Monitoreo de la carga de base de datos con Performance Insights en Amazon RDS y Supervisión de las métricas del sistema operativo con supervisión mejorada en la Guía del usuario de Amazon RDS.
- Resolución rápida
-
Cada anomalía identifica el problema del rendimiento y sugiere vías de investigación o medidas correctivas. Por ejemplo, DevOps Guru para RDS podría recomendar investigar eventos de espera específicos. O podría recomendarle que ajuste la configuración del grupo de aplicaciones para limitar el número de conexiones de base de datos. Según estas recomendaciones, puede resolver los problemas de rendimiento más rápido que mediante la solución de problemas de forma manual.
- Información proactiva
-
DevOps Guru para RDS utiliza métricas de sus recursos para detectar posibles comportamientos problemáticos antes de que se conviertan en un problema mayor. Por ejemplo, puede detectar si la base de datos utiliza un número cada vez mayor de tablas temporales en el disco, lo que podría empezar a afectar al rendimiento. A continuación, DevOps Guru ofrece recomendaciones para ayudarle a solucionar los problemas antes de que se conviertan en problemas mayores.
- Conocimiento profundo de los ingenieros de Amazon y machine learning
-
Para detectar problemas de rendimiento y ayudarle a resolver los cuellos de botella, DevOps Guru para RDS se basa en machine learning (ML) y fórmulas matemáticas avanzadas. Los ingenieros de bases de datos de Amazon contribuyeron al desarrollo de DevOps Guru para los resultados de RDS, que encapsulan muchos años de administración de cientos de miles de bases de datos. Al aprovechar este conocimiento colectivo, DevOps Guru for RDS puede enseñarle las mejores prácticas.
Cómo funciona DevOps Guru for RDS
DevOps Guru para RDS recopila datos sobre sus bases de datos RDS para PostgreSQL desde Información de rendimiento de Amazon RDS. La métrica más importante es DBLoad
. DevOps Guru for RDS consume las métricas de Información sobre rendimiento, las analiza con machine learning y publica información en el panel de control.
La información es un conjunto de anomalías relacionadas que detecta DevOps Guru.
En DevOps Guru para RDS, una anomalía es un patrón que se desvía de lo que se considera un rendimiento normal para su base de datos RDS para PostgreSQL.
Información proactiva
La información proactiva le permite conocer el comportamiento problemático antes de que se produzca. Contiene anomalías con recomendaciones y métricas relacionadas para ayudarlo a abordar los problemas en sus bases de datos RDS para PostgreSQL antes de que se conviertan en problemas mayores. Esta información se publica en el panel de DevOps Guru.
Por ejemplo, DevOps Guru podría detectar que su base de datos RDS para PostgreSQL está creando muchas tablas temporales en el disco. Si no se soluciona este problema, esta tendencia podría provocar problemas de rendimiento. Cada información proactiva incluye recomendaciones sobre el comportamiento correctivo y enlaces a temas relevantes en Ajuste de RDS para PostgreSQL con información proactiva de Amazon DevOps Guru. Para obtener más información, consulte Working with insights in DevOps Guru (Trabajo con información en DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
Información reactiva
La información reactiva identifica el comportamiento anómalo a medida que se produce. Si DevOps Guru para RDS detecta problemas de rendimiento en las instancias de bases de datos de RDS para PostgreSQL, publica información reactiva en el panel de DevOps Guru. Para obtener más información, consulte Working with insights in DevOps Guru (Trabajo con información en DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
Anomalías causales
Una anomalía causal es una anomalía de nivel superior dentro de la información reactiva. Database load (DB load) (Carga de base de datos) es la anomalía causal de DevOps Guru for RDS.
Para medir el impacto del rendimiento, una anomalía asigna un nivel de gravedad de Alto, Mediano o Bajo. Para obtener más información, consulte Conceptos clave de DevOps Guru for RDS en la Guía del usuario de Amazon DevOps Guru.
Si DevOps Guru detecta una anomalía actual en la instancia de base de datos, se le avisará en la página Databases (Bases de datos) de la consola de RDS. La consola también le avisa de las anomalías que se han producido en las últimas 24 horas. Para ir a la página de anomalías desde la consola de RDS, elija el enlace del mensaje de alerta. La consola de RDS también le avisa en la página de la instancia de base de datos de PostgreSQL.
Anomalías contextuales
Una anomalía contextual es un resultado dentro de la carga de base de datos que está relacionada con una información reactiva. Cada anomalía contextual describe un problema de rendimiento específico de RDS para PostgreSQL que requiere investigación. Por ejemplo, DevOps Guru for RDS podría recomendar que considere aumentar la capacidad de la CPU o investigar los eventos de espera que contribuyen a la carga de la base de datos.
importante
Recomendamos que pruebe cualquier cambio en una instancia de prueba antes de modificar una instancia de producción para que pueda entender completamente el impacto de cada cambio. De esta forma, comprende el impacto del cambio.
Para obtener más información, consulte Analyzing anomalies in Amazon Aurora clusters (Análisis de anomalías en clústeres de Amazon RDS) en la Guía del usuario de Amazon DevOps Guru.
Configuración de DevOps Guru for RDS
Para permitir que DevOps Guru para Amazon RDS publique información para una base de datos de RDS para PostgreSQL, realice las siguientes tareas.
Temas
Configuración de las políticas de acceso de IAM para DevOps Guru para RDS
Para ver las alertas de DevOps Guru en la consola de RDS, su usuario o rol de AWS Identity and Access Management (IAM) debe contar con alguna de las siguientes políticas:
-
La política administrada de AWS
AmazonDevOpsGuruConsoleFullAccess
-
La política administrada de AWS
AmazonDevOpsGuruConsoleReadOnlyAccess
y cualquiera de las siguientes políticas:-
La política administrada por AWS
AmazonRDSFullAccess
-
Una política administrada por el cliente que incluya
pi:GetResourceMetrics
ypi:DescribeDimensionKeys
-
Para obtener más información, consulte Configuración de directivas de acceso para información sobre rendimiento.
Activación de Información sobre rendimiento para sus instancias de base de datos de RDS para PostgreSQL
DevOps Guru for RDS confía en Información sobre rendimiento para sus datos. Sin Información sobre rendimiento, DevOps Guru publica anomalías, pero no incluye análisis ni recomendaciones detallados.
Al crear o modificar una instancia de base de datos de RDS para PostgreSQL, puede activar Información sobre rendimiento. Para obtener más información, consulte Activación y desactivación de Información de rendimiento de Amazon RDS.
Activación de DevOps Guru y especificación de la cobertura de recursos
Puede activar DevOps Guru para que supervise sus bases de datos de RDS for PostgreSQL de cualquiera de las siguientes maneras.
Temas
Activación de DevOps Guru en la consola de RDS
Puede seguir varias rutas en la consola de Amazon RDS para activar DevOps Guru.
Temas
Activación de DevOps Guru cuando crea una base de datos RDS para PostgreSQL
El flujo de trabajo de creación incluye una configuración que activa la cobertura de DevOps Guru para su base de datos. Esta configuración se activa de forma predeterminada cuando elige la plantilla Production (Producción).
Para activar DevOps Guru cuando crea una base de datos RDS para PostgreSQL
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. -
Siga los pasos de Creación de una instancia de base de datos, hasta el paso en el que elige la configuración de supervisión pero sin incluirlo.
-
En Monitoring (Supervisión), elija Turn on Performance Insights (Activar Performance Insights). Para que DevOps Guru para RDS proporcione un análisis detallado de las anomalías de rendimiento, es necesario activar Performance Insights.
-
Elija Turn on DevOps Guru (Activar DevOps Guru).
-
Cree una etiqueta para la base de datos para que DevOps Guru pueda supervisarla. Haga lo siguiente:
-
En el campo de texto de Tag key (Clave de etiqueta), ingrese un nombre que comience por
Devops-Guru-
. -
En el campo de texto de Tag value (Valor de etiqueta), ingrese cualquier valor. Por ejemplo, si especifica
rds-database-1
para el nombre de la base de datos RDS para PostgreSQL, también puede introducirrds-database-1
como el valor de etiqueta.
Para obtener más información sobre las etiquetas, consulte "Use tags to identify resources in your DevOps Guru applications" (Usar etiquetas para identificar los recursos en las aplicaciones de DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
-
-
Complete los demás pasos proporcionados en Creación de una instancia de base de datos.
Activación de DevOps Guru desde el banner de notificación
Si sus recursos no están cubiertos por DevOps Guru, Amazon RDS se lo notifica con un banner en las siguientes ubicaciones:
-
La pestaña Monitoring (Supervisión) de una instancia de clúster de base de datos
-
Panel de Performance Insights
![Banner de DevOps Guru](images/devops-guru-enable-banner.png)
Para activar DevOps Guru para su base de datos RDS para PostgreSQL
-
En el banner, elija Turn on DevOps Guru for RDS (Activar DevOps Guru para RDS).
-
Ingrese un nombre y un valor de la clave de la etiqueta. Para obtener más información sobre las etiquetas, consulte "Use tags to identify resources in your DevOps Guru applications" (Usar etiquetas para identificar los recursos en las aplicaciones de DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
-
Elija Turn on DevOps Guru (Activar DevOps Guru).
Respuesta a un error de permisos al activar DevOps Guru
Si activa DevOps Guru desde la consola de RDS al crear una base de datos, es posible que RDS muestre el siguiente banner acerca de la ausencia de permisos.
![Banner con un error de permisos que faltan](images/devops-guru-permissions-error.png)
Para responder a un error de permisos
-
Conceda a su usuario o rol de IAM el rol administrado por el usuario
AmazonDevOpsGuruConsoleFullAccess
. Para obtener más información, consulte Configuración de las políticas de acceso de IAM para DevOps Guru para RDS. -
Abra la consola de RDS.
-
En el panel de navegación, seleccione Información sobre rendimiento.
-
Elija una instancia de base de datos en el clúster que acaba de crear.
-
Elija el conmutador para activar DevOps Guru para RDS.
-
Elija un valor de etiqueta. Para obtener más información, consulte "Use tags to identify resources in your DevOps Guru applications" (Usar etiquetas para identificar los recursos en las aplicaciones de DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
-
Elija Turn on DevOps Guru (Activar DevOps Guru).
Adición de recursos de RDS para PostgreSQL en la consola de DevOps Guru
Puede especificar su cobertura de recursos de DevOps Guru en la consola de DevOps Guru. Siga el paso descrito en Specify your DevOps Guru resource coverage (Especifique su cobertura de recursos DevOps Guru) en la Guía del usuario de Amazon DevOps Guru. Cuando edite los recursos analizados, elija una de las siguientes opciones:
-
Elija Todos los recursos de la cuenta para analizar todos los recursos admitidos, como las bases de datos RDS para PostgreSQL, en su Cuenta de AWS y región.
-
Elija Pilas de CloudFormation para analizar las bases de datos RDS para PostgreSQL que se encuentran en las pilas que usted elija. Para obtener más información, consulte el tema sobre usar pilas de AWS CloudFormation para identificar los recursos en sus aplicaciones de DevOps Guru en la Guía del usuario de Amazon DevOps Guru.
-
Elija Etiquetas para analizar las bases de datos RDS para PostgreSQL que ha etiquetado. Para obtener más información, consulte Use tags to identify resources in your DevOps Guru applications (Usar etiquetas para identificar los recursos en las aplicaciones de DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
Para obtener más información, consulte Enable DevOps Guru (Habilitar DevOps Guru) en la Guía del usuario de Amazon DevOps Guru.
Adición de recursos de RDS para PostgreSQL mediante AWS CloudFormation
Puede utilizar etiquetas para añadir cobertura de sus recursos de RDS para PostgreSQL a sus plantillas de CloudFormation. En el siguiente procedimiento, se asume que tiene una plantilla de CloudFormation tanto para la instancia de base de datos de RDS para PostgreSQL como para la pila de DevOps Guru.
Para especificar una instancia de base de datos de RDS para PostgreSQLmediante una etiqueta de CloudFormation
-
En la plantilla de CloudFormation para su instancia de base de datos, defina una etiqueta mediante un par clave/valor.
En el siguiente ejemplo, se asigna el valor
my-db-instance1
aDevops-guru-cfn-default
para una instancia de base de datos de RDS para PostgreSQL.MyDBInstance1: Type: "AWS::RDS::DBInstance" Properties: DBInstanceIdentifier: my-db-instance1 Tags: - Key: Devops-guru-cfn-default Value: devopsguru-my-db-instance1
-
En la plantilla de CloudFormation de su pila de DevOps Guru, especifique la misma etiqueta en el filtro de recopilación de recursos.
En el siguiente ejemplo, se configura DevOps Guru para proporcionar cobertura para el recurso con el valor de etiqueta
my-db-instance1
.DevOpsGuruResourceCollection: Type: AWS::DevOpsGuru::ResourceCollection Properties: ResourceCollectionFilter: Tags: - AppBoundaryKey: "Devops-guru-cfn-default" TagValues: - "devopsguru-my-db-instance1"
En el siguiente ejemplo, se proporciona cobertura para todos los recursos dentro del límite de la aplicación
Devops-guru-cfn-default
.DevOpsGuruResourceCollection: Type: AWS::DevOpsGuru::ResourceCollection Properties: ResourceCollectionFilter: Tags: - AppBoundaryKey: "Devops-guru-cfn-default" TagValues: - "*"
Para obtener más información, consulte AWS::DevOpsGuru::ResourceCollection y AWS::RDS::DBInstance en la Guía del usuario de AWS CloudFormation.