Tutorial Amazon Route 53

Tutorial Amazon Route 53

Tutorial Amazon Route 53

 

ACTUALIZACIÓN: (17/11/2011)  Amazon acaba de anunciar que ha incluido la gestión de Route53 desde la consola de gestión. Sin duda un gran avance que facilita enormemente la gestión DNS.

 

Amazon Web Services no para de sacar productos interesantes y económicos. Si las bases de datos se volvieron más simples con Amazon RDS, ahora “desaparece” el problema de la gestión DNS (más bien, se simplifica bastante) con Amazon Route 53.

Voy a explicar cómo podemos hacer un uso sencillo de Route 53 para nuestra pequeña web en nube. Vamos a suponer que tenemos corriendo una instancia de EC2 con la IP elástica 123.123.123.123.

A día hoy no se puede gestionar Route 53 desde la consola de AWS. Hay que recurrir a invocar directamente los servicios web mediante cURL.

Como ocurre en muchas ocasiones, la comunidad SL va por delante de las corporaciones y ya existe una utilidad CLI que nos permite operar con Route 53 de una manera más sencilla.

La utilidad se llama cli53 y ha sido desarrollada por bee11149. Lo primero que haremos será instalar tanto la utilidad como sus prerequisitos (Boto y dnspython).

git clone git://github.com/boto/boto && cd boto && python setup.py install
easy_install dnspython
git clone git://github.com/barnybug/cli53

En la primera línea instalamos Boto (Control de Amazon Web Services para Python).
Luego se instala dnspython y por último nos descargamos la utilidad cli53.

Para que funcione cli53, debemos establecer dos variables de entorno con nuestros credenciales de acceso a AWS.


export AWS_ACCESS_KEY_ID=<nuestra_clave_id>
export AWS_SECRET_ACCESS_KEY=<nuestra_clave_privada>
cd cli53

Ya esta preparado el entorno para empezar a usar cli53. Lo primero que haremos será crear nuestra hostedzone. Vamos a suponer que nuestro dominio es caramelos.com y queremos poder acceder a la web mediante “caramelos.com” y “www.caramelos.com”

./cli53.py create caramelos.com

Si todo va bien, nos debe devolver algo similar a esto:

HostedZone:
CallerReference: xxxxxxxx-8efb-4947-yyyy-53489dxxxxxxx
Config:
Comment:
Id: /hostedzone/Z2JZCX7IR3C3O9
Name: caramelos.com.
ChangeInfo:
Status: PENDING
SubmittedAt: 2010-12-21T10:16:05.719Z
Id: /change/C2JH25LA6TOVE9
DelegationSet:
NameServers:
- ns-739.awsdns-28.net
- ns-118.awsdns-14.com
- ns-1414.awsdns-48.org
- ns-1829.awsdns-36.co.uk

Esta información nos indica que se ha creado correctamente la hostedzone con ID Z2JZCX7IR3C3O9 (línea 5), que esta pendiente de sincronizar (8) y nos da
los servidores DNS a donde debemos apuntar el dominio (13-16).  Ahora debemos de contactar con el registrador de nuestro dominio “caramelos.com” y especificar estos servidores DNS.
Lo normal es que dejen establecer entre 2 y 4 servidores. A más servidores, mayor disponibilidad.

Por último, necesitamos crear las entradas DNS para que se pueda acceder a nuestra web. Recordemos que la IP del servidor donde tenemos nuestra web es 123.123.123.123.  Vamos a crear una entrada tipo A y otra CNAME. En formato BIND sería:

 

./cli53.py rrcreate caramelos.com @ A 123.123.123.123 --ttl 3600
./cli53.py rrcreate caramelos.com www CNAME caramelos.com --ttl 3600

Con la primera linea creamos un registro A que mapea nuestro dominio (caramelos.com, representado por @) a la IP 123.123.123.123, mientras que
con la segunda, asociamos el nombre http://www.caramelos.com a caramelos.com usando un registro CNAME. El parametro TTL (Time to live) sirve para indicar con
qué frecuencia se debería de refrescar la lectura de dicho registro por parte de clientes DNS.

Si todo ha ido bien, después de darle un tiempo para que se sincronice toda la cadena DNS, nuestro navegador web deberia mostrar la página si introducimos
caramelos.com” o “http://www.caramelos.com“.

Aquí podéis obtener más información sobre los distintos tipos de registros DNS.
¡A migrar DNS! 🙂

Anuncios

[Tip] Si se cae tu servidor DNS

DNS

DNS

Seguramente más de una vez has tecleado alguna página web y no ha entrado. Sin embargo, programas como el Messenger siguen funcionando.
¿qué está pasando? Muy posiblemente tu servidor DNS se ha caído.

No voy a entrar en detalles sobre los servidores DNS, simplemente voy a decir que son como una guía de teléfonos, resuelven nombres a direcciones IPs.

La manera más fácil de comprobar si tu servidor DNS sigue en pie es hacerle un ping, y ver si responde. Si sale un error tipo timeout o host/net unreacheable, efectivamente, está caído.

La solución más sencilla para volver a tener “Internet” (Internet sigue habiendo pero sin “agenda”), es especificar un nuevo servidor DNS mientras el nuestro se recupera (o recuperan). No hace más de unos cuantos meses era necesario memorizar algún DNS público, como el de Telefónica, Orange, ya.com, etc o utilizar otro equipo con Internet para buscar otra dirección DNS (o la propia del equipo).

Un día los chicos de Google pensaron que tener una dirección IP fácil de recordar, podría ayudar y mucho. Crearon el servidor DNS 8.8.8.8. Bastante sencillo de recordar, ¿no? (también disponen del 8.8.4.4).

Ahora sólo nos basta cambiar la dirección IP del servidor DNS caído por el de Google (u otro). En GNU/Linux (independientemente de nuestra distribución favorita), para la resolución de nombres públicos se usa el fichero /etc/resolv.conf. Normalmente este fichero es generado en el arranque por los scripts de red, luego podemos sobreescribirlo sin problema (si no es tu caso, ya sabes, backup). Con la siguiente linea (en Ubuntu) ya tendríamos nuestro servidor DNS de emergencia.

 sudo echo  "nameserver 8.8.8.8" > /etc/resolv.conf

Bueno espero que os sirva y no os quedéis sin “Internet”.

Translate to:English
MenefanteMenéame TwitterTwitter

Google Wave consume mucho

Google Wave Logo

Logotipo de Google Wave

Sobre consumos y remedios.

Llevo ya un tiempo usando (más bien experimentando) con Google Wave. El principal uso que le he dado ha sido para depurar y probar mi wavejordomo Jeffrey.

Google Wave ha sido concebido como un sistema colaborativo en “tiempo real”.

Como sabéis el “tiempo real” es relativo. Tiempo real significa que el sistema tiene que responder como máximo en un tiempo determinado. Para una conversación en Messenger ese “tiempo real” puede ser 10s, mientras que para el programa de seguimientos de misiles de un F-18 puede ser 50ms.

¿Cual es el valor umbral de tiempo real para Google Wave? Pues no sé que valor tendrá como meta el equipo de desarrollo de Wave. Puede que entre 5s o 10s.

No sé si habéis usado ya Wave,  pero yo he experimentado tiempos mayores a 10s e incluso cuelgues temporales durante más de medio minuto.

Una de las características de Wave consiste en retransmitir la pulsación de cada tecla que un usuario escribe. El servidor reenvía dicha pulsación a todos los usuarios de la Wave. Esto crea la sensación de colaboración en tiempo real: Un mismo “documento” (wave) es editado a la vez por múltiples frentes.

He decidido comprobar los consumos actuales de Wave: tiempo de CPU y ancho de banda.

AVISO: La prueba que he realizado ha sido muy sencilla y es “aproximada”. Sólo quiero tener una idea cercana a la real.

El test consiste en crear una wave, invitar a mis amigos y empezar todos a “hablar” a la vez.

El sistema operativo es un GNU/Linux Ubuntu 9.04 con kernel 2.6.28-16-generic.

Las herramientas que he usado son:

  • Firefox 3.0.15 Ubuntu Edition 1.0 como navegador web.
  • vmstat, para recoger el consumo de CPU. Tiene muy poco consumo de CPU.
  • Firebug 1.4.5, para ver los mensajes Ajax que intercambia Wave.
  • Wireshark 1.0.7, para capturar y ver el tamaño total de los paquetes de “wave”.
  • awk, para procesar la salida de vmstat.
  • gnuplot, para generar los gráficos de uso de CPU (salida de vmstat filtrada por awk).

Leer más de esta entrada