# Smart Stop (AWS)

### Visão Geral

O Smart Stop é uma funcionalidade avançada do módulo Autofix projetada para eliminar o "desperdício silencioso" em ambientes cloud. Diferente de agendamentos convencionais de horário fixo, o Smart Stop monitora o estado real e a utilização dos recursos para executar o desligamento automático de workloads ociosos, especialmente em ambientes de desenvolvimento, homologação e testes.

### Objetivo de Negócio

O foco principal é a Eficiência de Utilização. O Smart Stop resolve o custo desnecessário de:

* Instâncias ativas fora do horário comercial ou em finais de semana.
* Ambientes de teste esquecidos após a conclusão de ciclos de desenvolvimento.
* Recursos com baixa utilização contínua que não justificam o custo de permanência ligados.

***

### Modos de Operação

O Smart Stop oferece duas abordagens principais para a gestão de recursos:

#### 1. Only Stop (Baseado em Filtros)

Desliga recursos AWS com base em critérios de seleção específicos (Tags, IDs ou Nomes). Se o recurso corresponder aos filtros configurados, ele é desligado para garantir a conformidade com a política da organização.

* Recursos Suportados: Instâncias EC2, instâncias/clusters RDS e Auto Scaling Groups (neste caso, as capacidades Min, Max e Desired são reduzidas para 0).

#### 2. Metric Analyzer (Baseado em Utilização)

Analisa a performance real antes de agir. O recurso só é desligado se a utilização máxima de CPU no período configurado estiver abaixo do limite (*threshold*) definido.

* Requisitos para Desligamento: A instância deve estar em execução, ter sido criada há mais tempo que o período de análise configurado e não possuir tags de proteção ou *Overrides* ativos.

***

### Mecanismos de Controle e Proteção

#### Override (Religamento Temporário)

Permite que um recurso desligado pelo Smart Stop seja religado temporariamente por um período determinado.

1. O usuário define o horário de início e a duração do Override.
2. O sistema liga o recurso no horário programado.
3. Ao fim do período, o sistema executa o desligamento automático novamente, registrando todo o ciclo no histórico.

#### Proteção de Recursos (Safety Net)

Para evitar o desligamento acidental de recursos críticos, o sistema respeita as seguintes regras:

* Tag de Exceção: Qualquer recurso com a tag `PIER_CLOUD_SMART_STOP_SKIP_RESOURCE` será permanentemente ignorado pela automação.
* Prioridade de Override: Recursos com Override ativo são ignorados pelo ciclo de desligamento padrão para evitar conflitos operacionais.

***

### Configuração e Execução

#### Como Configurar

No módulo Autofix → Smart Stop, o processo segue três passos:

1. Definição de Escopo: Seleção de contas, regiões e filtros (Tags, ID ou Nome).
2. Critérios de Ociosidade: Definição do *threshold* de CPU e período mínimo de inatividade.
3. Ativação: Ativação via toggle de status para início do monitoramento.

#### Frequência e Auditoria

* Verificação: O sistema analisa os recursos a cada 1 minuto.
* Histórico: Todas as ações (sucessos, falhas, alterações de capacidade em ASG e estados antes/depois) são registradas com logs detalhados para auditoria técnica.

***

### Impacto em FinOps

A implementação do Smart Stop reflete diretamente na saúde financeira da operação cloud:

* Redução de Desperdício: Corte imediato em custos de *Compute* não utilizados.
* Cultura de Responsabilidade: Incentiva os times de engenharia a manterem ambientes enxutos e tagueados.
* Otimização Contínua: Substitui auditorias manuais por uma governança automatizada e resiliente.

### Boas Práticas

* Inicie a aplicação por ambientes não produtivos (Dev/Sandbox).
* Utilize o escopo por Tags para garantir que recursos de produção não sejam afetados.
* Monitore as métricas de "Economia Recorrente Mensal" geradas pelas primeiras execuções antes de expandir para toda a organização.

***

### Para utilização e acesso na plataforma Pier:

Smart Stop é uma funcionalidade do Autofix que automatiza o desligamento de instâncias existentes no ambiente através de uma chave e valor.&#x20;

O Smart Stop contempla os seguintes serviços AWS: **EC2, RDS e Auto Scaling Group**

1. **Acessando o Smart Stop**.

No menu de funcionalidades lateral do Autofix, selecione **Smart Stop**.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2Fr3KnHBjjEKAsbIwFVIdp%2Fimage.png?alt=media&#x26;token=e40dc34c-c8bb-4700-a7a2-9504db3a06ca" alt=""><figcaption></figcaption></figure>

Selecione o serviço **EC2, RDS ou Auto Scaling Group**:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F6ONkZMbsTqWpeO5mq0Fr%2Fimage.png?alt=media&#x26;token=72a0d017-a93e-48b7-aec1-f68255bf6294" alt=""><figcaption></figcaption></figure>

2. **Criando uma ação**

Na tela principal, clique no botão "**Adicionar**"

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FsnNSJBAhaKiMmztNQvHl%2Fimage.png?alt=media&#x26;token=8605c2b8-a31b-40b9-abcf-cb56817b8a21" alt=""><figcaption></figcaption></figure>

3. **Propriedades**

O sistema abrirá uma tela para criação da ação

* **Adicione um nome a ação de Smart Stop:**

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FIctlUGwR6cOVY89SctKt%2Fimage.png?alt=media&#x26;token=75b5aa4a-aec2-4f8b-a5f6-4cbd7e251dc7" alt="" width="543"><figcaption></figcaption></figure>

* **Defina o tipo do Smart Stop:**

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FWOxjjJnsskMbt3TnJPcX%2Fimage.png?alt=media&#x26;token=ef390144-7505-4ce6-a801-2db10fa79a9d" alt="" width="543"><figcaption></figcaption></figure>

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F9NKzpyRBmp2ACSq3tL5P%2Fimage.png?alt=media&#x26;token=a992c31e-b886-4110-a447-34827c4c7918" alt="" width="532"><figcaption></figcaption></figure>

**-> Métrica**: Define métricas para que o Smart Stop possa monitorar os recursos e interromper os recursos que estiverem fora da métrica configurada.

**-> Stop 24/7**: Irá interromper os recursos selecionados, sem usar métricas específicas.

* **Defina as regiões:**

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FuqjNBN2GDuOT76y3rWgh%2Fimage.png?alt=media&#x26;token=a3135504-e73e-4d24-a6d0-e76656079ae2" alt="" width="543"><figcaption></figcaption></figure>

O sistema possibilita selecionar mais de uma região:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FeBkOiJbaQxqXb45IfuXA%2Fimage.png?alt=media&#x26;token=fa7273b9-250b-47cb-8245-6cf47317285e" alt="" width="524"><figcaption></figcaption></figure>

* **Defina as contas:**

O sistema possibilita selecionar mais de uma conta:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FesRnni5Rw5J5RQdjBYLe%2Fimage.png?alt=media&#x26;token=cad5a9d7-923f-427f-9d25-5b287c7fd0f6" alt="" width="543"><figcaption></figcaption></figure>

4. **Filtros**

Ao clicar no botão próximo, o sistema irá avançar para a tela de filtros, onde é possível adicionar os filtros desejados.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FSsHIVGkwEbsu5ePzzLZx%2Fimage.png?alt=media&#x26;token=28c6f874-c560-429b-a513-ff270ffac011" alt="" width="543"><figcaption></figcaption></figure>

Os filtros é onde o Smart Stop irá localizar os recursos via chave e valor

* Em "**Tipo de Filtro**" é possível localizar o recurso de três formas: **tag, nome do recurso e id do recurso:**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcW7CpuXH7FooBQFkclRruHi3gutwvtDz_wEx24TOyKq8jxHdSFobM38Uuzy0co8ksakfE9X1Vr1SvtRO-2xoR7E5k_bkP6kZZuxSF9RDO3_SGn-5tYbt9kY1JCaCdJpWjd2hFvLpYwFXaqLJkGLvWcP5lc?key=wKEzsfUV7EkNa24GUA6Y4g" alt="" width="563"><figcaption></figcaption></figure>

* Defina a expressão **CONTÉM e NÃO CONTÉM:**

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FHyW372vbSS1KtojJPoBV%2Fimage.png?alt=media&#x26;token=e4d568da-a029-4512-b012-7b28ea79fd4e" alt="" width="518"><figcaption></figcaption></figure>

* Em chave e valor, adicione a identificação do recurso para que ele possa ser encontrado.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FoqofDPwjultNDYmtzd0c%2Fimage.png?alt=media&#x26;token=d84f4dfa-3896-405d-9557-94916b468c76" alt="" width="563"><figcaption></figcaption></figure>

* Ao adicionar, é possível visualizar o filtro do recurso criado

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FzF6IpIgtA166QSsdS5lp%2Fimage.png?alt=media&#x26;token=620fc631-5eda-45cd-a9fe-63b304a6d17e" alt=""><figcaption></figcaption></figure>

5. **Métrica**

Ao clicar no botão próximo, o sistema irá avançar para a tela de **Métrica**

* Defina e métrica de verificação da ação de Smart Stop. Como por exemplo a utilização de vCPU:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F9eZ7XzqRZlnaDvZG3lzc%2Fimage.png?alt=media&#x26;token=7ad9a64e-d221-4f8d-8897-4dbacfe00a3d" alt=""><figcaption></figcaption></figure>

**Obs.:** O Smart Stop irá monitorar o uso de VCPU dos recursos.

* Defina o periodo que o Smart Stop irá monitorar o recurso que estiver com o uso de VCPU abaixo do valor definido:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FgtOzGyFhI5lIVHyEsfdr%2Fimage.png?alt=media&#x26;token=b1301bdb-8928-48da-b9f1-2f2bdd607aef" alt=""><figcaption></figcaption></figure>

* Defina o percentual máximo inferior à: Valor de uso de VCPU que irá indicar o monitoramento do Smart Stop:

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2F4gUzcs7CLwkSakXSza4K%2Fimage.png?alt=media&#x26;token=786f1590-bf4d-4835-b187-dafceaaa0995" alt=""><figcaption></figcaption></figure>

6. **Agenda**

Ao clicar no botão próximo, o sistema irá avançar para a tela de **Agenda**

* Defina a agenda de monitoramento do Smart Stop

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FOQ5UJYR9DFLnOe5OuicY%2Fimage.png?alt=media&#x26;token=31d99911-74fa-4b8e-b643-3fa0152495f5" alt=""><figcaption></figcaption></figure>

Intervalo de execução que o Smart Stop irá monitorar os recursos para localizar recursos fora da métrica definida.

Após criada a regra, a configuração fica visível na tela inicial do Smart Stop, onde é possível Ativar e desativar a regra na coluna “**Status**”

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FDGOe2s1z6HueZSyY9M6l%2Fimage.png?alt=media&#x26;token=3d75bc29-b991-451a-b8c1-a3ecf2603f0b" alt=""><figcaption></figcaption></figure>

7. **Editar**&#x20;

* Permite ao usuário editar qualquer informação criada na ação.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2FLwEWY79zqGG55YLzoU5V%2Fimage.png?alt=media&#x26;token=0931b798-3801-4c20-9a26-a9d9d8dd7e9c" alt=""><figcaption></figcaption></figure>

8. **Deletar**&#x20;

* Permite ao usuário excluir a ação criada.

<figure><img src="https://109632036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fcxn6hAOP0k8IqKSI8iRP%2Fuploads%2Fsp9gEAEWtFviuEMF44Xm%2Fimage.png?alt=media&#x26;token=cf4493ba-d05b-4f43-80fc-52cbc4bb8984" alt=""><figcaption></figcaption></figure>
