anunciad

quarta-feira, 6 de fevereiro de 2013

Solução prática e segura para grandes sites com MySQL

Bancos de Dados


No meu primeiro artigo sobre os serviços da Amazon Web Service, eu ensinei como usar um servidor virtual para hospedar um blog WordPress gratuitamente por 1 ano. Posteriormente, vários outros artigos vieram explicando como associar um endereço IP a uma instância ou gerenciar o DNS do seu domínio no Route 53. Agora, porém, me dirijo à pessoas com necessidades mais significativas.

Neste artigo vamos abordar a necessidade de proprietários de grandes blogs WordPress, sites com Joomla, fóruns, lojas de e-commerce e outras plataformas Web que fazem uso de bancos de dados relacionais, e sofrem com o backup destes, além de ter uma sensação desagradável de não gozar do nível de proteção que gostariam.

É comum que o site cresça preservando uma estrutura muito limitada, com o banco de dados MySQL rodando na mesma máquina onde está o servidor HTTP, juntamente com os arquivos estáticos. A primeira providência quando as coisas começam a ficar pesadas demais é alugar um servidor virtual ou dedicado de maior capacidade.

Isto era uma boa coisa para se fazer até muito pouco tempo atrás, quando não havia alternativa melhor, ou pelo menos com custo razoável. Entretanto, o cenário mudou rapidamente e hoje, é um pecado que grandes sites ainda mantenham toda sua estrutura rodando na mesma máquina, e pior, fazendo backups internos no próprio servidor.

Com o advento da computação em nuvem, digo nuvem de verdade, com API e ferramentas de automação, a vida dos administradores de sites ficou mais fácil, e na maioria das vezes, a boa notícia se estende ao bolso, com uma boa redução de custos.

Hoje, por exemplo, um blog WordPress ou uma loja usando Magento com milhões de visitas mensais e milhares de páginas, pode usar uma estrutura mais inteligente, flexível e barata.


Uma solução simples, robusta e eficiente



Na imagem acima, mostramos uma estrutura simples, porém eficiente para sites com grande volume de acessos. Uma instância EC2 roda o servidor HTTP com um blog WordPress, por exemplo. Porém todo o site estará armazenado em um volume EBS separado e anexado a esta instância.

O banco de dados roda no serviço RDS configurado para espelhamento (Multi-AZ Deployment). Com isso, a Amazon cria um clone em outra região do mundo. Configura-se um backup automatizado que retém versões do DB de até 8 dias anteriores.

Os arquivos estáticos, para maior desempenho, são colocados no serviço de armazenamento S3 que será ligado ao CloudFront, o CDN da Amazon que distribui seu conteúdo com baixa latência.


Características do RDS, o servidor de banco de dados relacionais da Amazon

O espaço para armazenamento pode ser modificado a qualquer momento e a alteração demora algo em torno de 5 minutos. O upgrade do tipo de instância também é feito no console de gerenciamento. Nos meus testes, demorou cerca de 7 minutos. Podemos aplicar a alteração imediatamente ou definir dia e horário. É fácil, por exemplo, fazer com que o upgrade aconteça automaticamente na madrugada de um sábado, enquanto assistimos de braços cruzados.

Os upgrades menores de software, também podem ser feitos automaticamente e de forma agendada.

O espelhamento dobra o preço, mas proporciona a segurança de ter seus dados sempre sincronizados em outra região do planeta e acessados automaticamente em caso de falha do banco de dados principal. O usuário do seu site, sequer perceberá a falha.


Backups automáticos dos arquivos

Os volumes EBS podem ser clonados, algo que a Amazon chama de snapshots. Este procedimento é realizado em minutos e pode ser automatizado dentro do próprio sistema operacional da instância. Não sabe fazer ou não quer ter o trabalho? Por 3 dólares mensais uma ferramenta de terceiros chamadaAutoSnappy, cria snapshots ilimitados dos seus volumes.


Falhas? Restaure em 10 minutos



O administrador pode criar uma imagem da sua instância em produção. Assim, em caso de falha, a criação de uma nova instância plenamente funcional iria demorar cerca de cinco minutos, no máximo uns dez. Bastaria então redirecionar o endereço IP para esta nova instância, um procedimento de poucos segundos.

Nada de esperar propagação de DNS para um novo servidor. É algo rápido e rasteiro! Tudo é feito no console de gerenciamento da Amazon, que coloca sua plataforma no ar em questão de minutos, e não de horas ou mesmo dias.


Distribua seu conteúdo com baixa latência e ganhe o backup dos arquivos de bônus

Todo administrador quer a menor latência possível para seu site, ainda mais em tempos de Panda, o algoritmo do Google que considera a velocidade de carregamento como um fator de rankeamento. Para isso, além do cache obrigatório, usamos um CDN para distribuir nosso conteúdo.

[Update. O @flavio_raimundo, autor de um ótimo site sobre link building, me alertou para um erro no parágrafo acima. Na verdade, o Panda está focado na qualidade do conteúdo, enquanto que um dos fatores de ranqueamento usado pelo algorítimo do Google, é a velocidade de carregamento do site. Veja uma discussão sobre o panda  na Mestre SEO.]

Conforme a própria Amazon informa, o tempo de acesso aos arquivos no Amazon S3 é significativamente menor do que em um volume EBS, de forma que, ao distribuir o conteúdo pelo CDN da Amazon, chamado CloudFront, aumentamos ainda mais a velocidade do nosso site, principalmente se houver um grande número de imagens.

De bônus, ainda ganhamos o backup dos nossos arquivos no serviço de armazenamento de arquivos estáticos S3, que possui redundância. Com isso teremos o backup do backup do backup.

Por favor, não confie totalmente na nuvem. Administradores preocupados sempre manterão pelo menos uma cópia semanal de todos os seus dados localmente, ou no mínimo em outra região. É o preço mínimo que a responsabilidade cobra.


Conclusão



Ainda que os sites objeto desta abordagem sejam imensos, o processo de implantação é extremamente simples, e ouso dizer que até mesmo uma pessoa que se dedique a aprender o processo, assistindo minhas vídeo-aulas, conseguiria implantar tal arquitetura em um blog WordPress ou site Joomla.

A enorme flexibilidade e versatilidade dos serviços na nuvem da Amazon, bem como o fato de só pagarmos pelo que efetivamente usamos, faz dela uma escolha inteligente para quem precisa de rapidez na resposta de incidentes, nos upgrades e na segurança das suas soluções de backup.

Nenhum comentário:

Postar um comentário