Start/Stop Instances usando o Autoscaling do OCI

Olá!

Mais um artigo com objetivo de facilitar as rotinas de gerenciamento e principalmente gestão de custo no ambiente OCI.

A um tempo atrás eu havia escrito um artigo onde utilizei um Windows Server para fazer o gerenciamento de ligar e desligar as instâncias através de agendamento via Agendador de Tarefas usando o Oracle Cli.

Bom, hoje vou trazer uma possibilidade um pouco mais interessante usando o próprio console do OCI, usando os recursos de Instance configurationsInstance pools e Autoscaling configurations.

Irei usar como base uma instância já criada no console, na qual eu preciso criar uma rotina baseada em agendamento para que ela desligue e ligue em horário específico.

Para o artigo, irei usar uma janela de desligamento personalizada com um curto intervalo de tempo, porém como iremos verificar essas janelas de agendamento podem ser configuradas conforme a necessidade da operação da instância.

Nossa instância está rodando normalmente e já com todos os sistemas instalados,

O primeiro passo é criar uma configuração de instância (Instance configurations), para isso navegue até Compute e Instance Configurations, conforme imagem abaixo:

Vamos criar uma configuração de instância, irei usar os padrões para Imagem e Shape, ele não será importante pois iremos utilizar o configurado na instância criada.

Depois de configurado, vamos para o Instance Pools, configurar o modelo de Pool de recursos.

Aqui, selecione a Instance Configuration criada anteriormente e deixe 0 o número de instâncias do Pool, conforme exemplo abaixo

No proximo passo, selecione o Domínio (isso é importante), deve ser o mesmo que está a instância que irá fazer parte do Start Stop, se ele estiver em outro domínio você não conseguirá anexar ela futuramente.

Selecione a rede que ela está, subnet e também o Fault Domain (pode selecionar todos disponíveis)

Ao final do processo, ao clicar em Create, ele irá apresentar um resumo

Agora, quando finalizado, navegue até a parte inferior e selecione a opção Attached Instances, você verá que não tem nenhuma instância anexada, iremos anexar as instâncias que desejamos que faça parte do Start e Stop do agendamento.

Note que os pré-requisitos são listados acima no momento de anexar a instancia.

Após alguns minutos a instância será anexada no Pool

Agora, iremos criar o agendamento, para isso navegue até Compute > Autoscaling Configurations

Clique em Create Autoscaling

Dê um nome, selecione o Instance pool e clique em Next

Na próxima tela, troque para a opção Schedule-based autoscaling, aonde iremos usar a função de escalonamento baseada em agendamento

Na primeira política, altere para Chanfe lifecycle stat of all instances e configure os campos conforme exemplo abaixo:

Nota: Existem pré-definições de agendamento configurados no campo Quick start, você pode usar os modelos. Importante salientar que o horário é UTC sempre.

Para o exemplo eu coloquei um horário perto do momento que estou criando o artigo para evidenciar a execução das rotinas, você pode agendar conforme sua necessidade.

Após configurar a política 1, clique em + Another police e crie a política secundária

Configure a política secundária conforme sua necessidade, eu configurei conforme o exemplo abaixo, para iniciar a VM após o processo de execução da police 1 ser finalizado.

Ao clicar em create, ele irá apresentar um resumo

Validando o cenário:

Para validar, eu alterei o horário de execução de 22:45 para parada e 22:47 para iniciar novamente, abaixo um GIF do momento da parada da VM

Após alguns segundos, ela é parada baseada no agendamento

Após alguns segundos do agendamento de Start, ela volta ao estado de ligada.

Importante: Os desligamentos via console dependendo do sistema operacional podem causar problemas a longo prazo. Recomenda-se tentar agregar com o processo de desligamento uma rotina no sistema operacional para que ele faça o encerramento dos processos e preparo para um desligamento chamado “Soft”. Tente unir as funções de desligamento soft com o agendamento de console para uma melhor experiência.

Abaixo um exemplo do sistema operacional Windows utilizando somente o recurso de Stop via console, sem nenhuma rotina de desligamento via sistema operacional.

Muito obrigado e espero que o artigo seja útil.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *