Arquitectura - Programador de instancias 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.

Arquitectura

En esta sección se proporcionan un diagrama de arquitectura de implementación de referencia, consideraciones sobre el diseño de AWS Well-Architected, componentes de seguridad, configuraciones del programador y los servicios de AWS utilizados en esta solución.

Diagrama de arquitectura

Al implementar esta solución, se implementan los siguientes componentes en su cuenta de AWS:

Programador de instancias en la nube de AWS

InstanceScheduler arquitectura
  1. Una EventBridge regla de Amazon activa la función Lambda de orquestación a intervalos configurables (predeterminado: cada 5 minutos).

  2. La EventBridge regla invoca una función de orquestación de AWS Lambda que consulta la tabla de configuración de DynamoDB para identificar los objetivos de programación activos. A continuación, el orquestador invoca funciones Lambda de programación paralela para cada objetivo activo.

  3. Las definiciones y los períodos de programación se almacenan en una tabla de configuración de Amazon DynamoDB. Puede definir cualquier número de programas y períodos en esta tabla para controlar cuándo se inician y se detienen las instancias.

  4. Una tabla de registro de DynamoDB realiza un seguimiento automático de todos los recursos gestionados. Cuando los recursos se etiquetan para su programación, se registran en esta tabla en respuesta a los eventos de etiquetado de AWS.

  5. Cada función Lambda de programación describe los recursos etiquetados, evalúa sus planificaciones con respecto a la hora actual y ejecuta las acciones de inicio o parada adecuadas.

    1. En el caso de las instancias EC2, si una operación de inicio falla debido a una capacidad insuficiente, se puede configurar la solución para intentar cambiar el tamaño de la instancia a tipos de instancia alternativos antes de volver a intentar la operación de inicio.

  6. La administración de la programación está disponible a través de la consola de DynamoDB, la herramienta CLI del programador o los recursos personalizados de AWS. CloudFormation La solución se implementa con varios programas de ejemplo preconfigurados.

  7. Las implementaciones multicuenta utilizan una arquitectura hub-spoke en la que las cuentas radiales se registran automáticamente en la cuenta hub. Los spoke stacks deben implementarse en la misma región que el hub stack y deben contar con la aprobación previa del hub stack o de miembros de la misma organización de AWS.

  8. La solución publica los eventos de programación y registro de los EventBridge autobuses en la cuenta hub (eventos globales) y en las cuentas de spoke (eventos locales por región).

nota

Los CloudFormation recursos de AWS se crean a partir de construcciones (AWS CDK).

Todas las funciones de Lambda de esta solución utilizan AWS IAM para los requisitos de permisos de sus recursos y AWS KMS para el cifrado de las tablas de DynamoDB y Amazon Simple Notification Service (tema de Amazon SNS).

Cada vez que la solución realiza un intervalo de programación, comprueba el estado actual de cada instancia debidamente etiquetada con respecto al estado objetivo (definido por uno o varios períodos en una programación de la etiqueta de instancia) en la programación asociada. A continuación, el intervalo de programación aplica la acción de inicio o detención adecuada, según sea necesario.

Por ejemplo, si la función de Lambda se invoca un viernes a las 9:00 h (ET) e identifica una instancia de base de datos de RDS o EC2 detenida con la etiqueta Schedule=office-hours, buscará en Amazon DynamoDB los detalles de configuración de la programación del horario de oficina. Si la programación del horario de oficina contiene un período que indica que la instancia debe ejecutarse de lunes a viernes de 9:00 a 17:00 h (ET), la función de Lambda iniciará esa instancia.

La función Lambda también registra información sobre sus recursos y la muestra en un panel opcional de Amazon CloudWatch Custom. En la información registrada se incluyen el número de instancias etiquetadas para cada programación, los tamaños de esas instancias y si actualmente se encuentran en estado de ejecución o detenidas. Para obtener más información sobre este panel personalizado, consulte Panel de información operativa.

nota

Detener una instancia de Amazon EC2 y terminar una instancia de Amazon EC2 son dos cosas distintas. De forma predeterminada, las instancias de Amazon EC2 están configuradas para detenerse al apagar, no para terminarse, pero este comportamiento se puede modificar. Antes de usar esta solución, compruebe que las instancias están configuradas para detenerse o terminarse, según corresponda.