¿En qué podemos ayudarte?

VPS en Amazon Web Services

Lanzar una instancia EC2 en AWS es un proceso sencillo como veremos a continuación. En unos sencillos pasos mostraremos como tener nuestro servidor VPS funcionando en pocos minutos.

Es objetivo de esta guía es implementar en nuestra instancia un servidor de Ubuntu totalmente operativo. 

Requisitos previos

  1. Cuenta en AWS  - Si no disponemos de una, podemos crearla aquí. Si somos clientes de Amazon, podemos registrarnos en AWS con las credenciales de Amazon.
  2. Dominio registrado - Este requisito es opcional, pero disponer de un nombre de dominio nos permitirá acceder a nuestro servidor mediante un nombre (por ejemplo servidor.midominio.com), más facil de recordar que la dirección IP
  3. Software de conexión a nuestra instancia - Los usuarios de Linux y Mac pueden hacerlo directamente desde la aplicación terminal. Quienes usamos windows, necesitaremos programas para conectar, mi recomendacion es Putty y WinSCP. Los ejemplos están basados en ambos programas. 
  4. Conocimientos básicos de la consola de comandos - Los necesitaremos para las tareas básicas de configuración y mantenimiento del servidor.

El servidor una vez activo, necesita de una supervisión mínima y, aunque los comandos de esta guía permiten acometer esta tarea, los ajustes avanzados y los pasos a seguir en la solución de incidencias requieren conocimientos más avanzados y quedan fuera del alcance de este documento.


Creacion de la instancia

Seleccionamos el servicio EC2 en la consola de administración de AWS

Primero escojemos la región donde crearemos la instancia y a continuacion hacemos clic en Launch Instance. Se nos abre la ventana del asistente de creación de instancias.

Seleccion del software

En el primer paso es seleccionar la AMI, dicho de otra forma el sistema operativo y los paquetes de software que estarán preinstalados. Podemos buscar por palabras claves, sistema operativo, arquitectura, etc. Dependiendo del paquete tendremos imágenes gratuitas y de pago. En nuestro caso seleccionamos Ubuntu Xenial 16.04.

Elección del hardware

Aquí definimos el "hardware" de la máquina virtual: nº de CPUs, memoria, almacenamiento, etc. A diferencia de Goofle Cloud, no podemos personalizar la confiuración, pero tenemos muchas para elegir. Si alguna condfiguración no es compatible con el software elegido, estará deshabilitada.

AWS permite a los nuevos usuarios utilizar gratuitamente una instancia t2.micro durante un año. Por mi experiencia esta máquina es suficiente para la mayoría de los proyectos y la gran ventaja de las instancias EC2 es que pueden escalarse en segundos para adaptarse a nuestras necesidades.

A partir de este punto, podríamos lanzar nuestra máquina virtual. En ese caso tendrá asignado un disco de arranque de 8GB (que podemos ampliar cuando sea necesario). Sin embargo repasaremos el resto de opciones de configuración y así no tendremos que modificarlas posteriormente

Configuracion de la instancia

  1. Cantidad - Podemos crear más de una instancia. Esto es útil si, por ejemplo,  queremos incluirlas en un grupo de Autoescalado que ofrezca alta disponibilidad y balanceo de carga entre las instancias
  2. Red - AWS mantiene nuestas instancias aisladas dentro de una red privada virtual (VPC). Podemos definir los parámetros de esta red y si tenemos más de una controlar la comunicación entre las mismas. Tendremos nuestra propia red local dentro de la infraestucura de AWS.
  3. Protección contra eliminación - Es recomendable activarla y así nos protegemos de eliminarlas por error. Para eliminar la instancia debemos quitarle la protección primero
  4. T2/T3 sin límites - Si activamos esta carácterísticas, nuestras máquinas podrán aceptar picos de uso que sobrepasen su capacidad nominal, con un coste adicional. Esto nos evita sobredimensionar, pero si esta caracterísitca se activa durante tiempos prolongados, lo lógico es escalar a una instancia con mayor capacidad

El resto de características podemos dejarlas en los valores propuestos.

Almacenamiento y etiquetas personalizadas

En el paso 4, escojemos el tamaño del disco de arranque (la capa de uso gratuito permite hasta 30GB durante el primer año). Si nuestra instancia hará un uso intensivo del disco podemos establecer los límites de rendimiento necesarios, el coste de estos discos es mayor.. 

Aunque el tamaño máximo de los discos es 16TB, yo me inclino por usar un disco de arranque de un tamaño razonablemente pequeño y añadir discos adicionales. para el amacenamiento masivo. En cualquier caso la configuración de los discos dependerá del propósito de la instancia.

En el paso 5 podemos añadir nuestras propias etiquetas a la instancia y de esta forma identificarla con mayor facilidad.

Reglas de acceso / Firewall

Este es un paso muy impotante, porque aquí determinamos como podremos acceder a nuestra máquina desde Internet. Por defecto, tendre,os las reglas para poder gestionarlas. En el caso de máquinas Linux accederemos SSH y en Windows tendremos RDP habilitado.

Sin embargo, lo mas probable es que necesitemos ajustar esta configuración a nuestras necesidades. el propceso es muy sencillo

  1. Asignar grupo de seguridad: Si ya hemos configurado un grupo anteriormente (por ejemplo para servidores web) marcamos la opción corresponidente y lo seleccionamos de la lista. 
  2. Nombre y descripción: Si creamos un grupo nuevo, lo identificamos según no convenga
  3. Añadir reglas:  Sencillamente seleccionamos el tipo de regla y las dirreciones IP de origen con acceso permitido (0.0.0.0/0 se usa para indicar cualquier origen). Al indicar el tipo de conexion los puertos  y protocolos estándar serán rellenados. Si seleccionamos una regla personalizada, indicaremos los que correspondan.

Es importante no eliminar la regla de acceso por defecto o no podremos conectarnos a nuestra instancia desde Internet. Si lo hacemos el sistema nos advertirá de ello.  

Revisión final y lanzamiento

Llegados a este punto tendremos un resumen de la configuración elegida (la cual podemos modificar si fuese necesario) 

Si estamos conforme con la configuración, podemos lanzar la máquina.

En ese momento se nos abrirá una ventana para aociar nuestro par de claves SSH con la instancia recién generada. Podemos utilizar cualquier par registrado con anterioridad en la consola o en caso contrario generar un par nuevo para esta instancia. 

Si creamos un nuevo par de claves AWS nos permitirá descargarlos solo en ese momento. Debemos guardar la clave privada (.pem) en un sitio seguro. Si perdemos la clave privada, perderemos el acceso a la instancia ya que AWS solo almacena las claves públicas.

Finalizado el proceso lanzamos la intancia y pasados segundos tendremos nuesta máquina totalmente operativa, lo que podremos comprobar en la consola de EC2

A partir de este momento, podemos conectarnos a la consola usando la dirección IP pública y continuar la configuración.


Gestión de la instancia

Reservar IP pública

Cuando creamos la instancia, AWS le asigna una IP dinámica pública. Lo primero que debemos hacer es convertirla en estática y reservarla. Para ello vamos a Elastic IPs en la barra lateral

Seleccionamos la IP recién asignada y la asociamos permanentemente a la instancia. Si disponemos de un dominio creamos el registro A correspondiente dentro de las DNS del dominio. Tambien podemos utilizar un servicio de DNS gratuito como no-ip.com o similar. De esta forma podemos conectarnos usando el nombre asignado en DNS, que será más fácil de recordar que la IP.

Conexión a la instancia

Como hemos configurado una instancia Linux, la conexión a la consola será mediante SSH y usaremos SCP para trasferir archivos. En mi opinión dentro de Windows las mejores opciones son PuTTY y WinSCP. Ambos programas se integran perfectamente y nos permiten trabajar de una forma muy intuitiva.

Configuración de PuTTY

Lo primero que debemos hacer el convertir la clave privada que utilizaremos del formato .pem al formato interno de Putty y WinSCP (.ppk).

Para ello usaremos puttygen,exe, incluido en el instalador de PuTTY

  1. Primero nos aseguramos que el tipo de clave a generar sea SSH-2 RSA, que es el formato empleado por AWS
  2. Cargamos el archivo pem correspondiente a la clave pública.
  3.  Aceptamos la confirmación​
  4. Guardamos el archivo en formato ppk, recién generado en un lugar seguro No olvidemos que cualquiera que con acceso al mismo puede acceder a nuestra máquina.

Con estos pasos ya tenemos nuestra clave privada lista para ser utilizada en PuTTY y WinSCP.

Abrimos PuTTY e introducimos el nombre de usario y la dirección IP externa (o nombre DNS) en el campo Host Name.

Vamos a Connection => SSH => Auth y localizamos el archivo que contiene nuestra clave privada,

Solo nos queda volver a Session y guardar la sesión, asignádole un nombre descriptivo. A partir de este momento podemos conectarnos a nuestra instancia con un par de clics.

Configurar WinSCP

WinSCP nos ofrece una interfaz gráfica para transferir archivos entre nuestro ordenador y la instancia en AWS. 

Seleccionamos New Site y el protocolo será SCP (aunque también podemos utilizar SFTP). En los campos Host Name y User Name introducimos los mismos valores que en PuTTY.  Hacemos clic en Advanced y vamos a SSH => Authentication, donde seleccionamos nuestro archivo de clave privada en formato PuTTY.

A partir de ese momento podemos conectar con nuestra instancia para subir o bajar archivos. También podemos abrir como abrir sesiones de terminal a través de PuTTY, directamente desde WinSCP

De esta forma no necesitamos configurar servicios adicionales como FTP, esto refuerza la seguridad de nuestra instancia.

Comandos básicos de consola

A continuación se muestran algunos ejemplos comados útiles que utilizaremos para mantener auctualizado el software nuestra instancia. Los ejemplos son para nuestra distribución Ubuntu. Mostramos diferentes formas del mismo comando,cuando procede.

  • sudo apt-get update / sudo apt update: actualiza la lista de paquetes disponibles para determinar cuales deben ser actualizados
  • sudo apt-get upgrade / sudo apt upgrade: ejecuta la actualización de los paquetes instalados a las últimas versiones disponibles. Una forma alternativa y posiblemente más recomendable es sudo apt-get dist-upgrade / sudo apt full-upgrade. Esta variante realiza comprobaciones adicionales para asegurar la compatibilidad entre los paquetes instalados
  • sudo apt-get install nombre-del-paquete / sudo apt install nombre-del-paquete: Instala un paquete (por ej. php, mysql) desde los repositorios de Ubuntu
  • sudo reboot now: Permite reiniciar el sistema, por ejemplo después de una actualizacion o cuando nos aparece el aviso correspondiente al conectarnos a la consola
  • sudo apt-get remove nombre-del-paquete y sudo apt-get purge nombre-del-paquete se utilizan para desinstalar paquetes de sotware. La diferencia es que el segundo elimina también los archivos de configuracion
  • sudo apt-get autoremove: nos permitirá eliminar paquetes que no se utilizan y ya no son necesarios en el sistema.

Copias de seguridad

Una ventaja de las instancias EC2 es por diseño están protegidas contra fallos de hardware. Sin embargo las buenas prácticas recomiendan tener copias de seguridad que nos protejan contra fallos de software y posibles incidencias durante los procesos de instalacion, actualización y configuración del software.

Para ello podemos generar instantáneas de los discos duros desde al apartado Volumes. Las instantáneas generadas las encontraremos en Snapshots. Siempre que sea posible es recomendable detener la instancia antes de crear una instantánea del disco de arranque.

Finalmente podemos crear una imagen total de la instancia. Hacerlo  así nos permite lanzar una instancia igual, ahorrandonos gran parte de la configuración e intalación del software.

Y así llegamos al final de esta guía en la que hemos detallado como poner en marcha una instancia EC2 en AWS. En proximas entregas veremos como poner en funcionamiento un servidor web.

5 1 vote
Valoración del artículo
Suscribir
Notificar de
guest
0 Comentarios
Inline Feedbacks
View all comments