Voltei para a AWS e me lembrei de novo por que fui embora
(fourlightyears.blogspot.com)- Eu apoiava a AWS desde o início, mas, com o acúmulo de fatores como o período em que deixou as bibliotecas cliente nas mãos da comunidade, a demora na transição para Python 3, a cobrança complexa e o IAM, além do lock-in do AWS Lambda, passei a não gostar mais da AWS
- Depois de usar o DynamoDB, enfrentei uma cobrança de US$ 75 em um único dia; o custo de saída de dados caiu de 20 centavos para 9 centavos por GB, mas a estrutura que cobra até pela movimentação interna de dados continua cara e difícil de entender
- Depois de sair da AWS, fechei a maior parte das contas, mas mantive domínios no Route53, alguns backups no S3 e o AWS WorkMail; depois recebi um aviso de que o WorkMail será encerrado nos próximos 12 meses
- Recentemente, fiz login de novo na AWS para testar o funcionamento do Claude/Anthropic no AWS Bedrock e um EC2 Spot com 192 núcleos e 1 TB de RAM; concluí que o Bedrock funciona da mesma forma, mas é mais lento e muito mais caro do que a assinatura da Anthropic
- Durante cerca de 3 horas de teste com EC2 Spot, recebi um alerta de Suspected security breach e a conta foi restringida, bloqueando meu e-mail comercial no WorkMail e a criação de recursos; mesmo após as medidas pedidas e o atendimento por chat, a restrição não foi removida por 4 dias, então decidi migrar também o AWS WorkMail e o Route53
Do apoio inicial à AWS ao afastamento
- Eu apoiava fortemente a AWS desde a época em que ela era um conjunto menor de serviços centrados em SQS, S3, EC2 e SimpleDB, e organizei em Melbourne o primeiro evento em que um representante da AWS dos EUA veio apresentar a AWS
- A computação em nuvem foi uma grande mudança, porque permitiu que startups colocassem seus próprios sistemas para rodar em minutos sem precisar instalar e operar infraestrutura em um datacenter
- Durante cerca de 15 anos, acreditei fortemente na AWS, mas, com o tempo, os incômodos foram se acumulando e, em certo momento, percebi que já não gostava mais da AWS
Insatisfações com a AWS que se acumularam ao longo do tempo
-
Bibliotecas cliente e a transição do Python
- Durante os primeiros 6 anos, a AWS não criou suas próprias bibliotecas cliente e deixou que a comunidade implementasse bibliotecas para linguagens como Python, o que foi visto como transferir esse peso para programadores que cediam seu tempo gratuitamente
- O fato de a AWS ter demorado demais para migrar do Python 2 para o Python 3 também ficou como uma grande insatisfação
-
DynamoDB e a experiência com custos
- Depois de usar o DynamoDB, apareceu no fim do dia uma cobrança de US$ 75 e, além do custo, o próprio sistema pareceu a pior forma imaginável de fazer isso
-
Custo de transferência de dados e cobrança complexa
- O custo de saída de dados da AWS já foi de 20 centavos por GB e depois caiu para 9 centavos por GB, mas ainda é considerado muito caro
- Há cobrança até pela movimentação de dados entre sistemas internos da AWS e, em alguns casos, a estrutura passa a sensação de cobrança dupla ou tripla, o que torna difícil evitar armadilhas de faturamento sem entender isso em profundidade
-
IAM e a complexidade geral
- O IAM é um sistema que lida com autenticação e regras de acesso, mas é percebido como excessivamente complexo
- Defensores da AWS dizem que é preciso usá-la porque operar Linux, hardware, rede e segurança por conta própria é complexo demais, mas quase todas as áreas da própria AWS também carregam uma complexidade enorme, o que no fim exige uma equipe cara de especialistas
-
AWS Lambda e lock-in
- O AWS Lambda vende a ideia de escalabilidade, mas exigia lidar com tempos de inicialização lentos e grande complexidade de desenvolvimento
- Na comparação com operar um servidor web próprio, não vi vantagem real e vi muitas desvantagens; ao sair da AWS, a parte mais difícil de desfazer foi justamente o AWS Lambda
- O uso do AWS Lambda deixou a impressão concreta de que vendor lock-in realmente existe e de que era uma escolha que exigia continuar convencendo a si mesmo de que ainda era melhor
-
Projetos open source e receita com hospedagem
- Na minha visão, a AWS levou adiante OpenSearch, Valkey e DocumentDB mesmo quando projetos como Elasticsearch, Redis e MongoDB demonstraram que não queriam que seus produtos fossem copiados e monetizados
- Depois que essas comunidades e empresas criaram o mercado, a AWS ficou com a receita dos serviços hospedados, e isso teria contribuído para o aumento de licenças defensivas como SSPL, Elastic License e RSAL, além do modelo source-available
Alguns serviços que ficaram após sair da AWS
- Depois que meu vínculo com a AWS se rompeu, tirei tudo de lá e fechei quase todas as contas
- Ainda assim, mantive apenas alguns serviços que, na época, me pareciam de fato a solução certa
- O que ficou foram os domínios no Route53, alguns backups no S3 e o AWS WorkMail
- Depois recebi um aviso de que o AWS WorkMail será encerrado nos próximos 12 meses
Por que voltei por um tempo à AWS
- Recentemente, fiz login na AWS de novo para pesquisa e testes
- Queria verificar quão bem o Claude/Anthropic funcionava no AWS Bedrock e, no caso do Claude Code, concluí que ele funciona da mesma forma, mas é mais lento e muito mais caro do que uma assinatura da Anthropic
- O equipamento mais rápido que eu tinha em casa era uma CPU de 20 núcleos com 32 GB de RAM, e eu queria medir o quão rápido meu código rodaria em uma máquina com 192 núcleos e 1 TB de RAM
- Cerca de um mês atrás, o teste com AWS Bedrock terminou sem problemas e, depois do teste, desliguei tudo
- O AWS Bedrock pode ser útil quando privacidade é necessária, mas, por causa do custo, não pretendo voltar a usar o Claude no AWS Bedrock
Restrição da conta durante o teste com EC2 Spot
- Depois disso, iniciei uma instância EC2 Spot de 192 núcleos e, durante cerca de 3 horas de teste, recebi um e-mail da AWS com a mensagem “Suspected security breach of your account”
- Acredito que o fato de uma conta quase inativa ter começado de repente a usar recursos computacionais caros pode ter acionado um alerta interno de segurança da AWS
- Entendo e avalio de forma positiva a intenção da AWS de proteger o usuário
- Mas a AWS suspendeu ou restringiu a conta e, como resultado, a conta de e-mail principal do meu negócio, que usava o AWS WorkMail, parou de funcionar
- Ninguém mais conseguia me enviar e-mails e eu também não conseguia criar nenhum recurso da AWS, então não pude continuar o teste que pretendia fazer
Resposta do suporte e demora
- Respondi ao alerta do suporte da AWS dizendo que a conta não havia sido invadida e que não havia problema nem cobrança anormal, mas não recebi resposta
- Como eu não tinha suporte premium, tive de esperar o prazo de resposta de 24 horas informado pela AWS, e, mesmo depois de 3 dias, nenhuma resposta do suporte chegou
- Depois de pedir ajuda no fórum da AWS, recebi a orientação de seguir as instruções do e-mail e usar o chat em vez da web
- Executei todas as ações pedidas, como trocar a senha, apagar tokens de acesso e verificar o histórico de cobrança, e, após esperar cerca de 30 minutos até ser atendido no chat, conversei longamente com um representante da AWS
- O atendente pareceu satisfeito e disse que pediria tratamento ao time interno responsável, mas, mesmo após 24 horas, a restrição não foi removida
- Quando fiz um acompanhamento 8 horas depois, recebi apenas a resposta de que eu deveria aguardar
A conclusão que se confirmou de novo
- Mesmo 4 dias após a conta ter sido restringida, eu ainda tinha trabalho que queria testar em máquinas grandes e passei a me preocupar com a necessidade de fazer outro pedido de “quota” para isso
- O sistema de e-mail comercial ainda continuava sem funcionar
- Essa experiência de retorno confirmou de novo por que eu saí da AWS, e concluí que preciso sair do AWS WorkMail e migrar também os domínios do Route53 para nunca mais voltar
- Foi um grande alívio já ter saído da AWS no passado, mas o fato de o sistema de e-mail em que confiei e deixei lá ter sido interrompido durante esse retorno foi visto como um fracasso
- A AWS pode até remover a restrição da conta em algum momento, mas não há como saber quando isso acontecerá
1 comentários
Comentários no Hacker News
Há alguns anos entrei numa empresa para liderar a equipe de desenvolvimento e me pediram para lançar o produto em 3 meses, mas quando fui adicionar uma nova máquina na AWS, o próprio fato de o preço não aparecer na interface me pareceu um sinal de uma relação hostil e exploratória
Eu precisava abrir separadamente a tabela de especificações e a tabela de preços para comparar, e pela minha experiência passada, se eu visse esse tipo de sinal e mesmo assim não fosse embora, então as consequências depois seriam minha responsabilidade
Então criei uma conta na DigitalOcean, migrei tudo para lá e configurei o CI/CD para implantar por lá também, e passei os 2 meses restantes focando no produto, lançando 1 mês antes do prometido
Uma vez vi um vídeo em que cavavam um buraco na margem de um rio e o conectavam ao rio com um cano para que os peixes entrassem sozinhos na armadilha; essa imagem ficou muito forte para mim como um exemplo de como escolher sempre o caminho de menor resistência e não desfazer erros é a receita para acabar como aqueles peixes
Ainda não tomei susto por causa de cobrança
No passado contratei um desenvolvedor júnior que tinha acabado de concluir um estágio na AWS, e ele me mostrou um dashboard que havia feito sozinho durante o verão, sem ajuda de PM ou designer, e aquilo parecia realmente terrível
Alguns desenvolvedores têm bom senso de produto/UX, mas a maioria é muito fraca em UX, então em vez de ser algo intencional, provavelmente era só uma cultura de UX ruim
A AWS é boa, mas não serve para todo mundo, e existe um ponto entre serviços como Heroku e bare metal que abstrai bastante a manutenção, mas ainda dá algum controle sobre a arquitetura de escala
Em outras palavras, como provedor de nuvem a AWS ajuda a escalar, mas não é a ferramenta para montar a configuração mais barata e mais simples
Se você tem capital de VC e vende crescimento, a AWS pode ser uma escolha segura, e com os créditos de startup de 2 anos via aceleradoras, dá para focar na construção em vez do orçamento de infraestrutura nos primeiros 18 meses
Se você é bootstrap ou indie, pode escolher algo simples e viável, e Hetzner ou DigitalOcean já funcionam muito bem
A Amazon provavelmente quer que exista um pouco de atrito para consultar preços com facilidade, mas o principal motivo parece mais a lei de Conway
A AWS ainda expõe seu organograma em forma de produto
Se abrir duas abas para comparar custos já for incômodo, talvez seja melhor evitar não só a AWS, mas qualquer provedor de nuvem
Quando entram NAT Gateway, CloudFront, S3, auto scaling e load balancer, calcular custo fica mais próximo de arte do que de ciência exata
Se você não vai usar essas coisas, então também há pouco motivo para usar AWS, e não faltam provedores de VPS baratos
Considerando apenas OpenSearch e Valkey, a explicação de que “a AWS criou um fork e isso provocou a mudança de licença” está completamente invertida
A AWS só criou o fork depois que o projeto upstream mudou a licença, e no caso do Valkey em especial, ele foi criado por membros da antiga equipe principal do Redis
A AWS passou por cima deles oferecendo um serviço totalmente gerenciado, então nesse caso eu fico do lado de quem criou os projetos
Basicamente, a AWS tomou o sustento deles, e eles acabaram sendo forçados a mudar a licença
Também me pergunto se isso já não viraria algum dinheiro relevante para as equipes open source, além de incentivá-las a contribuir para melhorar os produtos sem assumir risco
Eles mereceram passar pelo Valkey
Ainda lembro do JBoss e do Marc Fleury
Esse é exatamente o ponto
Já fui e voltei algumas vezes entre serviços de nuvem e self-hosting
No começo usei Vercel e, como o projeto era em Next.js, a experiência foi boa, mas pagar US$ 20 por mês por um projeto com menos de 100 usuários parecia caro para um serviço com exigência baixa de desempenho
Depois montei meu próprio servidor com Hetzner e Coolify; como o Coolify é open source, eu só pagava o custo do VPS, e com US$ 5 por mês já dava para rodar uma instância de PostgreSQL e um servidor web
Mas ainda dava muito trabalho manter PostgreSQL e Redis, e mesmo dentro de contêineres Docker era chato repassar variáveis de sistema e variáveis de ambiente entre serviços
Então mais tarde migrei para Cloudflare Workers, D1 Database e Cloudflare KV, e como tudo podia ser chamado diretamente dentro do Worker, não havia necessidade de passar variáveis de ambiente
A experiência de desenvolvimento local também é boa e o preço é razoável, então desde então sigo usando o ecossistema da Cloudflare como um todo
Apps full-stack e deploy de arquivos básicos ficaram muito mais simples, e a AWS passou a ser bem mais difícil até do que self-hosting
O único problema que tenho com PostgreSQL costuma ser algum trabalho de migração ao mudar para uma nova versão major
Também fico curioso se repassar variáveis de sistema e ambiente entre serviços não ficou mais difícil justamente por causa do Docker
Para permitir e-mail, é preciso configurar os bindings necessários, mas pelo console isso aparentemente nem pode ser configurado, e depois que o Wrangler configura, parece que você nem consegue ver
É surpreendente que o autor não goste de DynamoDB
É um dos serviços da AWS de que eu mais gosto: boa disponibilidade, quase nenhum trabalho operacional e, sempre que usei, custo bem baixo
Só que você precisa dedicar tempo para modelar os dados de antemão e, para isso, precisa ler e entender a documentação do serviço
No fundo ele deve ser visto como um armazenamento chave-valor relativamente simples, com boa durabilidade e expansão praticamente infinita do tamanho da tabela, e não como um banco SQL
A forma mais fácil de gerar uma conta de US$ 75 com código de protótipo é fazer vibe coding tratando-o como se fosse um banco SQL com JOIN e GROUP BY
Onde ele realmente brilha é quando você precisa de 1 ou 2 tabelas pequenas para armazenamento persistente sem querer administrar um RDBMS inteiro, ou quando precisa consultar uma tabela enorme de forma simples sem tentar encaixá-la num RDBMS
Não use um alegre armazenamento chave-valor como se fosse um banco de dados
O custo inicial de carga foi de cerca de US$ 50, e depois disso o custo de manutenção ficou em algo como 10 centavos por mês
Sempre dou risada quando vejo textos assim
Eles estão certos e errados ao mesmo tempo, e um sistema deve ser construído “o mais simples possível, mas não mais simples do que isso”
Se você acha que pode ignorar os detalhes, depois o incômodo volta maior
IAM é simplesmente complexo
Não consigo pensar em nenhum caso em que usuários, grupos, funções, políticas, provedores de identidade e OIDC tenham sido implementados de forma realmente simples
Já vi gente que rejeitava Kubernetes por ser “complexo demais” e acabou reinventando Kubernetes de forma ruim e improvisada com Vault, Consul, systemd, Nomad, iSCSI, Ansible, Jenkins, Puppet, Bash, cuspe e barbante, cometendo um monte de erros
Algumas funcionalidades parecem desnecessárias até que deixam de ser
Tendo trabalhado como único responsável por infraestrutura em startup, acho a AWS algo que, em sua maior parte, está dentro do que dá para aprender, e as partes horríveis em geral podem ser evitadas
Se você odeia Lambda, então não use; use EKS, ECS ou EC2
Visto de 10 mil pés, é só isso
O motivo de o IAM ser bom é que ele se aplica do mesmo jeito por fora e por dentro
Equipes internas da AWS não têm acesso a mais coisas só por serem internas; se elas ganham permissão para fazer algo na conta do cliente a fim de prestar determinado serviço, isso acontece porque o cliente colocou o principal de serviço na relação de confiança do IAM e permitiu esse acesso, e o cliente pode ver e auditar isso
Por exemplo, o Lambda tem a função do Lambda, porque você não quer que o serviço Lambda leia um bucket S3 só pelo motivo de “somos a AWS, então temos acesso automático”
Mesmo acesso interno da AWS pode ser claramente visto e controlado pelo cliente
Algumas coisas hoje já são padrão de forma óbvia, mas muita gente ainda se recusa a investir tempo para aprendê-las direito
Se um bom engenheiro de infraestrutura gastar dois meses numa configuração com OVH para “economizar dinheiro”, isso sai mais caro do que o valor economizado por não simplesmente usar Fargate ou RDS
Fico curioso sobre quando o mesmo tipo de discussão vai começar a surgir sobre empresas como Anthropic e OpenAI
O movimento atual da IA tem um cheiro parecido com o início da AWS, e parece que todo mundo entrou de cabeça para depois perceber que acumulou uma grande dependência difícil de remover
Lambda é realmente sensacional, e na minha opinião é a melhor forma de operar serviços implantados com ciclos rápidos de iteração sem dor de cabeça
Não é obrigatório seguir para microsserviços nem dividir o código em bilhões de repositórios minúsculos
Se você não espera compartilhar estado no servidor entre requisições, dá para mover um servidor web padrão para Lambda
Eu não trabalho nessa área, então só mexo na AWS de vez em quando em projetos pessoais por diversão, e toda vez parece um pesadelo
Eu só quero montar um servidor experimental para um jogo de cartas, não fundar uma nova instituição financeira; ainda assim, tudo parece preparado para escalar infinitamente amanhã e presumindo uma organização de mil pessoas e orçamento de VC
Ainda bem que serviços como Netlify colocam uma camada por cima para eu não precisar ferver o oceano
Talvez um dia eu realmente precise aprender IAM, VPN e sabe-se-lá-o-quê, mas até lá sinto que meus olhos vão saltar para fora toda vez que encosto na AWS
Você não precisa implementar todos os padrões enterprise
Tem tudo de que preciso e o preço é razoável
No fim, em projeto pessoal só importa custo, então isso não gera receita relevante para a AWS
Desde 2023 a AWS vem sendo esvaziada de forma sistemática em pessoal técnico
Isso aconteceu por grandes demissões e por duas rodadas de plano de melhoria de desempenho, e muita gente competente que eu conhecia em pré-vendas ou suporte já não está mais na AWS
Em compensação, vi com frequência permanecer e ser promovidas pessoas com histórico de trabalho muito mais nebuloso
A AWS deve ser usada por conta e risco de cada um, e Paul Vixie não vai aparecer para salvá-la
Há muito tempo o ElastiCache me incomoda de forma especial
O RDS agrega valor com escalabilidade, configurações razoavelmente otimizadas e backups de que você não precisa se preocupar, então dá para aceitar pagar por isso
Mas o ElastiCache quase não adiciona valor, e o preço parece exploratório
Comparado a uma instalação básica de Redis, ele é mais lento, menos otimizado, menos estável, e enquanto um Redis sem configuração suporta vários DBs, o ElastiCache suporta apenas um
Há alguma melhora de escalabilidade, mas como um Redis básico supera o ElastiCache por uma margem tão grande em instâncias semelhantes, casos em que essa melhora realmente faz falta são muito raros
A AWS não acrescenta tanto assim em API ou acabamento, e em compensação Redis/Valkey é um dos serviços mais simples de hospedar por conta própria