El puñetero juego Minecraft. (¿No sabes que es?… Rápido… ¡Sal de aquí!. ). Después de jugar mucho en partidas locales pensamos que sería algo interesante tratar de montar un servidor en el que pudiéramos jugar en conjunto, esto añadiría un plus de diversión seguro. Así que me puse manos a la obra. Mientras trato de montar algo más complejo en mi propia casa con un pc antiguo (ver: Post) decidí mirar por encima como funciona todo el tinglado que tiene montado Amazon (Amazon Elastic Compute Cloud Amazon EC2) ¿De que se trata?. En resumidas cuentas es un servicio web que proporciona capacidad informática con tamaño modificable en la nube. Puedes levantar máquinas para cualquier tipo de tarea imaginable en minutos, modificar el uso de recursos, el sistema operativo, el uso de micro… Todo desde un panel de administración.
Como añadido, Amazon tiene un detalle con sus nuevas altas. Descuentan 12 meses completos de ciertos servicios muy básicos… Más que suficientes para pruebas o pequeñas aplicaciones web. En nuestro caso Minecraft.
La capa de uso gratuito de AmazonEC2 incluye para los nuevos cada mes y durante un año los siguientes servicios de EC2:
- 750 horas de uso para la ejecución de instancias Linux/Unix Micro en EC2
- 750 horas de uso para la ejecución de microinstancias Microsoft Windows Server en EC2
- 750 horas de Elastic Load Balancing más 15 GB de procesamiento de datos
- 30 GB de Amazon Elastic Block Storage (EBS) más 2 millón de E/S y almacenamiento de instantáneas de 1 GB
- Se añaden 15 GB de ancho de banda saliente en todos los servicios de AWS
- 1 GB de transferencia de datos regional
El proceso para darse de alta es muy sencillo y aviso… Es necesario dar los datos de una tarjeta de crédito. Entramos en la página de inscripción y seguimos todos los pasos indicados. Llegado el momento tras pedirnos la tarjeta de crédito Amazon hace un test para verificar la tarjeta. según me han comentado te retienen 1$ unos dias.
Si todo ha ido bien tendremos acceso al panel de control insertando nuestro correo y el password, en el menu de usuario vamos a “AWS Management Console” y lanzamos la aplicación.
Temas de dinero… Mucho cuidado con esto. Amazon no crea una cuenta gratuita capada, Amazon te da acceso a TODOS sus servicios y luego te descuenta lo que te regala. Si somos muy manazas y no prestamos atención podemos lanzar una máquinón que gasta 1500€ al mes. Por tanto, ¡Mucha precaución!.
Una vez logados en la consola nos vamos a la pestañita “Amazon EC2″. Elegimos la región que mejor nos vena por cercanía… En teoría la más cercana y más rápida debe ser la de “EU WEST Ireland”. Y vamos a crear la instancia. Pulsamos sobre el botón de “launch instance”. Insertamos nombre de la instancia, creamos un juego nuevo de Key pair (llaves de acceso) y seleccionamos la Ami que queremos levantar. En nuestro caso hemos optado por una Ubuntu Server 11.10. Deberemos descargar el archivo del “Key Pair” Guardadlo como Oro en paño, si lo perdemos perdemos las instancia.

Posteriormente pasamos a una página de configuración en la que no tendremos que configurar nada, tan solo asegurarnos de que el tipo es Micro.

Una vez terminado le damos a “Launch”. La máquina tarda unos 10 minutos en estar operativa, una vez esté lista podremos verla en el listado de nuestras instancias. Podemos ver su estado “running” signo inequívoco de que ya está lista.

Ahora tenemos que configurar un par de aspectos extras, en primer lugar tenemos que añadirle un grupo de seguridad. Viene a ser como cuando tocamos los puertos del Router, pero en este caso lo que hacemos es abrirle puertos y decirle desde que IP’s nos vamos a conectar. Abrimos el puerto 22 y el 25565. Yo he puesto el 80 por si en algún momento monto algo en el Apache.

Finalmente tenemos que asignarle una “Elastic IP”, mucho cuidado que no debemos olvidar que si creamos una IP pero no la asignamos a niguna Instancia Amazon nos cobra un suplemento por tener IP sin usar… No es mucho pero si se nos olvida un mes entero… Puede ser una gracia. Así que una vez creada asignarla inmediatamente.

Bien, ya tenemos la máquina andando y configurada, ahora tenemos que conectarnos por SSH. Amazon nos da varias opciones, bien con Putty desde Windows (Un coñazo), bien por SSh desde linux o bien desde una consolita java que inorporan. Para conectarnos por SSH a nuestra recién levantada máquina hacemos una conexión por ssh indicando el archivo .pem (previamente descargado desde el panel de Amazon EC2), usuario y la IP.
ssh -i rutahastael.pem ubuntu@IP
Instalamos Java, ya que la Ami que hemos seleccionado y por lo que he visto prácticamente todas vienen sin Java por defecto.
~$ sudo apt-get install openjdk-6-jre
Una vez instalado Java procedemos a instalar y preparar el servidor de Minecraft, creamos una carpeta y descargamos el servidor en formato jar.
~$ cd /home/ubuntu
~$ mkdir minecraft-server
~$ cd minecraft-server
~$ wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
Lanzamos el servidor por primera vez para que genere todos los archivos necesarios. Recordad que estamos en una máquina que solo cuenta con 613Mb por lo que lanzaremos la aplicación con un límite de 512Mb. Una vez termine de iniciarse la detenemos.
~$ sudo java -Xmx512M -Xms512M -jar minecraft_server.jar nogui
stop
** Atención! (Actualización). Con 512Mb la máquina parece que no tira bien con más de un jugador. Hemos probado a bajarlo a 256Mb y parece que hasta con 4 o 5 jugadores tira bastante bien.
Editemos el archivo de preferencias… Hay muchas posibilidades aquí así cada uno puede lo configurar a su gusto.
Para vigilar el gasto en ancho de banda, procesador y demás aspectos podemos utilizar las estadísticas que nos genera casi en tiempo real el panel de Amazon EC2, recordad que hay ciertos límites que si son sobrepasados nos serán cargados en la tarjeta.

No he realizado aun una prueba de uso real, lo más que hemos hecho ha sido conectarnos dos al mismo tiempo. Pude ver que el micro se ponía al 50% con el primer jugador y al 100% con el segundo y que el consumo de datos podría ser de unos 4 o 5 mb por hora. No son datos muy fiables pero… Trataré de hacer una prueba más seria.