Comente esse artigo
Deixe seu comentário para sabermos o que você achou desse assunto.
Comente esse artigo
Deixe seu comentário para sabermos o que você achou desse assunto.
Desde o início dos tempos, a humanidade busca maneiras para se reinventar, e aqui em nosso mundo de TI não poderia ser diferente, nos reinventamos todos os dias para buscar eficiência operacional, confiabilidade, durabilidade, segurança, agilidade, alta disponibilidade e, como acontece em todas as áreas, satisfação de nossos clientes. A AWS sempre busca uma maneira de se reinventar baseado nas necessidades de seus clientes, um bom exemplo disso é o Amazon Aurora que consegue responder a necessidade de um banco de dados relacional de alta performance.
Para quem não está familiarizado com o Amazon Aurora, este é um banco de dados relacional compatível com MySQL e PostgreSQL criado para nuvem que combina a performance e a disponibilidade de banco de dados empresariais como Oracle, SQL Server, e o benefício da simplicidade e economia de banco de dados de código aberto.
Segundo a própria AWS, o Amazon Aurora é até 5x mais rápido que banco de dados MySQL padrão e 3x mais rápido que bancos de dados PostgreSQL. O serviço oferece segurança, alta disponibilidade, confiabilidade de banco de dados comerciais por 1 décimo do custo. No formato PaaS e serverless, esta ferramenta é realmente fácil de gerenciar uma vez que é gerenciada pelo Amazon Relational Database Service (RDS) que automatiza tarefas administrativas e de infraestrutura como provisionamento de hardware, configuração de banco de dados, aplicação de patches e backups, permitindo que um cluster possa ser instalado em poucas horas seguindo as melhores práticas de TI e segurança. Com benefícios adicionais que somente são possíveis em nuvem, esta ferramenta oferece um sistema de armazenamento distribuído, tolerante a falha e com recuperação automática, escalabilidade que pode escalar automaticamente para até 128 TB por instância de banco de dados assim como altos níveis de performance e disponibilidade com até 15 réplicas de leitura de baixa latência, recuperação, backup contínuo para o Amazon S3 e replicação multi-az.
Você deve estar se perguntando: Tudo isso é excelente, mas onde e quando utilizar este produto?
Podemos trazer vários casos de uso quando utilizar este produto, como:
- aplicativos empresariais que exigem um banco de dados relacional de alta performance;
- aplicativos de software como serviço (SaaS) que exigem grande flexibilidade e escalabilidade de instâncias de armazenamento, alta performance e confiabilidade;
- Jogos web e aplicativos móveis criados para operar em grande escala que precisam de um banco de dados com alto throughput, escalabilidade de armazenamento massivo e alta disponibilidade. (para armazenamento sim, realtime a AWS tem o DynamoDB)
É em provável que o seu negócio já precisou ou utiliza soluções que exigem um motor de bando de dados de alta performance e baixo custo.
Benefício comprovado na prática:
Recentemente trabalhamos em um caso de uma aplicação JAVA ao qual responde alguns milhares de requisições por dia. Esta aplicação executa em AWS Elastic Beanstalk com regras de auto-scaling configuradas e banco de dados RDS MySql. Esta aplicação possui uma inteligência para efetuar buscas por alguns sites pré-programados de forma totalmente automatizada, o que gera uma grande quantidade de informações de alto volume , já que a mesma coleta captura de telas das respectivas consultas e acaba por armazenar em banco MySQL em formato de imagem. Avaliando a situação do servidor de banco, constatamos um tamanho de 2.7 TB e um espaço alocado de 5 TB, e a configuração de up-scaling de 10%, isto é, toda vez que o banco de dados chega perto do tamanho alocado, automaticamente o RDS MySQL aloca mais 10% de espaço.
Neste cenário o desafio foi trazer uma solução de arquitetura com foco em performance, durabilidade, escalabilidade. Você deve estar se perguntando:
Com esses principais questionamentos em mente, consideramos os seguintes pontos:
Como fizemos
Baseado neste cenário, seguimos com migração do RDS MySQL para o Amazon Aurora utilizando a ferramenta AWS DMS (detalharemos em um próximo artigo), de uma forma totalmente automatizada, que garante integridade dos dados e downtime mínimo.
E o custo, como ficou?
Para chegarmos na sugestão de migração para o Aurora, não olhamos somente a questão de performance, mas também fizemos o estudo de custos para que se prove a viabilidade técnica e financeira da solução proposta
Assim nosso estudo de custo se concluiu:
Veja que provisionamos 2 instancias com 3TB, isto é, 1 instancias principal com tamanho de 3TB e 1 instancia de réplica com tamanho de 3TB.
Para o RDS Aurora colocamos 2 Nós, um que consiste na instância principal e outro uma instância de réplica, com um armazenamento total de 6 TB, isto é, 3TB para cada instâncias.
Com esta infraestrutura conseguimos uma redução mensal de 51,86% utilizando a solução do Aurora, que ainda traz todos os benefícios técnicos que já falamos.
Assim como a AWS, para trazer o máximo de economia e performance que nosso cliente necessita, não nos contentamos em apenas movimentar o RDS MySQL para o Amazon Aurora, pois buscamos uma solução ainda mais eficiente utilizando um bucket S3 para armazenas os campos blobs (as imagens), uma vez que, o volume de campos blob chegava a praticamente 50% do tamanho total. Assim sugerimos a seguinte arquitetura:
Assim nosso estudo de custo se concluiu assim:
De fato, à primeira vista um banco de dados de código aberto como o RDS MySQL aberto em cloud parece ser sempre mais econômico do que utilizar um banco relacional proprietário, que neste caso é o Amazon Aurora e definitivamente existe uma série de outros fatores para se optar pelo Amazon Aurora.
Porém em nosso caso de uso, vimos que uma arquitetura computacional mais robusta, ao qual o Amazon Aurora foi desenvolvido, nos proporcionou utilizar um recurso computacional um pouco menor do que o utilizado atualmente pelo RDS MySQL com nível de performance ainda superior, com um custo de armazenamento inferior ao RDS MySQL e com o volume de armazenamento em questão, além de demostrar toda a facilidade de migração utilizando as próprias ferramentas AWS que neste caso foi o AWS DMS.
Além de todos os benefícios técnicos, com o trabalho de análise que foi realizado, alterando a forma de uso do banco de dados somado ao armazenamento mais barato do S3 foi possível uma redução ainda maior. Uma dica importante é buscar os produtos que podem atender seu cliente de acordo com a necessidade de cada um e simular a utilização nesta arquitetura proposta utilizando a própria calculadora da AWS, ir além e fazer uma análise mais profunda da aplicação, e assim ter todos os insumos para se tomar uma decisão.
Este artigo foi escrito por Diogo Jussani e Raphael Parra.
Deixe seu comentário para sabermos o que você achou desse assunto.
Deixe seu comentário para sabermos o que você achou desse assunto.