aws-cost-cleanup
Automatiza a limpeza de recursos que não estão sendo usados na AWS. Isso ajuda a reduzir os custos da sua conta na nuvem.
O que ela faz
Esta ferramenta ajuda a encontrar e remover recursos da Amazon Web Services (AWS) que você não está usando. Isso evita que você pague por coisas que não precisa, economizando dinheiro.
Quando usar
- ✓Quando você quer reduzir seus gastos na AWS.
- ✓Quando você tem certeza de que alguns recursos não são mais necessários.
- ✓Para organizar sua conta AWS e evitar acúmulo de itens esquecidos.
Exemplo do que pedir para a IA
“Encontre recursos não utilizados na minha conta AWS e me diga quanto posso economizar.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta verifica sua conta AWS em busca de recursos como discos de armazenamento sem uso, instâncias paradas há muito tempo e endereços de IP que não estão conectados a nada. Ela lista esses itens e estima a economia de custos.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill aws-cost-cleanupOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/aws-cost-cleanup/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Limpeza de Custos na AWS
Automatize a identificação e remoção de recursos AWS não utilizados para eliminar desperdícios.
Quando Usar Esta Habilidade
Use esta habilidade quando precisar limpar automaticamente recursos AWS não utilizados para reduzir custos e eliminar desperdícios.
Alvos de Limpeza Automatizada
Armazenamento
- Volumes EBS não anexados
- Snapshots EBS antigos (>90 dias)
- Uploads multipart S3 incompletos
- Versões S3 antigas em buckets versionados
Computação
- Instâncias EC2 paradas (>30 dias)
- AMIs não utilizadas e snapshots associados
- IPs Elásticos não utilizados
Rede
- Load Balancers Elásticos não utilizados
- NAT Gateways não utilizados
- ENIs órfãs
Scripts de Limpeza
Limpeza Segura (Primeiro Dry-Run)
#!/bin/bash
# cleanup-unused-ebs.sh
echo "Finding unattached EBS volumes..."
VOLUMES=$(aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].VolumeId' \
--output text)
for vol in $VOLUMES; do
echo "Would delete: $vol"
# Uncomment to actually delete:
# aws ec2 delete-volume --volume-id $vol
done
#!/bin/bash
# cleanup-old-snapshots.sh
CUTOFF_DATE=$(date -d '90 days ago' --iso-8601)
aws ec2 describe-snapshots --owner-ids self \
--query "Snapshots[?StartTime<='$CUTOFF_DATE'].[SnapshotId,StartTime,VolumeSize]" \
--output text | while read snap_id start_time size; do
echo "Snapshot: $snap_id (Created: $start_time, Size: ${size}GB)"
# Uncomment to delete:
# aws ec2 delete-snapshot --snapshot-id $snap_id
done
#!/bin/bash
# release-unused-eips.sh
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].[AllocationId,PublicIp]' \
--output text | while read alloc_id public_ip; do
echo "Would release: $public_ip ($alloc_id)"
# Uncomment to release:
# aws ec2 release-address --allocation-id $alloc_id
done
Automação de Ciclo de Vida do S3
# Apply lifecycle policy to transition old objects to cheaper storage
cat > lifecycle-policy.json <<EOF
{
"Rules": [
{
"Id": "Archive old objects",
"Status": "Enabled",
"Transitions": [
{
"Days": 90,
"StorageClass": "STANDARD_IA"
},
{
"Days": 180,
"StorageClass": "GLACIER"
}
],
"NoncurrentVersionExpiration": {
"NoncurrentDays": 30
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 7
}
}
]
}
EOF
aws s3api put-bucket-lifecycle-configuration \
--bucket my-bucket \
--lifecycle-configuration file://lifecycle-policy.json
Calculadora de Impacto de Custo
#!/usr/bin/env python3
# calculate-savings.py
import boto3
from datetime import datetime, timedelta
ec2 = boto3.client('ec2')
# Calculate EBS volume savings
volumes = ec2.describe_volumes(
Filters=[{'Name': 'status', 'Values': ['available']}]
)
total_size = sum(v['Size'] for v in volumes['Volumes'])
monthly_cost = total_size * 0.10 # $0.10/GB-month for gp3
print(f"Unattached EBS Volumes: {len(volumes['Volumes'])}")
print(f"Total Size: {total_size} GB")
print(f"Monthly Savings: ${monthly_cost:.2f}")
# Calculate Elastic IP savings
addresses = ec2.describe_addresses()
unused = [a for a in addresses['Addresses'] if 'AssociationId' not in a]
eip_cost = len(unused) * 3.65 # $0.005/hour * 730 hours
print(f"\nUnused Elastic IPs: {len(unused)}")
print(f"Monthly Savings: ${eip_cost:.2f}")
print(f"\nTotal Monthly Savings: ${monthly_cost + eip_cost:.2f}")
print(f"Annual Savings: ${(monthly_cost + eip_cost) * 12:.2f}")
Lambda de Limpeza Automatizada
import boto3
from datetime import datetime, timedelta
def lambda_handler(event, context):
ec2 = boto3.client('ec2')
# Delete unattached volumes older than 7 days
volumes = ec2.describe_volumes(
Filters=[{'Name': 'status', 'Values': ['available']}]
)
cutoff = datetime.now() - timedelta(days=7)
deleted = 0
for vol in volumes['Volumes']:
create_time = vol['CreateTime'].replace(tzinfo=None)
if create_time < cutoff:
try:
ec2.delete_volume(VolumeId=vol['VolumeId'])
deleted += 1
print(f"Deleted volume: {vol['VolumeId']}")
except Exception as e:
print(f"Error deleting {vol['VolumeId']}: {e}")
return {
'statusCode': 200,
'body': f'Deleted {deleted} volumes'
}
Fluxo de Trabalho de Limpeza
- Fase de Descoberta (Somente leitura)
- Execute todos os comandos
describe
- Execute todos os comandos
…
Perguntas frequentes
Quais tipos de recursos a ferramenta pode encontrar?
Ela pode encontrar volumes de disco (EBS) não anexados, snapshots antigos, uploads de S3 incompletos, versões antigas de arquivos no S3, instâncias paradas por mais de 30 dias, AMIs não utilizadas, IPs elásticos não utilizados, balanceadores de carga, gateways NAT e interfaces de rede (ENIs) órfãs.
A ferramenta exclui os recursos automaticamente?
A ferramenta pode ser configurada para excluir recursos, mas é recomendado fazer um 'dry-run' (simulação) primeiro para ver o que seria excluído. Ela também oferece scripts para exclusão manual ou configuração de regras de ciclo de vida para o S3.
Como posso ter certeza de que não vou excluir algo importante?
É crucial seguir o 'checklist de segurança'. Sempre execute em modo de simulação primeiro, verifique se os recursos não têm dependências, confira as tags para identificar o dono, notifique as partes interessadas e, se possível, teste em um ambiente de não produção antes de excluir permanentemente.
Detalhes
Descrição original do autor
Automated cleanup of unused AWS resources to reduce costs
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2240
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark
Ajuda seu agente a medir a velocidade e a performance do código. É útil para garantir que as coisas estão rápidas e para encontrar problemas de lentidão.
affaan-m/ECC
content-hash-cache-pattern
Faz seu agente usar hashes de conteúdo para cachear resultados de processamento de arquivos. Isso evita processamento repetido e invalida o cache automaticamente quando o conteúdo muda. Útil para acelerar tarefas lentas.
affaan-m/ECC
parallel-execution-optimizer
Faz seu agente acelerar tarefas complexas dividindo-as em partes menores e executando-as em paralelo. Garante que tudo seja verificado ao final.
affaan-m/ECC