luizmachado.dev

PT EN

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 <Account ID>
# ou
./arch-cli.sh --lsu --acc <Account ID>

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

  2. Rode auditorias de segurança regulares: agende arch-cli prowler e arch-cli analyze --comprehensive semanal ou mensalmente

  3. Use health checks no CI/CD: integre arch-cli health como check pré-deploy

  4. Revise custos periodicamente: rode arch-cli optimize mensalmente pra pegar desvios de custo cedo

  5. 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