O título deste post é uma referência direta ao diagrama
"Atrasos que todo programador deve saber" . Atualmente, existem várias versões deste diagrama e é difícil estabelecer o autor original. Alguns dizem que é
Jeff Dean .
Se você estiver trabalhando em um projeto que precisa atingir uma grande escala, precisará equilibrar alguns problemas. Que suposições fazemos e como confirmá-las? Como entrar rapidamente no mercado? Nosso design suportará a escala esperada?
Um dos problemas de dimensionamento é o custo da infraestrutura. Os provedores de nuvem permitem criar milhares de processadores e colocar terabytes de dados com um clique. Mas é caro e algo insignificante para vários milhares de usuários pode se tornar um enorme buraco no orçamento quando você alcança milhões de usuários.
Neste artigo, listarei alguns números de referência que são úteis para se ter em mente ao considerar a arquitetura. Esses números não pretendem ser uma estimativa precisa do orçamento. Eles ajudam a determinar se o seu design faz sentido ou se vai além do que você pode pagar. Portanto, consideramos ordens de magnitude e valores relativos, em vez de valores absolutos.
Lembre-se também de que sua empresa pode receber descontos da AWS e isso pode fazer uma enorme diferença.
Cálculos
Qual é o custo atual da CPU? Através da maravilhosa interface
ec2instances.info, obtive preços médios de vCPU.
Você pode obter os dados de origem
no repositório do Github . Copiei-os e processei-os com um script Python, que também
utilizei no Github . Todos os preços são para a região eu-oeste-1.
Avaliei os preços spot de acordo com vários usuários. Como os preços mudam ao longo do dia, não consegui encontrar uma fonte confiável de dados.
A AWS representa o poder de computação de suas máquinas em Elastic Compute Units, e 4 ECUs correspondem mais ou menos ao poder de um processador moderno. Portanto, os preços acima são mostrados para um único processador ou núcleo, em vez de uma única instância.
Aqui está o preço de 1 ECU em dólares por hora em todos os tipos de instâncias que classifiquei:

E aqui está como os preços sob consulta são comparados com reservas de um e três anos (adiantamentos):

Armazenamento
Então você quer baixa latência, alta largura de banda e planeja armazenar tudo no Redis? Além desses custos, a CPU terá que pagar pela RAM.
Usei a mesma abordagem para obter o preço médio de 1 GB de RAM no EC2. O Elasticache é cerca de metade do preço sob demanda, mas os preços caem rapidamente em casos reservados.
Embora esse seja o custo líquido de armazenamento, você também precisa observar os padrões de uso dos seus dados. Quanto processador você precisa para trabalhar 24/7 em uma memória 24/7?
O mesmo para o S3: quanto você pagará pelas solicitações de leitura / gravação? Vi cargas de trabalho em que o custo de armazenamento no S3 era insignificante, mas o custo de gravar um grande número de objetos no S3 fez com que a equipe escrevesse seu próprio sistema de arquivos em cima do S3.
Transferir
Alguns
comentários no HackerNews indicaram que eu havia perdido os custos de transmissão. De fato, se você fornecer dados para usuários finais ou precisar de replicação inter-regional, precisará considerar esses custos.