A oferta de serviços de gerenciamento de infraestrutura na nuvem como o Microsoft Azure, o Google Cloud Platform e o Amazon Web Services revolucionou a maneira de encarar a demanda de recursos nas aplicações web ao introduzir máquinas virtuais escaláveis a um preço acessível e ao alcance de praticamente qualquer desenvolvedor.
Essas plataformas não apenas simplificam o gerenciamento e setup dessa infraestrutura, levando para software tarefas que antes só eram possíveis por hardware, além de uma redução bastante significativa de custos a medida que o administrador pode optar por alocar menos recursos para uma aplicação e expandir processamento, memória ou armazenamento on-the-go de acordo com a necessidade, acompanhando a evolução na demanda.
É inegável que as facilidades são grandes, mas esses serviços geralmente são cobrados por hora de utilização, e a estimativa de gastos no final do mês pode ser bem imprevisível. As máquinas alocadas são cobradas mesmo quando ociosas e podem se tornar um buraco negro desnecessário no orçamento de pequenas empresas. Você pode otimizar seus investimentos e evitar armadilhas ou desperdícios de recursos seguindo 5 dicas simples que elaboramos nesse post. Confira!
Monitore sua demanda
A elasticidade das suas instâncias é um fator chave da sua infraestrutura que pode trazer grandes economias, identificar quando é possível desligar máquinas sem abrir mão da estabilidade do sistema é um primeiro passo. É comum em B2C que o tráfego fora do horário comercial seja reduzido, geralmente é possível reduzir em até 30% as instâncias sem prejuízos à aplicação. Em modelos de integração contínua, ambientes de teste rodando online em paralelo com a aplicação real em produção também devem ser desligados diariamente se ninguém for usar.
Além disso, a própria ferramenta de Autoscaling pode apontar a direção certa e automatizar o processo de ligar ou desligar máquinas. A dica é usar tags para cada uso de instância e monitorar a evolução ao longo do tempo: se há constância ou previsibilidade na demanda, seu sistema deve se adaptar a ela utilizando o mínimo de recursos necessário.
Tenha uma abordagem bottom up
T2.medium ou T2.large? M4 ou C4? A escolha da instância pode ser bastante confusa especialmente para desenvolvedores que estão começando a se aventurar com infraestrutura. É importante conhecer a sua aplicação e ter estimativas dos principais gargalos, precisará de mais memória, processamento ou armazenamento? Banda disponível é um limitador? Equacionadas essas variáveis, a resposta simples é que a instância ideal é a opção mais barata que atenda à sua demanda.
Se você já usa a AWS, é possível guiar sua decisão a partir das informações do CloudWatch e definir alarmes de utilização. A ideia geral é que você identifique um padrão mínimo que a sua aplicação precisa, escolhendo as instâncias mais adequadas: as opções incluem otimizações para processamento, RAM, I/O, GPU, entre outras. Mas não adianta ficar seduzido pelas especificações e pagar a mais sem que exista uma necessidade real.
O Trusted Advisor é uma ferramenta que traz sugestões de utilização baseadas nas métricas da aplicação, inclusive a redução de instâncias ou a alteração de tipos. Para uma demanda muito variável, é interessante utilizar um maior número de instâncias intermitentes menores (T2) ao invés de instância fixas (M3, M4) maiores, caso a sua aplicação permita, geralmente trazem uma redução de custos e operam com menos capacidade ociosa.
Utilize Instâncias Reservadas
Depois de identificado o perfil de instância mais adequado para a sua aplicação, é possível adquirir instâncias reservadas para aquele mínimo de recursos que estarão sempre ligados. É possível se comprometer com uma instância por 1 ou 3 anos e conseguir descontos substanciais nos valores face. É possível reservar recursos de EC2, ElastiCache, Redshift, RDS e DynamoDB em diferentes métodos de pagamento (Upfront, Partial ou No-Upfront), que podem eliminar riscos de alterações de câmbio ou se ajustar melhor a um orçamento mais limitado agora.
Mas não para por aí, você deve continuar monitorando a utilização das instâncias reservadas e, se for o caso, vender instâncias que não são usadas na Loja de instâncias, ou até mesmo procurar barganhas por períodos menores. A dica é deixar cerca de 80% da sua demanda 24/7 como instâncias reservadas, com certa folga para uma redução de demanda temporária. O payback costuma ser alto: você paga em 1 ano o que pagaria em 7 meses sem instâncias reservadas.
Aproveite sua equipe de Business Intelligence
Ainda que não sejam desenvolvedores ou que não entendam de infraestrutura, profissionais de BI podem ter bons insights ao analisar as próprias ferramentas da plataforma da Amazon, como o Billing Console. Identificar os recursos por tag ajuda a identificar departamentos ou responsáveis e criar alertas de budget ajuda a evitar surpresas de cobrança,
O Cost Explorer também permite acessar as métricas de maneira bastante visual e traduzir suas necessidades de maneira mais simplificada para outros setores da empresa. Para usuários mais avançados, é possível gerar Reports por hora para posterior análise e criação de KPIs. Uma dica é observar ao menos 3 aspectos: cobertura de RI (Instâncias reservadas / instâncias online 100% do tempo), Elasticidade (% de máquinas sendo desligadas por dia) e utilização de recursos.
Nuvem ≠ Datacenter
Assim como os recursos de elastic clouds parecerem virtualmente ilimitados, seus custos também podem ser exorbitantes. Na nuvem, Custo = Uso X Rate (custo de instância). Ganhar a segurança e mudar a mentalidade de ter sempre uma disponibilidade dos picos de demanda mesmo em períodos de baixa pode ser uma transição difícil para alguns administradores, mas é importante fazer essa distinção.
Não há como fugir, as únicas opções para redução de custos são 1) Reduzir o uso, verificar se é importante ter recursos constantes mesmo em finais de semana ou madrugadas e desligar sempre que possível, por exemplo. 2) Obter melhores taxas, seja pelo volume (com reserva de capacidade) ou escolhendo as máquinas mais baratas que dão conta do trabalho.
Por fim, em elastic clouds, vale o ditado que ‘o olho do dono engorda o gado’. O monitoramento constante da utilização dos recursos e da demanda aliado ao perfil da aplicação é que vão ditar quais são as oportunidades de redução de custos para cada projeto, mas só de seguir as nossas dicas é possível obter uma boa economia.
Gostou do conteúdo? Curta nossa página no Facebook e Linkedin e acompanhe todos os conteúdos lançados semanalmente pela GeekHunter.