Automatice las tareas de bases de datos en la edición SQL Server Express que se ejecuta en Amazon EC2 mediante AWS Lambda un programador de tareas - 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.

Automatice las tareas de bases de datos en la edición SQL Server Express que se ejecuta en Amazon EC2 mediante AWS Lambda un programador de tareas

Subhani Shaik, Amazon Web Services

Resumen

Este patrón muestra cómo programar y administrar las tareas de la base de datos en SQL Server Express Edition, que es la versión gratuita de SQL Server. Sin embargo, SQL Server Express Edition carece del servicio de agentes de SQL Server, que normalmente gestiona las operaciones automatizadas de las bases de datos. Este patrón explica cómo puede utilizar el Programador de tareas y Lambda como alternativa para automatizar las tareas de bases de datos en la edición SQL Server Express que se ejecuta en una instancia de Amazon Elastic Compute Cloud (Amazon EC2).

El Programador de tareas es una utilidad integrada en el sistema Windows que facilita la ejecución automática de tareas rutinarias. Proporciona un mecanismo para programar y administrar las operaciones automatizadas, eliminando la necesidad de intervención manual en los procesos repetititvos. AWS Lambda es un servicio de computación sin servidor que ejecuta código automáticamente en respuesta a los eventos, sin necesidad de administrar la infraestructura subyacente.

Requisitos previos y limitaciones

Requisitos previos 

  • ¿Un activo Cuenta de AWS

  • Una nube privada virtual (VPC) creada con Amazon Virtual Private Cloud (Amazon VPC)

  • Una EC2 instancia de Amazon con Windows Server

  • Volúmenes de Amazon Elastic Block Store (Amazon EBS) que están conectados a una instancia de EC2 Amazon con Windows Server

  • Elementos binarios de SQL Server Express Edition

Limitaciones

  • Para obtener información sobre las limitaciones de las características de SQL Server Express Edition, consulte el sitio web de Microsoft.

  • Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte AWS Services by Region. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.

Versiones de producto

  • SQL Server 2016 o posterior con SQL Server Express Edition

Arquitectura

El siguiente diagrama muestra una EC2 instancia de Amazon que se ejecuta con la edición SQL Server Express instalada. Se puede acceder a la instancia a través del cliente de protocolo de escritorio remoto (RDP) o desde AWS Systems Manager Session Manager. AWS Key Management Service (AWS KMS) gestiona el cifrado de datos de los volúmenes de Amazon EBS para garantizar la data-at-rest seguridad. La infraestructura también incluye AWS Identity and Access Management (IAM), que proporciona control de acceso y administra los permisos para la ejecución de las funciones de Lambda. Amazon Simple Storage Service (Amazon S3) guarda las funciones de Lambda.

Una EC2 instancia de Amazon que se ejecuta con la edición SQL Server Express instalada en una subred privada.

Tools (Herramientas)

Servicios de AWS

  • Amazon Elastic Block Store (Amazon EBS) proporciona volúmenes de almacenamiento a nivel de bloques para su uso con las instancias de Amazon. EC2

  • Amazon Elastic Compute Cloud (Amazon EC2) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.

  • AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

  • AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • AWS Systems Manager Session Manageres una AWS Systems Manager herramienta totalmente gestionada. Con Session Manager, puede gestionar sus EC2 instancias de Amazon, dispositivos perimetrales, servidores locales y máquinas virtuales (VMs).

  • Amazon Virtual Private Cloud (Amazon VPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.

Otras herramientas

  • Microsoft SQL Server Management Studio (SSMS) es una herramienta para administrar SQL Server, que incluye el acceso, la configuración y la administración de los componentes de SQL Server.

  • Python es un lenguaje de programación informático de uso general. Puede usar esta herramienta para crear aplicaciones, automatizar tareas y desarrollar servicios en Nube de AWS.

  • El Programador de tareas es una herramienta de Microsoft que puede usar para programar tareas rutinarias en su equipo automáticamente.

Prácticas recomendadas

Epics

TareaDescripciónHabilidades requeridas

Implemente una EC2 instancia de Amazon.

Para crear una EC2 instancia de Amazon, abra la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/y seleccione una imagen de máquina de Amazon (AMI) de la lista de instancias disponibles para Windows Server.

Para obtener más información, consulta Cómo lanzar una EC2 instancia de Amazon en la AWS documentación.

ADMINISTRADOR DE BASES DE DATOS (DBA), AWS DevOps

Instale SQL Server Express Edition.

Para instalar SQL Server Express Edition, siga los pasos que se indican a continuación:

  1. Para conectarte a tu EC2 instancia de Amazon, elige una opción:

  2. Para descargar la instancia de SQL Server Express Edition necesaria, vaya a Descargas de SQL Server en el sitio web de Microsoft.

  3. Para instalar SQL Server Express Edition, siga las instrucciones de Planificación de una instalación de SQL Server en el sitio web de Microsoft.

ADMINISTRADOR DE BASES DE DATOS (DBA), AWS DevOps
TareaDescripciónHabilidades requeridas

Identifique las tareas rutinarias.

Identifique las tareas rutinarias que desea automatizar. Por ejemplo, las siguientes tareas pueden automatizarse:

  • Copias de seguridad de bases de datos (registro completo, diferencial y de transacciones)

  • Mantenimiento y reorganización de índices

  • Actualizaciones de estadísticas

  • Operaciones específicas para cada aplicación

  • Limpieza o archivado de datos

Administrador de base de datos

Preparación de scripts de SQL

Para preparar scripts de SQL, siga los pasos que se detallan a continuación:

  1. Cree consultas de SQL para cada tarea de mantenimiento. A continuación, tiene un ejemplo de consulta de T-SQL para realizar una copia de seguridad de una base de datos específica: Backup Database <Database_Name> To Disk='C:\Backups\Database_Name.bak'

  2. Guarde el archivo de script como <File Name>.sql. A continuación, guarde los scripts en una ubicación accesible de la unidad local del servidor en la EC2 instancia de Amazon o en un recurso compartido de archivos de red.

Administrador de base de datos

Configuración de permisos de acceso

Para configurar permisos de acceso, haga lo siguiente:

  1. Configure los permisos adecuados del sistema de archivos. Para obtener instrucciones, consulte Configuración de los permisos del sistema de archivos para el acceso al motor de la base de datos en el sitio web de Microsoft.

  2. Compruebe que la cuenta de servicio de SQL Server tenga el acceso necesario. Para obtener instrucciones, consulte Configuración de cuentas de servicio y permisos de Windows en el sitio web de Microsoft.

  3. Compruebe la conectividad de red de los recursos compartidos remotos. Para obtener más información, consulte Acceder a los datos mediante recursos compartidos de archivos en la AWS documentación.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Cree archivos por lotes.

  • Para crear un archivo por lotes, utilice un editor de texto para escribir el siguiente comando. Sustituya los parámetros username y password por sus propios valores. A continuación, guarde el archivo como <Name>.bat.

sqlcmd -S servername -U username -P password -i <T-SQL query path.sql>
  • Para crear un archivo por lotes para tareas de SQL, utilice un editor de texto y escriba los siguientes comandos. Sustituya los parámetros ServerName, DatabaseName, username y password por sus propios valores. A continuación, guarde el archivo como <Name>.bat.

@echo off sqlcmd -S [ServerName] -d [DatabaseName] -U username -P password -i "PathToSQLScript\Script.sql" -o "PathToOutput\Output.txt"
AWS DevOps, administrador de bases de datos

Cree tareas en el Programador de tareas.

Para crear una tarea en el Programador de tareas, siga estos pasos:

  1. Para abrir el Programador de tareas, escriba taskschd.msc en la búsqueda de Windows.

  2. Seleccione el menú de acción y, a continuación, seleccione Crear tarea básica.

  3. En Nombre, proporcione un nombre para la tarea y, a continuación, elija Siguiente.

  4. En Desencadenador, seleccione la opción según la cual quiere que comience la tarea y, a continuación, elija Siguiente.

  5. Proporcione la información de inicio u repetición de la tarea y, a continuación, seleccione Siguiente.

  6. En la sección Acción, seleccione Iniciar un programa y, a continuación, seleccione Siguiente.

  7. En Programa/script, especifique la ruta del archivo por lotes que creó en la tarea anterior y, a continuación, elija Siguiente.

  8. Seleccione Finalizar.

Para ejecutar la tarea manualmente, haga clic con el botón derecho en la tarea recién creada y, a continuación, seleccione Ejecutar.

Administrador de base de datos

Consulte el estado de la tarea.

Para ver el estado de una tarea en el Programador de tareas, siga estos pasos:

  1. En el programador de tareas, vaya a la biblioteca del Programador de tareas, que muestra todas las tareas.

  2. Para ver el estado de la tarea que creó anteriormente, selecciónela y, a continuación, vaya a la pestaña Historial.

ADMINISTRADOR DE BASES DE DATOS (DBA), AWS DevOps
TareaDescripciónHabilidades requeridas

Implemente la solución.

Para implementar la solución de este patrón, siga los pasos que se describen a continuación:

  1. Creación de una función de Lambda. Para obtener instrucciones, consulte Crear su primera función Lambda en la AWS documentación.

  2. Programación de la función de Lambda. Para obtener instrucciones, consulte Invocar una función Lambda según un cronograma en AWS la documentación.

  3. Ejecute consultas de T-SQL. Para obtener más información, consulte el tutorial: Uso de una función Lambda para acceder a una base de datos de Amazon RDS en la documentación. AWS El tutorial explica cómo conectar bases de datos de Amazon RDS desde funciones de Lambda para ejecutar consultas de SQL.

AWS DevOps, DevOps ingeniero

Resolución de problemas

ProblemaSolución

Problemas con Lambda

Para obtener ayuda con los errores y problemas que pueda encontrar al usar Lambda AWS Lambda, consulte Solución de problemas en Lambda en la AWS documentación.

Recursos relacionados