luizmachado.dev

Arch CLI: o canivete suíço para times de Arquitetura, SRE e DevOps na AWS

Arch CLI: o canivete suíço para times de Arquitetura, SRE e DevOps na AWS

Quem trabalha com AWS no dia a dia sabe: a quantidade de serviços, consoles e CLIs que você precisa alternar pra fazer tarefas rotineiras é absurda. Listar recursos, verificar segurança, analisar custos, gerenciar containers — cada coisa num lugar diferente, cada uma com seus comandos específicos.

O Arch CLI nasceu pra resolver isso. É uma ferramenta open source que centraliza as operações mais comuns de times de Arquitetura, SRE e DevOps em uma única interface de linha de comando. Em vez de decorar dezenas de comandos do AWS CLI, você tem um menu interativo que organiza tudo por contexto.

Repositório: crypto-br/arch-cli

---

1. Visão Geral e Arquitetura

1.1 O que é o Arch CLI?

É uma CLI híbrida (Shell + Python) que funciona como um hub de operações AWS. Atualmente na versão 4.0, ela cobre desde tarefas básicas como configurar perfis AWS até funcionalidades avançadas como análise de custos com IA.

A ferramenta é estruturada em duas camadas:

  • Camada Shell (arch-cli.sh + modules/): o core original, com scripts bash modulares para cada funcionalidade
  • Camada Python (arch_cli/): adicionada na v4.0, habilitando instalação via pip, comandos inteligentes e integração MCP

Essa abordagem híbrida significa que você pode usar como um script bash simples ou como uma CLI Python completa — o que encaixar melhor no seu workflow.

1.2 Instalação

git clone https://github.com/crypto-br/arch-cli.git

cd arch-cli

pip install -e .

Depois disso, basta rodar arch-cli pra acessar o menu interativo. Alternativamente, você pode rodar ./arch-cli.sh diretamente se preferir a abordagem bash-only.

1.3 Pré-requisitos

  • AWS CLI: configurado com pelo menos um perfil
  • Python 3: para a instalação via pip e os comandos inteligentes da v4.0
  • Prowler: para as funcionalidades de auditoria de segurança

1.4 Compatibilidade

O Arch CLI roda em:

  • Ubuntu/Debian
  • Red Hat/CentOS
  • Amazon Linux
  • macOS

Ele detecta o sistema operacional automaticamente e instala as dependências necessárias. O comando --deps cuida disso pra você.

---

2. Deep Dive nas Funcionalidades

2.1 Auditoria de Segurança com Prowler

O Arch CLI integra o Prowler diretamente, sem precisar configurar nada separado.

arch-cli prowler

ou

./arch-cli.sh --prowler

O que acontece por baixo dos panos:

  • O Prowler roda contra a conta AWS ativa
  • Relatórios são gerados em CSV e HTML
  • Uma barra de progresso mostra o status da auditoria em tempo real
  • Resultados ficam armazenados localmente pra comparação histórica

Isso é particularmente útil pra times que precisam rodar checks de compliance regulares (CIS, PCI-DSS, HIPAA, etc.) sem configurar o Prowler separadamente. Ter isso integrado na mesma ferramenta que faz todo o resto reduz o context switching.

2.2 Listagem de Recursos AWS

arch-cli list

ou

./arch-cli.sh --list

Fornece uma visão rápida dos recursos da conta:

  • EC2: instâncias rodando, tipos, estados
  • S3: buckets e configuração básica
  • RDS: instâncias de banco de dados
  • Lambda: funções e seus runtimes
  • IAM: usuários, roles, políticas
  • CloudFormation: stacks e seus status

Parece simples, mas é o tipo de coisa que você faz várias vezes por dia. No console da AWS, exige navegar por múltiplas telas e serviços. Aqui, é um comando.

2.3 Monitoramento e Observabilidade

arch-cli monitor

ou

./arch-cli.sh --monitor

Centraliza operações de CloudWatch:

  • Gerenciamento de alarmes: criar, listar e gerenciar alarmes do CloudWatch
  • Visualização de logs: consultar e visualizar CloudWatch Logs sem sair do terminal
  • Health checks de serviços: verificar o status de saúde dos seus serviços

Pra times de SRE que fazem health checks e troubleshooting diariamente, ter operações de monitoramento na mesma CLI que todo o resto elimina a necessidade de ficar alternando entre o console do CloudWatch e o terminal.

2.4 Otimização de Custos e FinOps

Duas funcionalidades complementares:

Análise de custos e identificação de recursos subutilizados

arch-cli optimize

ou

./arch-cli.sh --cost

Integração com dashboard FinOps completo

arch-cli finops

ou

./arch-cli.sh --finops

O módulo --cost:

  • Analisa padrões de gastos atuais
  • Identifica recursos subutilizados (instâncias EC2 ociosas, volumes EBS desanexados, etc.)
  • Gerencia orçamentos e alertas

O módulo --finops integra com o aws-finops-dashboard pra uma experiência completa de visualização de custos.

Pra times que precisam justificar gastos ou encontrar onde cortar, ter isso na CLI agiliza bastante o processo comparado a navegar pelo Cost Explorer no console.

2.5 Segurança e Compliance

arch-cli security

ou

./arch-cli.sh --security

Vai além do Prowler com:

  • Análise de políticas IAM: revisa políticas buscando configurações excessivamente permissivas
  • Verificação de conformidade: checa contra baselines de segurança
  • Gerenciamento de rotação de credenciais: rastreia e gerencia o ciclo de vida das credenciais

É o tipo de funcionalidade que todo time de segurança precisa mas que geralmente fica espalhada em scripts avulsos. Ter centralizado significa execução consistente e auditoria mais fácil.

2.6 Gerenciamento de Containers

arch-cli containers

ou

./arch-cli.sh --containers

Gerencia os três principais serviços de containers da AWS num único lugar:

  • EKS: gerenciamento e operações de clusters
  • ECS: gerenciamento de serviços e task definitions
  • ECR: gerenciamento de repositórios de imagens

Quem opera múltiplos clusters em diferentes serviços sabe o quanto isso economiza tempo comparado a ficar alternando entre kubectl, aws ecs e aws ecr.

2.7 Gerenciamento de Banco de Dados

arch-cli database

ou

./arch-cli.sh --database

Cobre os dois serviços de banco de dados mais comuns da AWS:

  • RDS: gerenciamento de instâncias, verificação de status, operações básicas
  • DynamoDB: gerenciamento de tabelas e operações

2.8 Automação de Rotinas

arch-cli automation

ou

./arch-cli.sh --automation

Gerencia:

  • Backups: gerenciamento automatizado de backups entre serviços
  • Tarefas agendadas: gerenciamento de tarefas recorrentes

Aquelas rotinas que todo time tem mas que ficam em cron jobs esquecidos ou scripts perdidos em algum repositório — esse módulo traz tudo pra debaixo do mesmo teto.

---

3. Gerenciamento de Perfis AWS

Isso merece sua própria seção porque é uma funcionalidade pequena que faz uma diferença enorme no dia a dia.

Definir perfil ativo

arch-cli profile prod

Agora todos os comandos usam automaticamente o perfil "prod"

arch-cli list

arch-cli health

arch-cli analyze

Trocar pra outro perfil

arch-cli profile staging

Quem trabalha com múltiplas contas AWS sabe a dor de ficar alternando perfis constantemente. Com arch-cli profile, você define uma vez e todo comando subsequente usa automaticamente. Sem mais flags --profile em cada comando.

Você também pode configurar novos perfis interativamente:

arch-cli np

ou

./arch-cli.sh --np

Isso te guia pela configuração de um novo perfil AWS CLI, incluindo suporte pra AWS SSO — que é cada vez mais o padrão pra organizações usando IAM Identity Center.

---

4. Versão 4.0: Análise Inteligente com IA via MCP

A maior adição na v4.0 é a integração com o Model Context Protocol (MCP), trazendo três comandos inteligentes:

4.1 Analyze

Análise básica (~30 segundos)

arch-cli analyze

Análise abrangente (~2-3 minutos)

arch-cli analyze --comprehensive

Com perfil específico

arch-cli analyze --profile prod

O comando analyze faz uma análise contextual da conta AWS, identificando:

  • Problemas de segurança e misconfigurações
  • Custos desnecessários e desperdício
  • Oportunidades de otimização
  • Insights preditivos sobre problemas potenciais

A flag --comprehensive roda uma análise mais profunda que leva mais tempo mas fornece findings e recomendações mais detalhados.

4.2 Optimize

arch-cli optimize

arch-cli optimize --profile staging

Focado especificamente em economia de custos, esse comando:

  • Identifica recursos que podem ser redimensionados
  • Encontra recursos ociosos ou subutilizados
  • Sugere oportunidades de Reserved Instances ou Savings Plans
  • Fornece estimativa de economia pra cada recomendação

4.3 Health

arch-cli health

arch-cli health --profile prod

Um health check rápido (~10 segundos) que valida:

  • Disponibilidade de serviços
  • Status de saúde dos recursos
  • Estado de alarmes críticos
  • Postura básica de segurança

4.4 Modo Fallback

A decisão arquitetural mais interessante da v4.0: a ferramenta funciona com ou sem o servidor MCP.

  • Com MCP: você ganha análises contextuais mais profundas, insights preditivos e sugestões de auto-remediação
  • Sem MCP: os comandos continuam funcionando usando análise local, só com menos profundidade

Isso significa que você pode começar a usar os comandos inteligentes imediatamente, e quando configurar o servidor MCP, a qualidade da análise melhora automaticamente — sem mudanças de configuração.

---

5. Arquitetura Modular

O projeto é organizado em módulos separados por funcionalidade:

arch-cli/

├── arch-cli.sh # Script bash principal

├── arch_cli/ # Pacote Python (v4.0+)

├── modules/ # Módulos bash por funcionalidade

│ ├── utils.sh # Funções utilitárias

│ ├── dependencies.sh # Verificação de dependências

│ ├── aws_profile.sh # Configuração de perfis AWS

│ ├── prowler.sh # Execução do Prowler

│ ├── support_user.sh # Criação de usuário de suporte

│ ├── aws_resources.sh # Listagem de recursos AWS

│ ├── monitoring.sh # Monitoramento e observabilidade

│ ├── cost_optimization.sh # Otimização de custos

│ ├── security.sh # Segurança e compliance

│ ├── automation.sh # Automação de rotinas

│ ├── containers.sh # Gerenciamento de containers

│ └── database.sh # Gerenciamento de banco de dados

├── tests/ # Suite de testes

└── docs/ # Documentação

Essa abordagem modular tem dois benefícios chave:

  1. Fácil de contribuir: quer adicionar uma funcionalidade nova? Cria um módulo e integra. A arquitetura facilita isso.
  2. Fácil de manter: cada módulo é autocontido, então mudanças em uma área não afetam as outras.

---

6. Criação de Usuário de Suporte

Uma funcionalidade específica mas muito útil pra times que gerenciam múltiplas contas:

arch-cli lsu --acc 

ou

./arch-cli.sh --lsu --acc

Isso cria um usuário administrativo de suporte na conta AWS especificada. Pra organizações onde o time de arquitetura ou SRE precisa de acesso temporário a contas de clientes ou projetos pra troubleshooting, isso automatiza o que seria um processo manual de IAM.

---

7. Logging e Auditoria

Todas as operações são logadas em ~/.arch-cli/arch-cli.log. Isso é importante pra:

  • Debugging: quando algo dá errado, você tem um trace detalhado
  • Auditoria: você pode rastrear quem rodou o quê e quando
  • Compliance: algumas organizações exigem logging de todas as ações administrativas

---

8. Casos de Uso por Time

Times de Arquitetura

  • Visibilidade rápida dos recursos e configurações das contas
  • Avaliação de postura de segurança antes de reviews de arquitetura
  • Análise de custos pra planejamento de capacidade

Times de SRE

  • Health checks diários com arch-cli health
  • Gerenciamento de monitoramento e alarmes pelo terminal
  • Listagem rápida de recursos durante resposta a incidentes

Times de DevOps

  • Gerenciamento de containers entre EKS, ECS e ECR
  • Gerenciamento automatizado de backups
  • Troca de perfis pra deploys multi-account

Times de FinOps

  • Análise de custos e recomendações de otimização
  • Identificação de recursos subutilizados
  • Gerenciamento e acompanhamento de orçamentos

Security Engineers

  • Auditorias Prowler integradas no workflow
  • Análise de políticas IAM
  • Gerenciamento de rotação de credenciais
  • Verificação de compliance

---

9. Boas Práticas

  1. Configure perfis pra cada conta: use arch-cli np pra configurar perfis com SSO, depois alterne entre eles com arch-cli profile
  1. Rode auditorias de segurança regulares: agende arch-cli prowler e arch-cli analyze --comprehensive semanal ou mensalmente
  1. Use health checks no CI/CD: integre arch-cli health como check pré-deploy
  1. Revise custos periodicamente: rode arch-cli optimize mensalmente pra pegar desvios de custo cedo
  1. Mantenha a ferramenta atualizada: faça pull da versão mais recente regularmente pra ter novas funcionalidades e melhorias de segurança

---

Conclusão

O Arch CLI é o tipo de ferramenta que nasce da necessidade real de quem opera AWS no dia a dia. Em vez de ter dezenas de scripts espalhados, aliases no bashrc e bookmarks do console, você tem tudo centralizado numa CLI com menu interativo.

A versão 4.0 com integração MCP e análise inteligente mostra que a ferramenta está evoluindo na direção certa: não só automatizar tarefas, mas trazer insights que ajudam na tomada de decisão. E o fato de ser open source significa que qualquer time pode adaptar pra sua realidade.

Se você trabalha com AWS e ainda não testou, vale dar uma olhada. O tempo que você gasta configurando e alternando entre ferramentas hoje, o Arch CLI resolve com um comando.

---

Recursos