Como configurar seu domínio usando apenas AWS Route53 + S3

Nessa grande crise (2020) sua startup está precisando cortar custos?

Veja abaixo como configurar seu domínio usando apenas Route 53 + S3.


O AWS é cheio de recursos valiosos e hoje vamos destacar estes:

  • Usar o S3 para redirecionamento
  • Usar o Route 53 para redirecionar seu dominio para o S3

Com os recursos acima é possível definir que os acesso a seu domínio vá para outro, SEM PRECISAR ter uma instância EC2 rodando ou um IP só seu (Elastic IP). Isso tudo possibilita baixar o custo mensal, já que irá pagar apenas o S3 e o Route 53 (que são bem baratos).

Para ficar didático, iremos usar como exemplo nosso próprio blog, que está hospedado em terahorse.wordpress.com. Já compramos o domínio terahorse.com e tudo o que queremos é que se alguém digitar terahorse.com ou http://www.terahorse.com, o browser redirecione para terahorse.wordpress.com.

Começamos com o acesso direto ao wordpress. Alguém digita terahorse.wordpress.com e encontra nosso blog:

Mas já que compramos um domínio queremos utilizá-lo, não é mesmo? 🙂

O primeiro passo é criar o bucket S3. Mas espera!? O S3 não é usado para armazenar dados? Como pode ajudar nisso?

Bem, o segredo é que ele pode ser configurado como servidor de páginas estáticas. Então, se você tem apenas coisas que rodam no browser (ex: HTML/CSS/JavaScript/Imagens), você pode hospedar lá. Além disso ele permite ser usado como redirecionador, que é o que precisamos agora.

Para isso, crie um novo bucket com o mesmo nome do que o usuario ira digitar na url (ainda não entendemos o motivo dessa restrição):

Então, selecione o bucket, vá em Properties e depois clique em Static website hosting. Selecione redirect requests. Coloque o destino final desejado e coloque http no protocolo (essa receita de bolo toda ainda não funciona para https, em 2020):

Com o S3, nosso diagrama fica assim:

Isso quer dizer que agora nosso blog também está acessível por meio do endereço público do bucket S3. Não preciso dizer para não colocar nada confidencial lá, já que agora ele está exposto na Internet, certo?

Bom, a terceira parte é configurar o Route 53 para fazer a mágica de mandar os requests do nosso domínio para esse bucket. Vá no Route 53, clique na hosted zone do seu domínio e em Create Record Set.

Deixe o type padrão (A – IPv4 address), e marque Alias Yes.

No nome digite apenas o www, porque, dessa forma, o nome completo será http://www.terahorse.com. A página então irá sugerir o bucket que tem o mesmo inicio. Clique no bucket. Se quiser configurar o terahorse.com (sem o www), deixe em branco o name e crie o bucket com o nome equivalente (terahorse.com).

Pronto. Clique para salvar, teste numa nova aba e volte aqui para me falar se funcionou 😉

Nossa solução final segue o esquema abaixo:

Agora as 3 urls vão parar no mesmo lugar.

Ficarei muito feliz de saber se há como otimizar algo no processo acima. Portanto, deixe seu comentário.


Atenção: a solução acima é mais barata porém irá enviar um comando de redirecionamento para o browser para o wordpress.com. Isso quer dizer que o usuário irá ver na barra do browser o wordpress escrito. Para uma solução mais elegante (e mais cara), você pode deixar uma instância EC2 sempre rodando, com apenas um servidor Nginx, fazendo o redirecionamento no lado do servidor. Caso deseje, segue abaixo um exemplo de nginx.conf para usar:

server {
  listen 80;
  server_name terahorse.com www.terahorse.com;
  location / {
    proxy_pass https://terahorse.wordpress.com;
  }
}

O bloco acima irá pegar qualquer requisição para terahorse.com ou http://www.terahorse.com e irá redirecionar para terahorse.wordpress.com, e o usuário continuará vendo a url original, isto é, não ficará o wordpress aparecendo no browser.

O diagrama abaixo mostra como ficaria essa segunda configuração:

As requisições para terahorse.com são resolvidas pelo DNS (Route 53) para o IP configurado nele. Para ter um IP fixo para colocar nas configurações de DNS, precisamos de um IP só nosso. Por esse motivo precisamos “alugar” um IP, usando o Elastic IP. Com esse IP, o apontamos para a nossa instância EC2. Este EC2 tem um Ngix, configurado para ser um proxy reverso para nosso wordpress.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s