Entendendo o novo modelo de reserva de instâncias EC2 – AWS

Calculator_5122xHoje irei explicar a recém anunciada mudança nas formas de efetuarmos reservas de instâncias EC2 no ambiente Amazon Web Services – AWS. Primeiro vamos entender o por quê efetuar reservas e em quais casos devemos ou não optar por reservar instâncias EC2.

A reserva de uma instâncias EC2 consiste primeiramente em você ter um ambiente definido, ou seja, um ambiente que não exigirá mudanças nos tipos de instâncias (instance type). Em outras palavras, temos um ambiente rodando com um certo número de instâncias EC2 e as mesmas não sofrerão mudanças em um longo prazo de tempo. Por quê precisamos ter absoluta certeza? Pois quando efetuamos reservas, estamos contratando uma instância por um período de 1 ano à 3 anos. E se amanhã deixarmos de utilizar essa instância EC2 reservada estaremos “jogando dinheiro fora”. Outro ponto que vale ressaltar é que a instância reservada fica atrelada à Região (region) e à Zona de Disponibilidade (availability zone) escolhida no momento da reserva. Ou seja, se reservarmos uma instância EC2 na Região São Paulo, na zona de disponibilidade sa-east-1a, a mesma deverá permanecer nesta Região até o término do período da reserva, senão estaremos pagando por um “desconto” que não será usado. Podemos somente solicitar a mudança da Zona de Disponibilidade.

Vamos começar entendendo as 3 opções de reserva que a AWS fornece atualmente:

All Upfront – nesse modelo de reservas, o cliente opta por pagar pelo custo total da instância em uma única vez de acordo com o período escolhido (1 ano ou 3 anos). Ou seja, iremos pagar pelo preço total (one time payment) com um valor bem abaixo comparado ao custo On-Demand (sob demanda). O custo à pagar é à vista e já englobará o valor total do período, não haverá cobranças mensais adicionais sobre a instância reservada. Nesse modelo o desconto pode chegar à 60%.

Partial Upfront – neste segundo modelo de reservas, o cliente opta por pagar um valor menor à vista (se compararmos ao modelo All Upfront) e as cobranças mensais terão um grande desconto. No geral, o desconto gira em torno de 35%.

No Upfront – neste último modelo de reservas, o cliente não pagará nenhum valor à vista, porém o desconto será aplicado da mesma forma nas cobranças mensais. Lembre-se que ao efetuarmos uma reservas estamos fechando um contrato com AWS e as cobranças mensais pela instância serão realizadas nos meses decorrentes do contrato. Nesse modelo, o desconto gira em torno de 30%.

Vamos aos exemplos práticos de como calcular seu ambiente e escolher qual o melhor modelo de reservas se encaixa à sua empresa e seu ambiente AWS).

1º Exemplo: Vamos supor que temos 3 instâncias EC2 (com sistema operacional Ubuntu 14.04) na Região São Paulo – Brasil, conforme a tabela abaixo:

Instance Type Region / Zone On-Demand per Hour On-Demand per Mouth
m3.large sa-east-1b $0.190 por hora $139.00 por mês
m3.2xlarge sa-east-1a $0.761 por hora $557.06 por mês
c3.4xlarge sa-east-1a $1.300 por hora $951.60 por mês

No total de nosso ambiente fictício teremos um custo (Billing) de $ 1647.66 por mês, e $19771.92 por 1 ano de utilização.

Vamos agora calcular o valor efetuando reservas de todas as instâncias por 1 ano utilizando o modelo de reservas All Upfront.

Instance Type Region / Zone One time payment On-Demand per Mouth
m3.large sa-east-1b $886.00 à vista $0.00 por mês
m3.2xlarge sa-east-1a $3559.00 à vista $0.00 por mês
c3.4xlarge sa-east-1a $7577.00 à vista $0.00 por mês

Somando o valor total que deverá ser pago à vista no momento da reserva, chegamos ao valor de $ 12022.00. Se diluirmos esse valor em 1 ano (opção de contrato escolhida) chegamos ao valor mensal de $ 1001.00. Neste exemplo o desconto real é de 39,20%.

2º exemplo: Iremos utilizar o mesmo ambiente, porém agora iremos utilizar o segundo modelo de reserva de instâncias EC2 chamado Partial Upfront. Como mencionei, neste modelo, o cliente efetuará um pagamento à vista menor e terá uma redução nos custos mensais com as instâncias EC2. Vejamos:

Instance Type Region / Zone One time payment On-Demand per Mouth
m3.large sa-east-1b $545.00 à vista $29.93 por mês
m3.2xlarge sa-east-1a $2178.00 à vista $121.18 por mês
c3.4xlarge sa-east-1a $5420.00 à vista $192.72 por mês

Nesse exemplo, o pagamento à vista (one time payment) será de $8143.00 e o custo mensal será de $343.83. Se multiplicarmos o valor mensal por 12 meses e somarmos o pagamento à vista chegamos ao valor de $12268.96. Esse valor diluído em 1 ano temos um “custo mensal” de $ 1022.41. Novamente, comparando esse valor com o custo On-Demand, teremos um desconto real de 37,95%.

3º exemplo: como o mesmo cenário, iremos agora optar pelo modelo de reserva de instâncias EC2 chamado No Upfront. Como já mencionei, nesse modelo não precisamos efetuar nenhum pagamento à vista e mesmo assim teremos descontos mensais aplicados. Lembre-se apenas que mesmo nesse modelo, estamos fechando um contrato com a AWS e as cobranças pela instâncias (com desconto) serão automaticamente efetuadas em sua AWS Account. Vamos ver agora como ficaria nosso ambiente fictício com as reservas nesse modelo.

Instance Type Region / Zone One time payment On-Demand per Mouth
m3.large sa-east-1b $0.00 à vista $87.60 por mês
m3.2xlarge sa-east-1a $0.00 à vista $350.40 por mês
c3.4xlarge sa-east-1a $0.00 à vista $718.32 por mês

Aplicando as reservas utilizando esse modelo, chegamos ao custo mensal de $1156.32. Multiplicando esse valor por 12 meses, chegamos ao valor de $13875.84. O desconto real comparado ao modelo On-Demand é de 29.82% ao ano.

Concluímos então que antes de efetuarmos reservas de instâncias EC2 em nosso ambiente, precisamos garantir que optemos por instâncias que serão realmente utilizadas no período contratado (1 ano ou 3 anos). Não podemos esquecer que as instâncias ficarão atreladas à Região e Zona de Disponibilidade escolhidas no momento da reservas.

Outra dica, baseada em minha experiência é entender junto à diretoria (pessoas que tomam decisões estratégicas) de sua empresa e analisar o crescimento de seu ambiente a longo prazo. Não adianta reservarmos um modelo de instância (instance type) e em um curto período de tempo precisamos aumentar ou até diminuir o hardware pois estaremos contratando algo que não vamos realmente utilizar.

Dica: Podemos a qualquer momento migrar nossa reserva de instância EC2 entra redes EC2-Classic (clientes mais antigos) para EC2-VPC sem nenhum custo ou burocracia.

Em breve, farei um post passa-a-passo de como efetuar sua reserva de instâncias EC2, banco de dados RDS e instâncias do ElastiCache. Até a próxima!

Leitura recomendada:
http://aws.amazon.com/pt/blogs/aws/simplified-reserved-instances/
http://aws.amazon.com/pt/ec2/faqs/#reserved-instances
http://aws.amazon.com/pt/ec2/pricing/

  • Rodrigo Vieira

    Muito bom o post!

21