AWS - Custos que todo programador deveria saber
Tags: ptbr, aws, webdev, architecture
Published: 2019-06-10 10:56:06

O título deste post é uma referência direta aos [números de latência que todo programador deve saber](https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html). Hoje em dia existem várias versões desses números disponíveis por aí e não consegui encontrar o autor original com 100% de certeza. Algumas pessoas atribuem os números originais a [Jeff Dean](https://twitter.com/jeffdean).

Ao trabalhar em um projeto que atingirá uma certa escala, você precisa equilibrar várias preocupações. Que suposições estou fazendo e como as confirmo? Como posso entrar no mercado rapidamente? Meu design suportará a escala esperada?

Um dos problemas associados à escala é o custo da sua infraestrutura. Os provedores de nuvem permitem que você provisione milhares de CPUs e armazene terabytes de dados na ponta de um dedo. Mas isso tem um custo, e o que é insignificante para alguns milhares de usuários pode se tornar um furo no orçamento quando você alcança milhões de usuários.

Neste artigo, vou listar **números de referência** que considero úteis para ter em mente ao considerar uma arquitetura. Esses números não são destinados a uma estimativa precisa do orçamento. Eles estão aqui para ajudá-lo a decidir se seu design faz sentido ou está além do que você poderia pagar. Portanto, considere as ordens de grandeza e valores relativos ao invés dos valores absolutos.

Considere também que sua empresa pode obter descontos da AWS, e eles podem fazer uma enorme diferença.

# Computação

Qual é o custo de uma CPU nos dias de hoje? Eu usei o incrível [ec2instances.info](https://www.ec2instances.info/) para extrair o preço médio de uma vCPU.

Você pode obter os dados de [origem do repositório do Github](https://github.com/powdahound/ec2instances.info/blob/master/www/instances.json). Eu os copiei e processei usando um [script em Python que você também pode encontrar no Github](https://github.com/dhatanian/aws-ec2-costs). Todos os preços são para a região `eu-west-1`.

**Custo médio mensal**

- 1 vCPU moderna (4 AWS ECUs)	 - $58/mês
- Com 1 ano de reserva conversível (adiantado) - $43/mês
- Com 3 anos de reserva conversível (adiantado) - $30/mês
- Com instâncias Spot (estimado em) - $30/mês

Calculei o preço à vista com base em dados informais que recebi de várias fontes. Como os preços variam dentro de um dia e não consegui encontrar uma fonte de dados confiável para eles.

A AWS representa o poder de computação de suas máquinas nas Unidades de Computação Elástica (**Elastic Compute Units**) e 4 ECUs representam mais ou menos o poder de uma CPU moderna. Portanto, os preços acima são para uma CPU ou núcleo, não uma instância.

Aqui está o preço de 1 ECU em $ por hora em todos os tipos de instância que eu olhei:

![](https://david-codes.hatanian.com/assets/posts/2019-06-09-aws-costs-every-programmer-should-now.md/ecu-memory-cost.png)

E veja como a sob demanda (**on-demand**) se compara a reservas de um ano e três anos (ambos com instâncias conversíveis e pagamento adiantado):

![](https://david-codes.hatanian.com/assets/posts/2019-06-09-aws-costs-every-programmer-should-now.md/ondemand-vs-reserved.png)

# Armazenamento

Então você quer baixa latência, alta taxa de transferência e está planejando armazenar tudo no Redis? Então, além desses custos de CPU, você precisará pagar pela RAM.

Eu usei a mesma abordagem para extrair o preço médio de 1GB de RAM no EC2. O **Elasticache** é mais ou menos o dobro do preço **on-demand**, mas os preços caem rapidamente quando se olha para instâncias reservadas.

**Custo médio mensal**

- 1 GB de RAM - $10/mês
- 1 GB de RAM 1 ano de reserva conversível (adiantado) - $8/mês
- 1 GB de RAM 3 anos de reserva conversível (adiantado) - $5/mês
- SSD - $0,11/mês
- Disco Rígido - $0,05/mês
- S3 - $0,02/mês
- S3 Glacier - $0,004/mês

# Créditos

- [AWS costs every programmer should know](https://david-codes.hatanian.com/2019/06/09/aws-costs-every-programmer-should-now.html), escrito originalmente por [David Hatanian](https://twitter.com/DHatanian)