Quando seu WordPress começa a ter muitos acessos e nem um plugin de cache ajuda mais, talvez esteja na hora de considerar terceirizar parte de sua hospedagem em um CDN como a Amazon S3. Esse artigo vai te ensinar como configurar seu WordPress para trabalhar em conjunto com ele.

A Amazon Web Services (AWS) é um pacote de serviços web oferecidos pela gigante norte americana Amazon que forma uma plataforma de computação nas nuvens (“cloud computing”) chamada de CDN – “Content Delivery Network” (Rede de Distribuição de Conteúdo). Os serviços mais conhecidos da Amazon AWS são o Amazon EC2 e Amazon S3 (Simple Storage Solution), mas também inclui serviços como CloudFront, Simple Queue Service, SimpleDB e Elastic Block Store. Neste artigo, vamos focar exclusivamente no uso do Amazon S3 com o WordPress.

O que é a Amazon S3?

Mas então o que é o Amazon S3? É um serviço de hospedagem nas nuvens que é acessível por uma API. Usando a API deles, o usuário consegue hospedar vários tipos de informação na nuvem S3 deles. Mas ele não é nada parecido como o sistema de arquivos que você tem no seu computador.

O Amazon S3 é sistema de hospedagem sem hierarquia, chamado de “flat-namespace storage system“. No seu computador, por exemplo, você pode ter um diretório chamado C:\Documentos\Pasta\SubPasta\imagem.jpg – no serviço da Amazon, seria algo similar a: http://escolawp.s3.amazonaws.com/imagem.jpg. Note como não existem “pastas” e “subpastas”.

Um arquivo é hospedado em um “bucket” (“balde” em tradução livre). Cada bucket possui a mesma função de um diretório em um sistema de arquivos normais (ou seja, uma “pasta”). Mas não é possível inserir um bucket dentro de outro bucket (como se fosse uma “subpasta”). É possível hospedar vários tipos de arquivos dentro de cada bucket, com tamanhos que variam de 1 B a 5 terabytes (embora o tamanho máximo permitido para um objeto é de 5 GB). A URL do arquivo pode ser escrito em duas formas:

configurar amazon s3

Cada bucket precisa ter um nome único, que pode ter pontos (.), underscores (_) e hífens (-), além de qualquer letra em caixa baixa ou número.

E que tipo de arquivos você pode hospedar no S3? Qualquer tipo. Pode ser um arquivo de texto simples, uma folha de estilos CSS ou até mesmo um arquivo binário, como imagem, vídeo ou até mesmo um ZIP.

Mas por que contratar um serviço destes?

A Amazon S3 é um serviço pago, mas absurdamente barato. Ele é usado pelos maiores sites do mundo para tirar um pouco do “peso” do serviço de hospedagem. Mas como que ele ajuda?

Vamos supor que a página inicial do seu site pese 50 KB. Nessa página inicial, você tem 10 imagens que pesam 100 KB cada. Toda vez que um usuário acessar o seu site, ele vai estar baixando aproximadamente 1.050 kilobytes – um pouco mais de 1 MB. Não é muito, certo? Mas isto é apenas um acesso. Vamos supor que o seu site tenha 100 mil acessos únicos por dia: isto significa que diariamente seu serviço de hospedagem está consumindo aproximadamente 100 GB de transferência por dia, multiplicando por 30 dias são 3.000 GB por mês.

Mas, Canha, meu serviço de hospedagem tem transferência ilimitada! Isto não se aplica a mim!“. Ok, caro leitor, até aí tudo bem. Se dizem que é ilimitada, é ilimitada! O que os serviços de hospedagem não anunciam é quanto de processamento você pode consumir, e é isto que faz a diferença.

Cem mil acessos únicos por dia equivalem a quase dois acessos por segundo, mas vamos ser realistas: os acessos não vão ser espaçados igualmente pelo dia. A hora do almoço pode ver um pico de mil acessos por segundo, por exemplo! E isto vai pesar no processamento do seu servidor, podendo deixar ele lento ou até mesmo fazer com que suspenda sua conta por excesso de consumo de memória.

É aí que voltamos a pergunta inicial: por que contratar um serviço da Amazon S3?

Vamos rapidamente imaginar que transferimos todas as imagens para o serviço S3. Já de início, isto significa que nosso site que pesava em torno de 1 megabyte agora pesa apenas 50 KB! O usuário ainda vai ter que baixar 1 MB de informações toda vez que ele acessar o site, mas a maior parte será pega do serviço S3. Isto significa que você tem uma economia de processamento no seu servidor, deixando o seu site mais rápido e deixando de correr o risco de ter sua conta suspensa.

Quando devo utilizar os serviços da Amazon S3?

Não é para todos. É necessário levar em conta o peso do seu site e a quantidade de acessos diários que ele tem. Na maioria dos casos, será o seu serviço de hospedagem que irá te informar quando está na hora de usar um serviço de hospedagem nas nuvens terceirizado.

Um site que consome mais de 100 GB por mês pode se beneficiar do Amazon S3, que vai diminuir o tempo de latência do seu site e tirar um pouco do consumo de processamento de seu host. Mas sempre verifique com seu serviço de hospedagem se eles acreditam que você (e eles) poderiam se beneficiar com isto.

Configurando a Amazon S3 no seu WordPress

É relativamente fácil. Basta acessar o site da Amazon S3 e se cadastrar. Neste exemplo, vamos configurar nosso WordPress para que os arquivos de mídia (os arquivos na pasta /wp-content/uploads/) sejam hospedadas no AWS da Amazon.

Amazon Web Services

Após o login, você terá acesso a página de administração onde é possível visualizar seus buckets existentes – como não existe nenhum, basta clicar no botão “Create Bucket”. Vamos criar um bucket com o nome de “midia.seusite.com” (onde “seusite.com” é o endereço do seu site). Vamos deixar assim por enquanto e clicar em “Create”.

Em seguida, é necessário configurar o DNS do seu domínio para apontar ao nosso bucket (que agora só é acessível pelo endereço https://midia.seusite.com.s3.amazonaws.com/). Você terá que verificar com seu serviço de hospedagem como fazer para trocar o “cname record” – geralmente, se você tem acesso a um CPanel é possível fazer isto por lá. Caso não saiba como fazer isto, verifique a documentação que seu serviço de hospedagem oferece.

Resumindo, é necessário apontar o endereço midia.seusite.com para midia.seusite.com.s3.amazonaws.com utilizando o cname. Se tudo der certo, já é possível acessar seu bucket pelo endereço http://midia.seusite.com.

Agora vamos usar o plugin W3 Total Cache para configurar o Amazon S3 no nosso site. Basta instalar e ativar o plugin no seu WordPress. Evite usar o WP Super Cache pois ele não é tão facil de usar quanto o W3TC.

Acesse a página de configurações “General Settings” no menu “Performance” do seu WordPress e vá rolando a tela até encontrar a caixa escrita “CDN”. No campo “CDN Type:” selecione “Amazon Simple Storage Service (S3)” mas não selecione a opção “Enable” ainda:

Amazon Web Services

Agora vá em “Performance > CDN” e desmarque todas as opções na caixa “General”, pois vamos testar se tudo está funcionando antes de colocar no ar:

Amazon Web Services

Na mesma tela, logo abaixo você vai encontrar a caixa “Configuration”. Nesta janela é necessário digitar sua chave de acesso e o código de segurança (“Access key ID” e “Secret key”, respectivamente). Você consegue estes dados acessando sua conta da Amazon AWS e procurando pelo “Access Keys”. Basta copiar os campos de “Access Key ID” e “Secret Access Key” e colar no plugin. No campo “Bucket”, digite o nome do bucket que criamos (“midia.seusite.com”). Mantenha as outras opções no padrão que estão.

Após salvar, já é possível clicar no botão “Test S3 upload” para saber se está tudo funcionando.

Agora já podemos fazer o upload das imagens do nosso WordPress ao servidor da Amazon. Na caixa “General”, procure a primeira opção (“host attachments”), selecione essa caixa e clique no botão “Upload attachments”. Dependendo de quantos arquivos você tiver, esse processo pode demorar. Vá tomar um café enquanto você espera.

Quando os arquivos forem transferidos, basta voltar a página de “General Settings” do W3 e clicar naquele “Enable” que falei para deixar desmarcado anteriormente. Salve e ative o plugin. Pronto! Basta acessar o seu site e verificar no código-fonte se as imagens da pasta de uploads estão vindo do endereço http://midia.seusite.com. Teste exaustivamente as páginas do seu site para ter certeza que tudo está 100% correto!

Hospedando outros arquivos na Amazon S3

Na tela do W3 Total Cache você deve ter notado que é possível hospedar também os arquivos da pasta wp-includes, os arquivos do seu tema, seus arquivos CSS e JS minificados entre outros arquivos personalizados.

Para isto, basta seguir os mesmos passos acima e selecionar as caixas apropriadas, fazer o upload (clicando no botão “Upload X files” de acordo), aguardar e pronto. Novamente, vá testando o seu site para saber se está tudo ok: verifique o código-fonte, deixe comentários de teste e use proxys para testar se ele funciona bem de outras conexões.

Fica a seu critério quais arquivos você deve hospedar na Amazon S3. Eu foquei no exemplo de hospedar os arquivos de mídia pois é o que mais pode pesar, mesmo com sistema de cache ativado. Mas cada caso é um caso.

Conclusão

Configurar um serviço de CDN como a Amazon S3 pode trazer benefícios para o seu WordPress, ainda mais quando você possui um alto número de visitas por dia. Em pouco tempo você vai notar como o tempo de carregamento do seu site vai diminuir, os acessos vão aumentar e seu posicionamento nos sistemas de busca vão melhorar. Por um investimento muito baixo e a facilidade de uso, vale a pena contratar o Amazon S3 quando o seu serviço de hospedagem começar a chiar.

Abraços!