Descrição do Problema
Os snapshots de volume da AWS, também conhecidos como snapshots do EBS, são amplamente utilizados para backup e restauração de dados no Amazon EC2, sendo importante nos dias de hoje manter-se protegido. Mas, como esses instantâneos são cobrados? Quanto me custa manter-me protegido? Posso reduzir de alguma forma minha conta da AWS removendo recursos não utilizados? Neste artigo, responderemos a cada uma dessas perguntas com respostas perspicazes.
Recursos de nuvem mal gerenciados e contas de nuvem imprevisíveis não são um mito. Os líderes de TI enfrentam esse problema comum diariamente. A falta de transparência pode ser um dos principais obstáculos, o que impede a análise e otimização dos custos de sua nuvem AWS. A visibilidade é a chave para a otimização e ter uma estratégia FinOps claramente definida visa trazer mais transparência, evitar estouros de orçamento e identificar orçamento desperdiçado e recursos ociosos, como instantâneos de disco órfãos e não utilizados.
Como os snapshots de volume da AWS são cobrados
Os snapshots do EBS são cobrados com base em gigabytes por mês, portanto, uma lição importante aqui é entender como eles são gerados e quanto armazenamento eles consomem na realidade.
Os instantâneos da AWS são armazenados de forma incremental. Isso significa que o primeiro snapshot de sua instância é uma cópia completa e cada snapshot adicional é incremental, portanto, apenas as partes alteradas, ou deltas, de seu volume EBS são armazenadas.
Vamos dar uma olhada em um exemplo disso: aqui está uma instância de 200 GB em execução em sua conta. O primeiro snapshot que você criar também terá 200 GB e você será cobrado por essa quantidade de dados. Se você tiver 205 GB de dados extras, emulando um caso em que os 200 GB iniciais não foram alterados, na próxima vez que criar um snapshot, você será cobrado por 5 GB adicionais de armazenamento de snapshot para o segundo snapshot.
Otimização de custo de nuvem gratuita para toda a vida
Por que as empresas continuam pagando depois de excluir uma instância na AWS
A próxima coisa a lembrar é que quando uma instância na AWS é excluída, o volume dessa instância também é excluído, mas os instantâneos permanecem na nuvem. Portanto, eles ficam órfãos e muitas vezes se perdem entre os outros. No entanto, você ainda tem que pagar por eles.
Como para todos os outros serviços da AWS, o preço também varia de uma região para outra. O preço médio, no entanto, é de aproximadamente $0,05 por GB-mês de dados armazenados. Alguns diriam que não é muito para pagar, e ele pode estar certo, mas é aqui que entra o problema principal - quanto mais instantâneos você tiver, maior será sua conta.
Obviamente, a solução ideal para esse problema é ter uma política disponível que descreveria como você armazena e retém instantâneos e scripts não utilizados para depois localizá-los e limpá-los.
Como localizar e excluir instantâneos órfãos e não utilizados
O processo de encontrar instantâneos órfãos é um pouco complexo. O motivo da complexidade é que você não precisa apenas obter a lista de instantâneos, mas também obter a lista de volumes/AMIs e verificar se os instantâneos estão vinculados ou não a determinados volumes e imagens.
No Console AWS:
O Console AWS é muito ruim em identificar se um snapshot está relacionado a qualquer AMI ou volume existente. Por exemplo, mesmo que um volume seja excluído da nuvem, o campo ID do volume na página de instantâneos ainda terá o valor original, mas você ainda pode usar a página de instantâneos para remover instantâneos desnecessários, como segue:
Da AWS CLI:
Para obter a lista de snapshots não vinculados a nenhum volume, faça o seguinte:
ORPHANED_SNAPSHOT_IDS=$(comm -23 <(aws ec2 describe-snapshots --owner-ids $AWS-ACCOUNT-ID --query 'Snapshots[*].SnapshotId' --output text | tr '\t' '\n' | sort) <(aws ec2 describe-volumes --query 'Volumes[*].SnapshotId' --output text | tr '\t' '\n' | sort | uniq))
Para obter a lista de snapshots não vinculados a nenhuma AMI, faça o seguinte:
ORPHANED_SNAPSHOT_IDS=$(comm -23 <(aws ec2 describe-snapshots --owner-ids $AWS_ACCOUNT_ID --query 'Snapshots[*].SnapshotId' --output text | tr '\t' '\n' | sort) <( aws ec2 describe-images --filters Name=state,Values=available --owners $AWS_ACCOUNT_ID --query "Images[*].BlockDeviceMappings[*].Ebs.SnapshotId" --output text | tr '\t' '\n ' | classificar | uniq))
Use um shell loop regular para remover os instantâneos de volumes e AMIs:
para snapshot_id em $ORPHANED_SNAPSHOT_IDS; faça echo "aws ec2 delete-snapshot --snapshot-id $snapshot_id"; feito
Conclusão
Dezenas de instantâneos de volume da AWS são normalmente criados por uma equipe de engenharia da empresa diariamente. Os instantâneos do EBS se tornaram uma escolha popular para fazer backup e restaurar dados no Amazon EC2. Mas alguns desafios podem ocorrer durante a exclusão de instâncias e muitas empresas continuam pagando por eles.
As formas de identificar e excluir instantâneos órfãos e não utilizados, conforme descrito no artigo, ajudarão a evitar desperdício, alcance metas de otimização, reduza sua conta de nuvem e dê os primeiros passos para implementar uma metodologia FinOps em sua empresa.
Otimização de custo de nuvem gratuita. Vitalício → Registre-se
Os endereços IP elásticos no Amazon EC2 são gratuitos, mas somente se as regras a seguir forem aplicadas. Obtenha mais detalhes sobre as regras de uso de endereços IP elásticos no Amazon EC2 e comece a economizar no orçamento de nuvem da sua empresa → 'Como liberar IPs elásticos no Amazon EC2.'