Detenga e inicie automáticamente una instancia de Amazon RDS DB mediante AWS Systems Manager Maintenance Windows - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Detenga e inicie automáticamente una instancia de Amazon RDS DB mediante AWS Systems Manager Maintenance Windows

Creado por Ashita Dsilva () AWS

Entorno: producción

Tecnologías: Gestión y gobierno; Gestión de costes; Bases de datos

AWSservicios: AWS Systems Manager; Amazon RDS

Resumen

Este patrón muestra cómo detener e iniciar automáticamente una instancia de base de datos de Amazon Relational Database Service (RDSAmazon) según un cronograma específico (por ejemplo, cerrar una instancia de base de datos fuera del horario laboral para reducir los costos) AWS Systems Manager mediante Maintenance Windows.

AWS Systems Manager La automatización proporciona los manuales AWS-StopRdsInstance y AWS-StartRdsInstance manuales para detener e iniciar las instancias de Amazon RDS DB. Esto significa que no necesita escribir una lógica personalizada con AWS Lambda funciones ni crear una regla de Amazon CloudWatch Events.

Systems Manager ofrece dos funciones para programar tareas: State Manager y Maintenance Windows. State Manager establece y mantiene la configuración de estado requerida para los recursos de su cuenta de Amazon Web Services (AWS) una vez o según un cronograma específico. Maintenance Windows ejecuta tareas en los recursos de su cuenta durante un período de tiempo específico. Si bien puede utilizar este patrón con State Manager o Maintenance Windows, le recomendamos que utilice Maintenance Windows, ya que puede ejecutar una o más tareas en función de la prioridad asignada y también puede ejecutar AWS Lambda funciones y AWS Step Functions tareas. Para obtener más información sobre State Manager y Maintenance Windows, consulte Elegir entre State Manager y Maintenance Windows en la documentación de Systems Manager.

Este patrón proporciona pasos detallados para configurar dos ventanas de mantenimiento independientes que utilizan expresiones cron para detener y, a continuación, iniciar una instancia de Amazon RDS DB. 

Requisitos previos y limitaciones

Requisitos previos 

  • Una activa Cuenta de AWS.

  • Una instancia de Amazon RDS DB existente que desee detener e iniciar según un cronograma específico.

  • Expresiones cron para el cronograma requerido. Por ejemplo, la expresión cron(0 9 ? * MON-FRI *) ejecuta la tarea a las 09:00 todos los lunes, martes, miércoles, jueves y viernes. Para obtener más información, consulte Expresiones cron y de tasa para ventanas de mantenimiento en la documentación de Systems Manager.

  • Familiaridad con Systems Manager.

  • Permisos para iniciar y detener la RDS instancia. Para obtener más información, consulta la sección Epics.

Limitaciones

  • Una instancia de Amazon RDS DB se puede detener durante un máximo de siete días a la vez. Transcurridos siete días, la instancia de la base de datos se reinicia automáticamente para garantizar que reciba las actualizaciones de mantenimiento necesarias.

  • No puede detener una instancia de base de datos que tenga una réplica de lectura o que sea una réplica de lectura.

  • No puede detener una instancia de base de datos de Amazon RDS for SQL Server en una configuración Multi-AZ.

  • Service quotas se aplican a Maintenance Windows y Systems Manager Automation. Para obtener más información sobre las cuotas de servicio, consulte los AWS Systems Manager puntos finales y las cuotas en la Referencia general de AWS documentación. 

  • Algunas Servicios de AWS no están disponibles en todos Regiones de AWS. Para ver la disponibilidad por región, consulta Servicios de AWS por región. Para ver puntos de enlace específicos, consulta la página de puntos de enlace y cuotas del servicio y elige el enlace del servicio.

Arquitectura

El siguiente diagrama muestra el flujo de trabajo para detener e iniciar automáticamente una instancia de Amazon RDS DB.

Flujo de trabajo para detener e iniciar automáticamente una instancia de Amazon RDS DB

El flujo de trabajo tiene los siguientes pasos:

1. Cree una ventana de mantenimiento y utilice expresiones cron para definir la programación de parada e inicio de sus instancias de Amazon RDS DB.

2. Registre una tarea de automatización de Systems Manager en el periodo de mantenimiento mediante el manual de procedimientos AWS-StopRdsInstance o AWS-StartRdsInstance.

3. Registre un objetivo en la ventana de mantenimiento mediante un grupo de recursos basado en etiquetas para sus instancias de Amazon RDS DB.

Pila de tecnología

  • AWS CloudFormation

  • AWS Identity and Access Management (IAM)

  • Amazon RDS

  • Systems Manager

Automatizar y escalar

Puede detener e iniciar varias RDS instancias de base de datos de Amazon al mismo tiempo etiquetando las RDS instancias de base de datos de Amazon necesarias, creando un grupo de recursos que incluya todas las instancias de base de datos etiquetadas y registrando este grupo de recursos como destino para el período de mantenimiento.

Herramientas

Epics

TareaDescripciónHabilidades requeridas

Configure el rol IAM de servicio para Systems Manager Automation.

Inicie sesión AWS Management Console y cree un rol de servicio para Systems Manager Automation. Puede usar uno de los dos métodos siguientes para crear este rol de servicio:

El flujo de trabajo de automatización de Systems Manager invoca a Amazon RDS mediante un rol de servicio para realizar acciones de inicio y parada en la RDS instancia de base de datos de Amazon.

El rol de servicio debe configurarse con la siguiente política en línea que tenga permisos para iniciar y detener la RDS instancia de base de datos de Amazon:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RdsStartStop", "Effect": "Allow", "Action": [ "rds:StopDBInstance", "rds:StartDBInstance" ], "Resource": "<RDS_Instance_ARN>" }, { "Sid": "RdsDescribe", "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" } ] }

Asegúrese de sustituirlo por el nombre <RDS_Instance_ARN> de recurso de Amazon (ARN) de su RDS instancia de base de datos de Amazon.

Si no estás familiarizado con el uso de IAM políticas y funciones, sigue las instrucciones de la sección Descripción general de la solución de la entrada del AWS Systems Manager blog Programar RDS parada en Amazon y empezar a usar.

Importante: asegúrate de registrar la función ARN de servicio.

AWSadministrador
TareaDescripciónHabilidades requeridas

Etiquete las instancias de Amazon RDS DB.

Abra la RDSconsola de Amazon y etiquete las instancias de Amazon RDS DB que desee añadir al grupo de recursos. Una etiqueta es un metadato asignado a un AWS recurso y consta de un par clave-valor. Le recomendamos que utilice Acción como clave de etiqueta y StartStopcomo valor.

Para obtener más información al respecto, consulta Cómo añadir, publicar y eliminar etiquetas en la RDS documentación de Amazon.

AWSadministrador

Cree un grupo de recursos para sus instancias de Amazon RDS DB etiquetadas.

Abra la AWS Resource Groups consola y cree un grupo de recursos basado en la etiqueta que creó para sus instancias de Amazon RDS DB.

En Criterios de agrupación, asegúrese de elegir AWS:::RDS: DBInstance para el tipo de recurso y, a continuación, proporcione el par clave-valor de la etiqueta (por ejemplo, «Acción-StartStop»). Esto garantiza que el servicio solo compruebe las RDS instancias de base de datos de Amazon y no otros recursos que tengan esta etiqueta. Asegúrese de registrar el nombre del grupo de recursos.

Para obtener más información y pasos detallados, consulte Crear una consulta basada en etiquetas y crear un grupo en la AWS Resource Groups documentación. 

AWSadministrador
TareaDescripciónHabilidades requeridas

Crear un período de mantenimiento.

  1. Abra la consola de Systems Manager, seleccione Maintenance Windows y, a continuación, seleccione Create a maintenance window. Proporcione un nombre para la ventana de mantenimiento (por ejemplo, "StopRdsInstance«), introduzca una descripción y, a continuación, desactive la casilla Permitir objetivos no registrados.

  2. Elija la expresión CRON /Rate y proporcione la expresión de programación para definir cuándo deben detenerse las instancias de Amazon RDS DB. Introduzca para la duración y para dejar de iniciar las tareas. De forma predeterminada, se muestra UTC la zona horaria. Puede cambiar la zona horaria para iniciar el período de mantenimiento en función de la marca de tiempo definida en su expresión cron.

  3. Elija Create maintenance window (Crear periodo de mantenimiento). El sistema vuelve a la página del periodo de mantenimiento y el estado del periodo de mantenimiento es Habilitado.

Importante: la tarea de detener la instancia de la base de datos se ejecuta casi al instante cuando se inicia y no abarca todo el período de mantenimiento. Este patrón proporciona los valores mínimos de duración y parada de las tareas de inicio, ya que son los parámetros necesarios para un período de mantenimiento.

Para obtener más información y pasos detallados, consulte Crear una ventana de mantenimiento (consola) en la documentación de Systems Manager.

AWSadministrador

Asigne un objetivo al periodo de mantenimiento.

  1. En la consola de Systems Manager, elija Maintenance Windows, Actions y, a continuación, Register targets.

  2. En el área Objetivos, especifique Elegir un grupo de recursos y, a continuación, elija el nombre de un grupo de recursos existente en su cuenta.

  3. Para los tipos de recursos, elija AWS:::RDS: DBInstance y, a continuación, elija Registrar destino.

Para obtener más información y pasos detallados, consulte Asignar objetivos a una ventana de mantenimiento (consola) en la documentación de Systems Manager.

AWSadministrador

Asigne una tarea al periodo de mantenimiento.

  1. En la consola de Systems Manager, elija Maintenance Windows y, a continuación, elija su ventana de mantenimiento. Seleccione Acciones y, a continuación, seleccione Registrar la tarea de automatización.

  2. En Documento, elija AWS- StopRdsInstance.

  3. En la sección Objetivos, elija Seleccionar grupos de objetivos registrados y, a continuación, elija el objetivo de la ventana de mantenimiento que registró en la ventana de mantenimiento actual.

  4. Para Control de velocidad, especifique el 100 % para Simultaneidad y Umbral de error. Puede cambiar los valores de Control de velocidad según sus requisitos para la simultaneidad de tareas y el umbral de error. Para obtener más información al respecto, consulte Acerca de los umbrales de error y simultaneidad en la documentación de Systems Manager.

  5. En la sección Función de IAM servicio, en Función de servicio, deje esta casilla en blanco o cree su propia función personalizada. Si deja la casilla en blanco, Systems Manager crea automáticamente la función vinculada al servicio AWSServiceRoleForAmazonSSMy, a continuación, la asocia a la tarea. Para crear su propia función personalizada, consulte Crear una función de servicio personalizada para las ventanas de mantenimiento (consola) y, a continuación, asocie esa función personalizada a la tarea.

  6. En la sección Parámetros a introducir, especifique los siguientes parámetros para el manual de procedimientos:

    • InstanceId: {{RESOURCE_ID}}

      Nota: Para InstanceId, se utiliza un pseudoparámetro para extraer el ID de recurso de Amazon RDS DB delARN. Para obtener más información sobre los pseudoparámetros, consulte Acerca de los pseudoparámetros en la documentación de Systems Manager.

    • AutomationAssumeRole: proporcione el rol ARN de servicio que creó para Systems Manager Automation.

  7. Seleccione Registrar tarea de Automation 

Importante: la opción Rol de servicio define el rol de servicio necesario para que el período de mantenimiento ejecute las tareas. Sin embargo, este rol no es idéntico al rol de servicio que creó anteriormente para Systems Manager Automation.

Para obtener más información y pasos detallados, consulte Asignar tareas a una ventana de mantenimiento (consola) en la documentación de Systems Manager.

AWSadministrador
TareaDescripciónHabilidades requeridas

Configure una ventana de mantenimiento para iniciar las instancias de Amazon RDS DB.

Repita los pasos del épico Configurar un período de mantenimiento para detener las RDS instancias de base de datos de Amazon para configurar otro período de mantenimiento para iniciar las RDS instancias de base de datos de Amazon a una hora programada.

Importante: debe realizar los siguientes cambios al configurar el período de mantenimiento para iniciar las instancias de la base de datos:

  • Use un nombre nuevo para la ventana de mantenimiento (por ejemplo, "StartRdsInstance«).

  • Sustituya la expresión cron por la expresión cron que desee utilizar para iniciar las instancias de la base de datos.

  • Sustituya el manual de procedimientos de AWS-StopRdsInstance por AWS-StartRdsInstance en Tarea.

AWSadministrador

Recursos relacionados