viernes, 5 de julio de 2013

Crear un entorno de desarrollo gratis en Amazon EC2: microinstancias

Tal y como describen en su web, Amazon nos ofrece con sus Servicios Web (AWS), un conjunto completo de servicios de infraestructuras y aplicaciones para ejecutar prácticamente todo en la nube, desde aplicaciones empresariales y proyectos de grandes datos hasta juegos sociales y aplicaciones móviles. Es decir, podremos tener nuestro entorno de desarrollo en la nube.

El hecho de ser un cluod service, significa que los servicios que contratemos tendrán total escalabilidad, y se adaptarán en tiempo real a los recursos que el proyecto vaya necesitando. Es decir, pagamos por lo que necesitemos, y nada más.

Pero además, Amazon nos ofrece una capa gratuita, para los que queramos empezar en el mundillo cloud, trastear con ella y aprender. Aquí podéis encontrar toda la información que necesitéis sobre dicha capa, y en español: http://aws.amazon.com/es/free/. Yo básicamente la voy a resumir, centrándome simplemente en el servicio EC2. Aquí os dejo un enlace con más características del servicio EC2: https://aws.amazon.com/es/ec2/

¿Qué nos ofrece?

Básicamente, la instancia de EC2 gratuita, la llaman "micro", y ofrece 750 horas al mes durante un año, de un servidor Windows o Linux. 750 horas al mes, equivalen a 31 días, 24 horas al día, que es lo mismo que decir, un año "by the face". Lo miden por horas, porque nuestro servidor lo podremos arrancar o detener según lo necesitemos, y el tiempo y coste, dejan de correr. Esto no lo puedes hacer con los sistemas de alojamiento tradicionales, es una de las ventajas de la nube.

Crear una cuenta en Amazon

Lo primero que debemos hacer, es crearnos una cuenta en AWS: https://aws.amazon.com/

Lo más seguro, es que nos pida los datos de una tarjeta de crédito, o una cuenta Paypal, y tengamos que hacer todo el proceso de comprobación de que dicha cuenta realmente es vuestra. Esto lo hace Amazon, porque no tiene una cuota fija mensual, como en las empresas de hosting clásicas, sino que cobra bajo demanda: pagas por lo que usas, y si no usas nada no pagas nada. No os preocupéis. Yo llevo casi un año con ellos y no me han cobrado nada. Siempre que no os salgáis del paquete gratuito, no tendréis problema. Además podréis configuraros un aviso, para que en el caso de que empiecen a cobraros, desde el primer céntimo, os llegue un email a vuestra cuenta de correo. Es importante, que deis una cuenta de correo que soléis mirar a diario... no sea que... os avisen ¡y no os enteréis!

Todo este proceso de alta de la cuenta o tarjeta de crédito, me lo salto porque es bastante intuitivo, y es seguir los pasos: no tiene misterio. Una vez que lo hayáis termiando, vais a la consola de gestión de nuestro AWS (Dashboard), y hacemos click en EC2

Crear nuestra primera instancia gratuita

Una vez dentro de la pantalla de gestión de nuestro EC2, deberemos ver algo como esto, y hacemos click en "Launch instance" para crear nuestra primera instancia:

Amazon, dispone de una serie de máquinas preconfiguradas, listas para usar con el software que necesitems ya instalado (php, mysql, apache, etc, etc), con lo cual no tendremos que preocuparnos de nada y ganaremos bastante tiempo. Ellos las llaman "AMI", y hay casi 2000 disponibles (aquí tienes la lista completa). Puedes elegir la que quieras, pero OJO: las gratuitas son las que llevan una estrella.

Volviendo a nuestra instancia, acabamos de pulsar en "Launch instance", y debe aparecernos una pantalla como esta, donde podremos elegir qué queremos instalar, si una máquina preconfigurada, una máquina comprada en la tienda de ámazon, o arrancar el asistente, y que nos vaya guiando. Para el tutorial, voy a elegir la opción de máquina preconfigurada, o "Quick Launch", en concreto, una Ubuntu 12.04, que es gratis.

He marcado en amarillo, lo más importante:

  • Debemos especificar el nombre a dicha instancia, con un nombre que sirva para luego identificarla, porque podremos tener más de una instancia micro, aunque luego sólo arranquemos una a la vez, para que no nos cueste dinero.
  • Para poder conectarnos a la instancia por SSH, o sFTP, necesitaremos una clave pública y otra privada, es decir un par de claves (Key pair). Debemos especificar el nombre a dicha clave, y descargarla a una carpeta segura (se trata de un archivo con extensión .pem), donde nadie más tenga acceso a ella. A las máquinas de EC2, se accede con dicha clave, no se pide usuario ni contraseña. Si le das a alguien esa clave, que es un archivito que pesa muy poco, pues le estarás dando el acceso a todas las instancias que lleven dicha clave asociada. Es como una llave que puede abrir las puertas (instancias) que tu indiques. Así que cuidado dónde la guardas :)
  • Debemos elegir el AMI preconfigurado que queramos
  • Y por último pulsamos en continuar

La siguiente pantalla que nos aparecerá, será un resumen de la configuración. En general, aquí no tenemos que tocar nada, salvo la configuración de seguridad. Así que le damos a "Edit details", luego marcamos el checkbox de "Security Setting", después marcamos el checkbox de "Create new Security Group", le ponemos un nombre, una descripción, y añadimos unas cuantas reglas.

Estas reglas, no son otra cosa, que puertos a través de los cuales podremos acceder a nuestra microinstancia. Tendremos que habilitar el 21 si queremos FTP, el 22 si queremos sFTP, o conexión por SSH, el 80 si queremos tener acceso a la máquina con un navegador web, el 3306 si queremos acceder a un mysql que le instalemos, etc. Desde el menú desplegable, veremos ya unas cuantas reglas preconfiguradas. Una vez que terminemos, pulsamos en "Save details", y a continuación "Launch".

El siguiente paso, es crearnos alarmas. Nuestro sistema estará continuamente monitorizado, y como nos cobran por tiempo que tengamos la instancia encendida, como los taxistas, pues está bien que nos avisen de si, por la razón que sea, ha dejado de funcionar. Incluso, podemos decirle que pare la máquina, y no nos siga cobrando... (por algo que no funciona). Está bien pensado, ¿no?

Para configurar alarmas, lo siguiente que tenemos que hacer por tanto, es pulsar en "Create Status Check Alarm". Como verás, debajo en pequeñito, pone que puede costar dinero. Efectivamente, puede, si se te va la olla añadiendo alarmas como si no hubiese mañana. En este tutoríal, vamos a dar de alta sólo una de ejemplo.

Elegiremos que nos mande un email a nuestro correo, y que además detenga la instancia, en caso de que ésta falle más de dos veces seguidas, en periodos de 5 minutos

Pulsamos en siguiente, y ¡enhorabuena! Ya tienes tu servidor de desarrollo funcionando!! Deberías verlo en una pantalla como esta, que se llama la consola de gestión de EC2. En concreto, esta es la lista de instancias.

Desde aquí, si marcamos su checkbox y pulsamos en Acciones, podremos ver todo lo que podemos hacer con ella. Por ejemplo, pararla si no la vamos a usar, para que no nos sigan cobrando por ella, en caso de que no estemos usando la microinstancia gratuita.

Otra ventaja que nos ofrece Amazon, son las gráficas de monitorización, que tiene para aburrir. Podemos verlas, en la misma pantalla donde estamos, es decir, donde la lista de instancias, pinchando en la pestaña "Monitoring":

Creando una alarma de costes

Lo siguiente, y más importante que debemos hacer, es configurar una alarma de coste, desde nuestra cuenta de Amazon Web Services (AWS). Es decir, que nos manden un correo en cuanto empiecen a cobrarnos, para que podamos enseguida, entrar y parar las instancias que nos estén causando coste, si lo deseamos.

Para eso, puedes visitar el siguiente artículo de la saga: ¿Cómo configurar una alarma de costes en AWS? :) Espero que os haya ayudado este minitutorial!

No hay comentarios :

Publicar un comentario