Exemplos de agendamento - Agendador de instâncias na AWS

Exemplos de agendamento

O Agendador de instâncias na AWS permite iniciar e interromper automaticamente instâncias do Amazon Elastic Compute Cloud (Amazon EC2) e do Amazon Relational Database Service (Amazon RDS). A seção a seguir fornece alguns exemplos de agendamento que podem ser adaptados a muitos casos de uso comuns.

Horas de trabalho padrão 9–17

Esse agendamento mostra como executar instâncias nos dias úteis, das 9h às 17h, em Londres.

Períodos

Esse período iniciará as instâncias às 9h e as interromperá às 17h nos dias úteis (de segunda a sexta).

Campo Tipo Valor

begintime

String

09:00

endtime

String

16:59

name

String

weekdays-9-5

weekdays

StringSet

mon-fri

Agendamento

O nome do agendamento fornece o valor da tag que deve ser aplicado às instâncias e o fuso horário que será usado.

Campo Tipo Valor

name

String

london-working-hours

periods

StringSet

weekdays-9-5

timezone

String

Europe/London

Tag de instância

Para aplicar esse agendamento às instâncias, adicione a tag Schedule=london-working-hours às instâncias. Se você alterar o nome da tag padrão no parâmetro Nome da tag do Agendador de instâncias do AWS CloudFormation, sua tag será diferente. Por exemplo, se você inseriu Sked como nome da tag, sua tag será Sked=london-working-hours. Para obter mais informações, consulte Marque seus recursos no Guia do usuário do Amazon Elastic Compute Cloud.

CLI do agendador

Para configurar o agendamento acima usando a CLI do Agendador de instâncias, use os seguintes 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

O modelo do CloudFormation a seguir criará o agendamento acima usando o recurso personalizado de agendamento.

Para implantar esse modelo, você precisará fornecer o ARN ServiceInstanceScheduleServiceToken, que pode ser encontrado no console do AWS CloudFormation clicando na Pilha do hub do Agendador de instâncias implantada anteriormente e selecionando Saídas.

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

Interromper instâncias após 17h

As instâncias podem ser iniciadas livremente a qualquer hora do dia e esse agendamento garantirá que um comando stop seja enviado automaticamente a elas às 17h ET todos os dias.

Períodos

Esse período interromperá as instâncias às 17h todos os dias.

Campo Tipo Valor

endtime

String

16:59

name

String

stop-at-5

Agendamento

O nome do agendamento fornece o valor da tag que deve ser aplicado às instâncias e o fuso horário que será usado.

Campo Valor

name

String

stop-at-5-new-york

periods

StringSet

stop-at-5

timezone

String

America/New York

Tag de instância

Para aplicar esse agendamento às instâncias, adicione a tag Schedule=stop-at-5-new-york às instâncias. Se você tiver alterado o nome da tag padrão no parâmetro Nome da tag do Agendador de instâncias do AWS CloudFormation, sua tag será diferente. Por exemplo, se você inseriu Sked como nome da tag, sua tag será Sked=stop-at-5-new-york. Para obter mais informações, consulte Marque seus recursos no Guia do usuário do Amazon Elastic Compute Cloud.

CLI do agendador

Para configurar o agendamento acima usando a CLI do Agendador de instâncias, use os seguintes 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

O modelo do CloudFormation a seguir criará o agendamento acima usando o recurso personalizado de agendamento.

Para implantar esse modelo, você precisará fornecer o ARN ServiceInstanceScheduleServiceToken, que pode ser encontrado no console do AWS CloudFormation clicando na Pilha do hub do Agendador de instâncias implantada anteriormente e selecionando Saídas.

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'

Interromper instâncias no fim de semana

Esse agendamento mostra como executar instâncias de segunda-feira, 9h ET, até sexta-feira, 17h ET. Como a segunda-feira e a sexta-feira não são dias inteiros, esse agendamento inclui três períodos para acomodar: segunda-feira, terça a quinta-feira e sexta-feira.

Períodos

O primeiro período inicia as instâncias marcadas às 9h de segunda-feira e interrompe à meia-noite. Esse período inclui os campos e valores a seguir.

Campo Tipo Valor

begintime

String

09:00

endtime

String

23:59

name

String

mon-start-9am

weekdays

StringSet

mon

O segundo período executa instâncias marcadas durante todo o dia, de terça a quinta-feira. Esse período inclui os campos e valores a seguir.

Campo Valor

name

String

tue-thu-full-day

weekdays

StringSet

tue-thu

O terceiro período interrompe as instâncias marcadas às 17h de sexta-feira. Esse período inclui os campos e valores a seguir.

Campo Valor

begintime

String

00:00

endtime

String

16:59

name

String

fri-stop-5pm

weekdays

StringSet

fri

Agendamento

O agendamento combina os três períodos no agendamento para instâncias marcadas. O agendamento inclui os campos e valores a seguir.

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

Tag de instância

Para aplicar esse agendamento às instâncias, você deve adicionar a tag Schedule=mon-9am-fri-5pm às instâncias. Se você tiver alterado o nome da tag padrão no parâmetro Nome da tag do Agendador de instâncias do AWS CloudFormation, sua tag será diferente. Por exemplo, se você inseriu Sked como o nome da tag, sua tag será Sked=mon-9am-fri-5pm. Para obter mais informações, consulte Marque seus recursos no Guia do usuário do Amazon Elastic Compute Cloud.

CLI do agendador

Para configurar o agendamento acima usando a CLI do Agendador de instâncias, use os seguintes 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

O modelo do CloudFormation a seguir criará o agendamento acima usando o recurso personalizado de agendamento.

Para implantar esse modelo, você precisará fornecer o ARN ServiceInstanceScheduleServiceToken, que pode ser encontrado no console do AWS CloudFormation clicando na Pilha do hub do Agendador de instâncias implantada anteriormente e selecionando Saídas.

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 da solução

Os seguintes recursos são criados como parte da pilha Agendador de instâncias na AWS.

Nome do recurso Tipo Descrição

Principal

AWS::Lambda::Function

Função do Lambda do Agendador de instâncias na AWS.

Auxiliar de configuração do agendador

Custom::ServiceSetup

Armazena as definições de configuração global no Amazon DynamoDB.

Permissão de invocação do agendador

AWS::Lambda::Permission

Permite que o evento do Amazon CloudWatch invoque a função do AWS Lambda do Agendador de instâncias.

Logs do agendador

AWS::Logs::LogGroup

Grupo de logs do CloudWatch para o Agendador de instâncias.

Política do agendador

AWS::IAM::Policy

Política que permite que o programador execute ações de início e parada, altere os atributos da instância do Amazon EC2, defina tags e acesse os recursos do agendador.

Regra do agendador

AWS::Events::Rule

Regra de evento do Amazon EventBridge que invoca a função do Lambda do agendador.

Regra de evento de métricas de configuração

AWS::Events::Rule

Regra de evento do Amazon EventBridge que invoca periodicamente a função de métricas anônimas de descrição da configuração. Desabilitada quando métricas anônimas estão desabilitadas.

Tabela de estados

AWS::DynamamoDB::Table

Tabela do DynamoDB que armazena o último estado desejado das instâncias.

Tabela de configuração

AWS::DynamamoDB::Table

Tabela do DynamoDB que armazena dados de configuração global, agendamento e período.

Tópico do SNS do Agendador de instâncias

AWS::SNS::Topic

Envia mensagens de aviso e de erro para endereços de e-mail inscritos.