Programaciones de ejemplo - Programador de instancias de AWS

Programaciones de ejemplo

El programador de instancias de AWS permite iniciar y detener instancias de Amazon Elastic Compute Cloud (Amazon EC2) y de Amazon Relational Database Service (Amazon RDS) de forma automática. En la sección siguiente se proporcionan algunas programaciones de ejemplo que se pueden adaptar a muchos casos de uso habituales.

Horas de trabajo estándar de 9:00 h a 17:00 h

Esta programación muestra cómo ejecutar instancias los días laborables de 9:00 h a 17:00 h en Londres.

Periodos

Este período iniciará instancias a las 9:00 h y las detendrá a las 17:00 h los días laborables (lun.-vier.).

Campo Tipo Valor

begintime

String

09:00

endtime

String

16:59

name

String

weekdays-9-5

weekdays

StringSet

mon-fri

Programación

El nombre de la programación proporciona el valor de etiqueta que se debe aplicar a las instancias y la zona horaria que se utilizará.

Campo Tipo Valor

name

String

london-working-hours

periods

StringSet

weekdays-9-5

timezone

String

Europe/London

Etiqueta de instancia

Para aplicar esta programación a las instancias, debe agregar la etiqueta Schedule=london-working-hours a estas. Si cambia el nombre de etiqueta predeterminado en el parámetro Nombre de etiqueta del programador de instancias de AWS CloudFormation, su etiqueta será diferente. Por ejemplo, si ha especificado Sked como su nombre de etiqueta, esta será Sked=london-working-hours. Para obtener más información, consulte Etiquetar los recursos en la Guía del usuario de Amazon Elastic Compute Cloud.

CLI del programador

Para configurar la programación anterior mediante la CLI del programador de instancias, utilice los siguientes comandos:

scheduler-cli create-period --stack <stackname> --name weekdays-9-5 --weekdays mon-fri --begintime 9:00 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name london-working-hours --periods weekdays-9-5 --timezone Europe/London

Europe/London

Recurso personalizado

La siguiente plantilla de CloudFormation creará la programación anterior mediante el recurso personalizado de programación.

Para implementar esta plantilla, deberá proporcionar el nombre de recurso de Amazon (ARN) ServiceInstanceScheduleServiceToken que encontrará en la consola de AWS CloudFormation. Para ello, seleccione la pila central del programador de instancias implementada anteriormente y, a continuación, seleccione Salidas.

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  LondonWorkingWeek:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: london-working-hours
      Description: run instances from 9am to 5pm in London on weekdays
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: Europe/London
      Periods:
     - Description: 9am to 5pm on weekdays
        BeginTime: '09:00'
        EndTime: '16:59'
        WeekDays: mon-fri

Detención de instancias después de las 17:00 h

Las instancias se pueden iniciar libremente en cualquier momento del día y esta programación garantizará que se les envíe un comando de detención de forma automática todos los días a las 17:00 h (ET).

Periodos

Este período detendrá las instancias todos los días a las 17:00 h.

Campo Tipo Valor

endtime

String

16:59

name

String

stop-at-5

Programación

El nombre de la programación proporciona el valor de etiqueta que se debe aplicar a las instancias y la zona horaria que se utilizará.

Campo Valor

name

String

stop-at-5-new-york

periods

StringSet

stop-at-5

timezone

String

America/New York

Etiqueta de instancia

Para aplicar esta programación a las instancias, debe agregar la etiqueta Schedule=stop-at-5-new-york a estas. Si ha cambiado el nombre de etiqueta predeterminado en el parámetro Nombre de etiqueta del programador de instancias de AWS CloudFormation, su etiqueta será diferente. Por ejemplo, si ha especificado Sked como su nombre de etiqueta, esta será Sked=stop-at-5-new-york. Para obtener más información, consulte Etiquetar los recursos en la Guía del usuario de Amazon Elastic Compute Cloud.

CLI del programador

Para configurar la programación anterior mediante la CLI del programador de instancias, utilice los siguientes comandos:

scheduler-cli create-period --stack <stackname> --name stop-at-5 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name stop-at-5-new-york --periods stop-at-5 --timezone America/New_York

Recurso personalizado

La siguiente plantilla de CloudFormation creará la programación anterior mediante el recurso personalizado de programación.

Para implementar esta plantilla, deberá proporcionar el ARN ServiceInstanceScheduleServiceToken que encontrará en la consola de AWS CloudFormation. Para ello, haga clic en la pila central del programador de instancias implementada anteriormente y seleccione Salidas.

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopAfter5:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: stop-at-5-new-york
      Description: stop instances at 5pm ET every day
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: stop at 5pm
        EndTime: '16:59'

Detención de instancias durante el fin de semana

Esta programación muestra cómo ejecutar instancias de lunes a las 9:00 h (ET) a viernes a las 17:00 h (ET). Como los lunes y viernes no son días completos, esta programación incluye tres períodos para su adaptación: lunes, martes a jueves y viernes.

Periodos

El primer período inicia las instancias etiquetadas el lunes a las 9:00 h y las detiene a medianoche. Este período incluye los siguientes campos y valores:

Campo Tipo Valor

begintime

String

09:00

endtime

String

23:59

name

String

mon-start-9am

weekdays

StringSet

mon

El segundo período ejecuta las instancias etiquetadas todo el día de martes a jueves. Este período incluye los siguientes campos y valores:

Campo Valor

name

String

tue-thu-full-day

weekdays

StringSet

tue-thu

El tercer período detiene las instancias etiquetadas el viernes a las 17:00 h. Este período incluye los siguientes campos y valores:

Campo Valor

begintime

String

00:00

endtime

String

16:59

name

String

fri-stop-5pm

weekdays

StringSet

fri

Programación

La programación combina los tres períodos en la programación para instancias etiquetadas. La programación incluye los siguientes campos y valores:

Campo Valor

name

String

mon-9am-fri-5pm

periods

StringSet

mon-start-9am,tue-thu-full-day,fri-stop-5pm

timezone

String

America/New_York

Etiqueta de instancia

Para aplicar esta programación a las instancias, debe agregar la etiqueta Schedule=mon-9am-fri-5pm a estas. Tenga en cuenta que si ha cambiado el nombre de etiqueta predeterminado en el parámetro Nombre de etiqueta del programador de instancias de AWS CloudFormation, su etiqueta será diferente. Por ejemplo, si ha especificado Sked como su nombre de etiqueta, esta será Sked=mon-9am-fri-5pm. Para obtener más información, consulte Etiquetar los recursos en la Guía del usuario de Amazon Elastic Compute Cloud.

CLI del programador

Para configurar la programación anterior mediante la CLI del programador de instancias, utilice los siguientes comandos:

scheduler-cli create-period --stack <stackname> --name
mon-start-9am --weekdays mon --begintime 9:00 --endtime 23:59
scheduler-cli create-period --stack <stackname> --name
tue-thu-full-day --weekdays tue-thu
scheduler-cli create-period --stack <stackname> --namefri-stop-5pm --weekdays fri --begintime 0:00 --endtime 17:00

scheduler-cli create-schedule --stack <stackname> --name
mon-9am-fri-5pm --periods
mon-start-9am,tue-thu-full-day,fri-stop-5pm -timezone
America/New_York

Recurso personalizado

La siguiente plantilla de CloudFormation creará la programación anterior mediante el recurso personalizado de programación.

Para implementar esta plantilla, deberá proporcionar el nombre de recurso de Amazon (ARN) ServiceInstanceScheduleServiceToken que encontrará en la consola de AWS CloudFormation. Para ello, seleccione la pila central del programador de instancias implementada anteriormente y, a continuación, seleccione Salidas.

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopOnWeekends:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: mon-9am-fri-5pm
      Description: start instances at 9am on monday and stop them at 5pm on friday
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: 9am monday start
        BeginTime: '09:00'
        EndTime: '23:59'
        WeekDays: mon
      - Description: all day tuesday-thursday
        WeekDays: tue-thu
      - Description: 5pm friday stop
        BeginTime: '00:00'
        EndTime: '16:59'
        WeekDays: fri

Recursos para soluciones

Los siguientes recursos se crean como parte de la pila del programador de instancias de AWS.

Nombre del recurso Tipo Descripción

Principal

AWS::Lambda::Function

Función de Lambda del programador de instancias de AWS.

Ayudante de configuración del programador

Custom::ServiceSetup

Almacena valores de configuración global en Amazon DynamoDB.

Permiso de invocación del programador

AWS::Lambda::Permission

Permite que el evento de Amazon CloudWatch invoque la función de AWS Lambda del programador de instancias.

Registros del programador

AWS::Logs::LogGroup

Grupo de registro de CloudWatch correspondiente al programador de instancias.

Política del programador

AWS::IAM::Policy

Política que permite al programador realizar acciones de inicio y detención, cambiar atributos de instancia de Amazon EC2, establecer etiquetas y acceder a recursos del programador.

Regla del programador

AWS::Events::Rule

Regla de eventos de Amazon EventBridge que invoca la función de Lambda del programador.

Regla de eventos de métricas de configuración

AWS::Events::Rule

Regla de eventos de Amazon EventBridge que invoca de forma periódica la función de métricas anonimizadas de descripción de la configuración. Se deshabilita cuando las métricas anonimizadas están deshabilitadas.

Tabla de estados

AWS::DynamamoDB::Table

Tabla de DynamoDB que almacena el último estado deseado de las instancias.

Tabla de configuración

AWS::DynamamoDB::Table

Tabla de DynamoDB que almacena datos globales en relación con la configuración, las programaciones y los períodos.

Tema de SNS del programador de instancias

AWS::SNS::Topic

Envía mensajes de advertencia y error a las direcciones de correo electrónico suscritas.