Loading
Loading

:: Izak.pt ::

Also known as Mozack!

Usar Amazon Route 53 para IP’s dinâmicos

Olá,

Muitos de vocês já devem conhecer o serviço de DNS da Amazon, o Route 53. Este serviço de DNS é o sítio onde colocam todas as informações do vosso domínio: records A, CNAME, etc…

O serviço, bem barato por sinal (0.50€/domínio), permite milhentas configurações, incluíndo resolução por latência, ou seja, vocês podem configurar o serviço a reencaminhar utilizadores com base na localização geográfica do cliente/servidor. Sem contar que podem ainda contar com tempos de resolução muito satisfatórios.

No entanto, não foi para vos falar do serviço em si que escrevo este post, mas sim informar-vos que este serviço, uma vez que suporta API, pode ser uma excelente solução para pessoas que têm servidor em casa e que o IP residencial altera sempre que a net cai ou a luz falha…

Como já vos tinha falado anteriormente neste post, há a possibilidade de alojarem as vossas aplicações WEB no vosso servidor/computador de casa, MAS, se a vossa net está constantemente a mudar de IP’s, aí torna-se complicado…

Para contornar questões como esta, existem serviços como o NO-IP (gratuito para sub-domínios deles, ou $25/ano para domínios próprios) que fazem bem o trabalho deles, mas aqui, mostro-vos como poupar $24.50/ano utilizando o serviço da Amazon Route 53 com o vosso próprio domínio, como exemplo, omeueu.pt.

Registar no AWS (Amazon Web Services) da Amazon

Para se registarem no serviço, vão a http://aws.amazon.com/pt/. Sigam todo o processo de registo e coloquem as vossas definições de pagamento, isto vai permitir que o vosso serviço fique logo activo e pronto a usar. Não vou desenvolver um processo de registo que é semelhante a qualquer outro que utilizam na internet, assim, vamos começar com código, API Keys, etc…

Receber Dados API do AWS

Este passo pode parecer um pouco complexo, aqui temos que criar um utilizador e um grupo para o utilizador, posteriormente, dar permissões a esse utilizador para utilizar o Route53.

  1. Vão ao seguinte endereço: https://console.aws.amazon.com/iam/home#groups
    1. Deverão ver uma imagem como esta:Amazon Create Group - ST1
  2. Cliquem no botão azul: Create New Group
  3. No passo seguinte, devem dar um nome ao vosso grupo, por exemplo, “meu-grupo” e cliquem no botão azul na parte inferior direita do ecrã.
  4. Na página seguinte, vão ver um monte de coisas numa lista, para este exemplo, precisamos que os utilizadores do grupo tenha acesso total ao Route 53, então selecionamos os seguintes items: AmazonRoute53DomainsFullAccess e AmazonRoute53FullAccess, conforme imagem, depois de selecionado, continuam:

    Amazon Route 53 - ST2
    Amazon Route 53 – ST2
  5. No passo seguinte, vai aparecer um resumo do vosso grupo e clicam, Create Group:

    Amazon Route 53 - ST3
    Amazon Route 53 – ST3

Criar utilizador e receber as credenciais

Agora que temos o nosso grupo criado, precisamos do utilizador, para isso, visitem esta URL: https://console.aws.amazon.com/iam/home#users

  1. Cliquem em “Create New Users”
  2. Escolham o nome do vosso utilizador, por exemplo: “casa” no campo 1. Se não precisarem de mais utilizadores, não precisam preencher mais nada.
  3. Mantenham selecionada a caixa: “Generate an access key for each user”
  4. Cliquem no botão “Create User”
  5. Guardem as chaves da API criadas para esse utilizador, será necessário mais tarde

Associar utilizador ao grupo

Agora já temos o grupo com as permissões e o utilizador criado, no momento, falta-nos associar o utilizador ao grupo, para isso sigam esta URL: https://console.aws.amazon.com/iam/home#users

  1. Marquem o checkbox do utilizador que pretendem associar
  2. Cliquem no topo em User Actions
  3. Cliquem Ass Users To Groups

    Amazon Route 53 - S4
    Amazon Route 53 – S4
  4. Agora, no ecrã seguinte, seleccionem os grupos aos quais pretendem associar este utilizador, no exemplo, vamos associar ao grupo “meu-grupo” e cliquem em “Add To Groups”

Neste momento, temos o utilizador e as chaves API, temos o grupo com acesso ao Route53 e temos o utilizador associado ao grupo, agora, vamos continuar…

[alert style=”red”]Requisitos:
1 – Conta AWS (Amazon Web Services) para gerir o Route53
2 – O Host Zone do vosso domínio configurado correctamente, incluíndo os DNS no vosso provedor de domínio
3 – Credenciais API válidas para criação/alteração de dados no Route53.
4 – Servidor + PHP instalado no computador que vai fazer a actualização dos IP’s
[/alert]

Agora que já têm os dados na vossa mão e, presumo eu, já têm o vosso host configurado no Route 53, vão fazer download dos ficheiros:

Coloquem a pasta crons num sítio acessível pelo vosso sistema. Existem mais umas coisas que vamos precisar que se chama Hosted Zone ID. Este ID de zona, pode ser encontrado aqui: https://console.aws.amazon.com/route53/home#hosted-zones:

Na lista (se tiverem mais que um domínio), devem ver qual a zona que pretendem atualizar o IP remotamente, e copiar o Hosted Zone ID dessa zona…

Agora, devem ter percebido que existe lá uma variável chamada $hostname que tem na frente um array(). Então, vou tentar explicar o porquê deste array. Imaginem que no vosso servidor de casa têm múltiplos subdomínios? ex.: blog.omeueu.pt, media.omeueu.pt, etc… Neste caso, todos os IP’s destes sub-domínios terão que ser actualizados no Route53, daí a lista.

Se, no vosso caso só têm apenas um domínio ou sub-domínio para actualizar, basta colocar os dados correspondentes, desta forma:

Agora, que todo o sistema está “construído” e no sítio, teremos que fazer a chamada do script.

Criar Cron de Actualização em MAC

Se o vosso sistema é MAC, basta utilizar o crontab para que o script seja executado e que os IP’s sejam actualizados. Para isso, abram o terminal e executem os seguintes comandos:

Dos exemplos acima, basta que utilizem um dos dois. Podem usar Curl ou php basta que configurem as coisas de acordo com o vosso sistema.

Criar Cron de Actualização em Windows

No windows temos que fazer algumas pequenas coisas. Sei da existência de algum software que faz e gere crons no windows. Se utilizarem o WampDeveloper Pro ele já tem integrado Curl e Wget, o que simplifica as coisas… Se esse é o vosso caso, façam o seguinte:

Depois baste que usem a agendador de tarefas do windows e façam o seguinte:

Conclusão

Neste momento, se tudo foi feito e sem problemas, se correrem o script directamente no browser, vão poder ver um output dos records actualizados. Assim, conseguem confirmar se o script se está a ligar bem ao Route53 e se está acessível internamente.

Os crons, devem ser configurados com IP’s locais isso porque, se o IP alterou, no AWS não estará actualizado…

No final deste pequeno tutorial, conseguiram um colocar um domínio próprio a funcionar num IP dinâmico, sem recorrer aos serviços caros que oferecem estas funcionalidades. Fora isso tudo, o Route53 tem uma extraordinária latência pelo que a resolução de DNS não atrasa tanto a ligação…

Espero que tenham gostado. Para dúvidas relacionadas com o tópico, comentem…

Leave a comment
Comments (1)
Plex- Acesso remoto pela web | :: Izak.pt :: • 2 anos ago

[…] IP Dinâmico da NOS configurado com Amazon Route53, conforme explicado neste post […]

reply

Please be polite. We appreciate that.

By Daniele Zedda • 18 February

← PREV POST

By Daniele Zedda • 18 February

NEXT POST → 34
Share on
2007 - 2017 © izak.pt Todos os direitos reservados.