Amazon Web Services: Tudo que Você Deve Saber - Parte 3 (EBS e RDS - MySQL e MariaDB)

Amazon Web Services: Tudo que Você Deve Saber

Dando continuidade à nossa série sobre os serviços da Amazon, dessa vez vamos falar sobre armazenamento de dados de bloco e em banco de dados (MySQL e MariaDB).


EBS


EBS (Elastic Block Store) fornece armazenamento em nível de bloco. Ou seja, oferece volumes de armazenamento que podem ser anexados como sistemas de arquivos, como unidades de rede tradicionais.

Os volumes EBS só podem ser anexados a uma instância EC2 por vez. Em contraste, o EFS pode ser compartilhado, mas tem um preço muito maior ( veja uma comparação aqui).


Dicas de EBS


  • Um pode provisionar IOPS (isto é, pagar por um nível específico de operações de E/S por segundo) para garantir um nível particular de desempenho para um disco.
  • Um único volume EBS permite 10k IOPS max. Para obter o máximo desempenho de um volume EBS, ele deve ser de um tamanho máximo e anexado a uma instância EC2 otimizada pelo EBS.
  • Um tamanho de bloco padrão para um volume EBS é 16kb.


EBS: Problemas e limitações



  • A durabilidade EBS é razoavelmente boa para uma unidade de hardware regular (taxa de falha anual entre 0.1% - 0.2%). Por outro lado, isso é muito ruim se você não possui backups! Em contrapartida, a durabilidade S3 é extremamente alta. Se você se preocupa com seus dados, faça backup do S3 com snapshots.
  • EBS tem um SLA Com 99,95% de disponibilidade.
  • Os volumes de EBS têm um tipo de volume que indica o tipo de armazenamento físico. Os tipos chamados de "padrão" (st1 ou sc1) são de discos antigos, que fornecem apenas centenas de IOPS - úteis apenas se você estiver realmente tentando reduzir os custos. Os gp2 ou io1 baseados em SSDs modernos são normalmente as opções que você deseja.

RDS


Amazon Relational Database Service (RDS) é o serviço de banco de dados na nuvem do Jeff Bezos, que oferece versões MySQL 5.5, 5.6 e 5.7, além do MariaDB, Aurora, PostgreSQL, Oracle e SQL Server.

O RDS é um serviço de banco de dados relacional gerenciado, permitindo que você implante e dimensione bancos de dados com mais facilidade.

RDS oferece suporte nativo para alta disponibilidade e failover para os seus bancos de dados.

Alguns links úteis


Dicas de RDS


  • O MySQL RDS permite o acesso a logs binários.
  • As instâncias Multi-AZ do MySQL replicam de forma transparente dados em AZs (Availability Zones - Zonas de Disponibilidade) usando DRBD. Backups automatizados de instâncias multi-AZ conduzem a instância de backup a reduzir picos de latência no primário.
  • Esquema de desempenho: enquanto Performance Esquema é habilitado por padrão no MySQL 5.6.6 e posterior, é desativado por padrão em todas as versões do RDS. Se você deseja habilitar o Esquema de Desempenho, será necessária uma reinicialização da instância RDS.
  • MySQL vs MariaDB vs Aurora: Se você preferir um banco de dados de estilo MySQL, mas está começando algo novo, você provavelmente deve considerar Aurora e MariaDB também. A Aurora aumentou a disponibilidade e é a solução de próxima geração. Dito isto, Aurora pode não ser tão mais rápido (5x?) que o MySQL para determinadas cargas de trabalho. MariaDB, o moderno community fork do MySQL, provavelmente agora tem a vantagem sobre o MySQL para muitos fins e é suportado pelo RDS.
  • Se você está procurando a conveniência gerenciada do RDS para outros bancos de dados, como MongoDB ou Cassandra, você pode querer considerar serviços de provedores como mLab, Compose, ou InstaClustr.
  • Certifique-se de criar um novo grupo de parâmetros e um grupo de opções para o seu banco de dados, uma vez que o grupo de parâmetros padrão não permite mudanças de configuração dinâmica.
  • As instâncias do RDS começam com um fuso horário padrão da UTC. Se necessário, isso pode ser mudado para outro fuso horário.

RDS: Problemas e Limitações


  • Sem  privilégios root. RDS fornece suporte a algumas stored procedures para executar algumas tarefas que exigem privilégios root, como iniciar ou parar a replicação.
  • Você pode replicar para instâncias não-RDS do MySQL, mas a replicação para essas instâncias será interrompida durante as falhas do AZ..
  • Não há habilidade de transferir manualmente o master de replicação nas réplicas, então elas devem ser todas reconstruídas após uma falha do master.
  • A maioria das opções globais são expostas apenas via grupos de parâmetros DB. Algumas variáveis que foram introduzidas em lançamentos de versões de MySQL posteriores, como avoid_temporal_upgrade no MySQL 5.6.24 não estão disponíveis no grupo de parâmetros 5.6.x do RDS e fazer uso deles exige uma atualização para o MySQL 5.7.x.
  • As instâncias RDS são executadas em volumes EBS (EOPs de propósito geral ou provisionados) e, portanto, são restritas pelo desempenho EBS.
  • Verifique quais recursos de banco de dados você precisa, pois nem tudo o que você pode querer está disponível no RDS.
  • Por exemplo, se você estiver usando PostgreSQL, verifique a lista de recursos e extensões suportadas. Se os recursos que você precisa não são suportados pelo RDS, você terá que implantar seu banco de dados você mesmo.
  • Se você usar o suporte de failover oferecido pelo RDS, lembre-se de que ele é baseado em mudanças de DNS e certifique-se de que seu cliente reage com essas mudanças adequadamente. Isso é particularmente importante para o Java, dado que o TTL do resolvedor de DNS é configurado por padrão.
  • Migração de banco de dados para RDS: ao importar seu banco de dados para o RDS, certifique-se de levar em consideração as configurações da janela de manutenção. Se um backup estiver sendo executado ao mesmo tempo, sua importação pode levar um tempo consideravelmente mais longo do que você esperava.
  • O tamanho das bases de dados é limitado a 6TB para todos os mecanismos de banco de dados, exceto o SQL Server, que possui um limite de 4 TB e Aurora, que suporta bancos de dados de até 64 TB.

Espero que esteja gostando da série. Deixe seus comentários!

Christian Guerreiro

Professor por vocação, blogueiro e servidor público por opção, amante da tecnologia e viciado em informação.


Ensino a distância em Tecnologia da Informação: Virtualização com VMware, Big Data com Hadoop, Certificação ITIL 2011 Foundations e muito mais.


Suporte o Tecnologia que Interessa!

Você acha que as informações compartilhadas aqui são úteis?
Então me ajude a produzir ainda mais e melhores conteúdos!


É muito fácil. Basta divulgar nossos treinamentos pra alguém que conheça!


E se for de Salvador, podemos estruturar um curso presencial para sua empresa!

Eu vou ficar muito grato (e quem fizer os curso também :)!