Crea tu propio CloudGaming con AWS

Crea tu propio CloudGaming con AWS

Hola Mundo! Después de poder aprobar mi certificación como Solutions Architect, lo cual vendrá otro artículo más adelante sobre el tema, buscaba comenzar a crear cosas en la nube para poder poner en práctica todos esos conocimientos que fui adquiriendo estos meses y se me ocurrió poder usar mi hobby favorito: jugar videojuegos.


EmuladorJS

Buscando que alternativas tenía para poder crear algo en la nube me topé con este emulador el cual funciona dentro de un navegador y podía emular determinadas consolas, logré leer su documentación y manos a la obra! Debajo les dejo el link para que puedan leerlo ustedes también.

EmuladorJS

Cuando comencé a leer noté que podía usar CONTAINERS lo cual me pareció una idea fantástica para poder tener experiencia en este campo, ya sabía las tecnologías que podía usar, ahora faltaba crear la infraestructura necesaria para poder correrlo y yo poder jugar a mis juegos favoritos de cuando era pequeño.


Elastic Beanstalk

Como debía correr una app en Java no dudé en querer crear todo con este servicio: Elastic Beanstalk!
Es un servicio de computación en la nube ofrecido por AWS que facilita la implementación y administración de aplicaciones web. Lo cual para empezar estaba bastante bien, ya con la documentación pude hacerme con el DockerCompose así que sólo había que proporcionar nuestra EC2.


Hands-ON!

La mejor manera para aprender es sin dudas sumergiéndote en estos servicios combinandos, Cómputo, Red, DNS, etc. Lo primero que haremos es ingresar a la consola de Elastic Beanstalk y nos pondremos a configurar un nuevo entorno:

A continuación lo más importante:

  • Nivel de entorno: En este caso usaremos "Entorno de servidor web" ya que nuestra app estará corriendo en Java, necesita el servicio de nginx para publicar el servidor y nosotros poder conectarnos a través del puerto 80 (HTTP)

  • Información de la Aplicación: Nombre de nuestra APP. En caso de querer tener bajo control nuestras finanzas podemos agregar etiquetas al proyecto.

  • Información del entorno: Esto es importante debido a que podemos tener un dominio más fácil para nosotros poder acceder en caso de que no tengamos en Route53 un HostedZone. Completemos si queremos con el mismo nombre y checkeemos si tenemos disponibilidad.

  • Plataforma: vamos a usar Docker debido a que tenemos nuestro archivo de DockerCompose, donde están todas las configuraciones y puertos que necesitamos.

  • Codigo de aplicación: Aquí vamos subir nuestro archivo docker-compose.yaml

  • Etiqueta de versión: Elegimos nuestra versión de APP

  • Valores preestablecidos: Por último señalamos que queremos quedarnos en nuestra capa gratuita ya que estamos realizando esto en forma educativa, así que usemos Instancia Única que nos va a ajustar a las Instancias que están dentro del FreeTier.

Una vez terminada esta etapa tenemos lo básico. A continuación habrá que dar algunos detalles de configuraciones más para que podamos disfrutar de nuestro emulador.

En el paso 2 tenemos que entregar un Rol para que nuestro servicio de Elastic Beanstalk pueda crear esa Instancia con su Security Group dentro de nuestra VPC de preferencia, es decir, necesitará permisos. Una vez dados, sigamos.

En nuestro paso 3 debemos ingresar en dónde se colocará esta Instancia que se creará para nuestra APP, colocamos nuestra VPC y Subnet de preferencia y agregamos que tenga ip pública para que podamos ingresar tanto por DNS como con IP Pública.

En el siguiente paso lo único que debe preocuparnos es de que se elijan los tipos de instancia que queremos, cada vez más cerca de terminar! Siguiente.

Como paso final, el número 5 en caso de que queramos monitorear y tener alarmas que a nosotros no nos interesa, lo cual presionamos Siguiente.

Finalmente enviamos la configuración y esperamos a que suceda la magia! Elastic Beanstalk haciendo su trabajo, hay que tener paciencia porque puede que tarde unos minutos, una vez terminado el proceso, podremos ver en el panel de EC2 nuestra instancia corriendo nuestro servicio.

Una vez que haya terminado el proceso, podremos ingresar tanto por DNS como por IP pública ejemplo: emulador.us-east-1.elasticbeanstalk.com. Siempre y cuando expongamos nuestro puerto 80 y 3000 en el SecurityGroup de nuestra Instancia.

Podremos entrar a nuestro emulador a traves del puerto 3000 para realizar la configuración, tuve varios dolores de cabeza para hacerlo funcionar así que si tenes alguna pregunta, sentite libre de consultarme por cualquiera de mis redes sociales que con gusto te ayudo.

Esto fue un pequeño paso a paso de cómo crear tu emulador en la nube gracias a la ayuda de nuestros amigos de LinuxServer que lo han desarrollado.