Amazon Web Services (AWS) son una serie de servicios de computación en la nube que proporciona Amazon a través de Internet. Dispone de una capa gratuita donde se ofrecen servicios gratuitos para siempre y otra serie de servicios limitados por un periodo de un año.
Uno de los servicios que ofrece es EC2 (Elastic Compute Cloud), un servicio de servidores virtuales donde podemos configurar tanto el hardware como las redes, seguridad o almacenamiento.
Hoy quiero enseñaros cómo crear una instancia EC2 dentro de la infraestructura de AWS.
Al entrar a la consola de administración de AWS podemos buscar el servicio EC2 y acceder a él.
A la hora de lanzar una instancia, debemos elegir una zona de disponibilidad donde se desplegará nuestra instancia. Una zona de disponibilidad es una zona asilada donde Amazon tiene una infraestructura desplegada dentro de una región (un área geográfica independiente). En Europa hay varias zonas (Irlanda, París, Londres, Frankfurt y Estocolmo). Una vez seleccionada la zona, podemos ir al panel de EC2 para ver los recursos te tenemos creados en esa zona.
Desde el Dashboard podemos ver las instancias que están corriendo, Snapshots (imágenes de una instancia EC2), Key Pairs (las claves privadas para conectarnos a las instancias), grupos de seguridad (que actúan como firewalls para nuestras instancias EC2), volúmenes, etc.
Para lanzar una nueva instancia EC2 debemos elegir la opción de Launch Intance. Tenemos varios tipos de instancias que podemos lanzar, desde distintas distribuciones Linux (Amazon Linux, Ubuntu Server, Suse Linux) a distintos tipos de instancias de Windows Server.
Yo voy a elegir una instancia Amazon Linux dentro de la capa gratuita de Amazon (Free tier elegible). En el siguiente paso, elegiremos la configuración de la máquina.
La opción t2.micro es la que se encuentra dentro de la capa gratuita de AWS. Es una máquina de propósito general, con una CPU virtual y 1 GiB de RAM.
El siguiente paso son los detalles de configuración de la instancia.
Aquí podemos elegir el número de instancias que queremos levantar, la red y subred donde la vamos a desplegar, roles que pueden tener acceso (IAM role), comportamiento al apagarse (parar la instancia o terminarla), etc. Vamos a dejar los valores que tiene por defecto, aunque podemos configurarlos según lo que necesitemos.
También podemos usar poner un script que se lanzará a la hora de levantar la instancia, como por ejemplo actualizar el sistema, instalar un servidor web, php, etc.
A continuación podemos configurar el almacenamiento de nuestra instancia. Podemos configurar la capacidad del disco, el tipo de disco e incluso crear más volúmenes.
En el siguiente paso podemos añadir una serie de etiquetas (clave, valor) que nos sirva para identificar la instancia (no es necesario). Por ejemplo, podemos darle un nombre.
El siguiente paso es importante. Debemos elegir o crear un nuevo grupo de seguridad (reglas de firewall) al que pertenecerá nuestra instancia. Yo voy a crear un nuevo grupo DMZ donde podemos abrir el puerto SSH para poder acceder a nuestra instancia desde fuera, y los puertos HTTP y HTTPS por si queremos tener un servidor web en nuestra instancia.
En el caso de el puerto 22 (SSH) podríamos indicar que sólo sea accesible desde nuestra propia IP o desde un rango de direcciones IPs para limitar el acceso.
Finalmente, podemos ver un resumen de la configuración seleccionada para revisión.
Cuando vayamos a lanzar la instancia, debemos seleccionar una clave privada existente o crear una nueva para poder conectarnos a la instancia por SSH.
Nos descargamos el fichero (al cual debemos cambiar los permisos, ya que si no no podremos usarlo para conectar) y lanzamos la instancia.
$ chmod 400 miEC2Key.pem
Una vez lanzamos la instancia, tras un tiempo la tendremos levantada y disponible. Podemos ver los datos de la instancia, como la dirección IP pública desde el Dashboard.
Ya podemos conectarnos a ella por SSH utilizando la clave privada. Desde linux, podemos conectarnos desde nuestra terminal con el siguiente comando (indicando la IP de la instancia EC2 a la que nos queramos conectar):
$ ssh -i miEC2Key.pem ec2-user@IP_EC2