Es este post vamos a ver cómo crear un servidor web en Amazon Web Services (AWS) usando una instancia Elastic Compute Cloud (EC2) que básicamente consiste en una máquina virtual Linux con al que podemos hacer lo que queramos, y lo más importante, Amazon te da 1 año gratis para usarlo, después del año te cobrará por horas de uso y almacenamiento, pero la instancia puedes pararla y terminarla cuando desees. En caso de que quieras dejarla siempre corriendo, puedes llegar a pagar unos 16€ al mes.
Amazon Web Services (abreviado AWS) es una coleccion de servicios de computación en la nube, ofrecidos a través de internet por Amazon.com Según Wikipedia. Lo utilizan muchas empresas importantes del mundo como Dropbox, Foursquare, Expedia, Airbnb, Netflix, etc. También lo utilizan miles de emprendedores tecnológicos que aprovechan su flexible esquema de costos para poder lanzar sus soluciones.
Como desarrolladores de soluciones y emprededores tecnológicos, algunos de los servicios mas interesantes de AWS son:
- EC2, Servidores Virtuales en la Nube
- S3, Almacenamiento escalable en la Nube
- CloudFront, Red de distribución de contenidos global
- RDS, DynamoDB, Bases de datos en la Nube
- Lambda, Ejecución de código en respuesta a eventos
Puedes usar todos estos servicios o algunos solamente de acuerdo a tus necesidades. En este post veras como utilizar EC2 para lanzar una instancia de un servidor linux y dentro de esta instalar un servidor web.
Tabla de contenidos
Primeros pasos
Antes de nada es necesario el registro previo al servicio, el cual es muy simple ya que solamente necesitarás tener una tarjeta de crédito o débito (mientras uses sus servicios gratuitos no se te cargará nada en la tarjeta) y confirmar tu cuenta por correo electrónico, pudiéndose hacer desde este mismo enlace.
En su extenso abanico de servicios, hemos seleccionado uno de sus servicios escalables que es el Amazon Elastic Compute Cloud (Amazon EC2), el cual nos permite tener un servidor virtual VPS de manera gratuita siempre y cuando no se supere las 750h de uso al mes, horas más que suficientes.
Cómo configurar un servidor en Amazon Web Service
Login en AWS
Lo primero que nos aparece cuando hacemos login en AWS es el dashboard principal.
Elegir servicio
Para comenzar a crear un servidor (instancia) web en AWS nos dirigiremos a la pestaña Services y seleccionaremos EC2.
Ubicación del servicio
Antes de seguir asegúrate de tener la ubicación del centro de datos en la zona que creas conveniente. Por ejemplo, nosotros hemos elegido California, puesto que queremos montar un servidor web cerca de LATAM. A continuación tienes que clicar en el botón “Launch Instance”.
Elegir SO
Para seguir el asistente, debes seleccionar el sistema operativo del servidor, en este caso, ubuntu 16.04, uno de los gratuitos.
Elegir tipo instancia
El hardware es el siguiente paso a elegir pero mantenemos el predeterminado.
Configuración de instancia
Dejamos los valores por defecto en caso de no necesitar otras características y seguir disfrutando de la capa gratuita de AWS.
Configurar almacenamiento
En este caso podemos crear un contenedor de unos 30Gb sin problema.
Añadir Tag
Muy útil para llevar una organización de las maquinas que vayamos desplegando, no es más que un nombre asociado a la instancia.
Configurar grupo de seguridad
En este grupo definiremos las reglas de nuestro firewall, por defecto viene añadida la de permitir todo el trafico del servicio SSH. Los puertos se mantendrán bloqueados hasta que se añada la excepción en el grupo de seguridad de nuestro servidor web en Amazon.
Previsualización y lanzamiento
Para previsualizar los datos finales y la características del VPS, clica en “Review and Launch”.
Ahora solo falta clicar sobre el botón “Lanzamiento” para iniciar la instalación de la instancia.
Llaves SSH
Antes de continuar realizaremos este paso, en el cual indicamos que queremos crear un nuevo par de llaves SSH con las que posteriormente iniciaremos sesión en la instancia.
Instancia instalada
Tras un par de minutos tendremos la instancia finalizada y operativa.
Para conectarte al servidor tendrás que seleccionar la instancia y hacer clic en “Connect”.
Conectarse a la instancia de Linux
Guía para conectarse usando putty
Para conectarse a la instancia mediante SSH
- (Opcional) Puede verificar la huella digital de la clave RSA en la instancia en ejecución utilizando uno de los siguientes comandos en el sistema local (no en la instancia). Esto resulta útil si ha lanzado la instancia desde una AMI pública de terceros. Localice la sección
SSH HOST KEY FINGERPRINTS
, anote la huella digital de RSA (por ejemplo, 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) y compárela con la huella digital de la instancia.- get-console-output (AWS CLI)
aws ec2 get-console-output --instance-id instance_id
Asegúrese de que la instancia está en el estado
running
y no enpending
. La secciónSSH HOST KEY FINGERPRINTS
solo está disponible después del primer arranque de la instancia. - get-console-output (AWS CLI)
- En un shell de línea de comandos, cambie los directorios a la ubicación del archivo de clave privada que creó cuando lanzó la instancia.
- Use el siguiente comando para configurar los permisos del archivo de clave privada para que solo usted pueda leerlo.
chmod 400
/path/my-key-pair
.pemSi no configura estos permisos, no podrá conectarse a la instancia con este par de claves. Para obtener más información, consulte Error: Unprotected Private Key File.
- Use el comando ssh para conectarse a la instancia. Especifique el archivo (
.pem
) de clave privada y nombre_de_usuario@nombre_dns_pública. Por ejemplo, si ha utilizado Amazon Linux 2 o la AMI de Amazon Linux, el nombre de usuario esec2-user
.ssh -i
/path/my-key-pair
.pemec2-user
@ec2-198-51-100-1.compute-1.amazonaws.com
Debería ver una respuesta como lo siguiente:
The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)' can't be established. RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f. Are you sure you want to continue connecting (yes/no)?
- (Solo IPv6) También puede conectarse a la instancia mediante su dirección IPv6. Especifique el comando ssh con la ruta al archivo de clave privada (.pem), el nombre de usuario adecuado y la dirección IPv6. Por ejemplo, si ha utilizado Amazon Linux 2 o la AMI de Amazon Linux, el nombre de usuario es
ec2-user
.ssh -i
/path/my-key-pair
.pemec2-user
@2001:db8:1234:1a00:9691:9503:25ad:1761
- (Opcional) Verifique que la huella digital en la alerta de seguridad coincide con la huella digital que obtuvo en el paso 1. Si estas huellas digitales no coinciden, alguien podría intentar un ataque man-in-the-middle (MITM). Si coinciden, continúe con el siguiente paso.
- Escriba
yes
.Debería ver una respuesta como lo siguiente:Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) to the list of known hosts.
Instalar servidor web en Amazon (Apache)
Basta con iniciar sesión en el servidor y ejecutar el siguiente comando:
apt-get install apache2
Instalar servidor web en Amazon (Nginx)
Basta con iniciar sesión en el servidor y ejecutar el siguiente comando:
apt-get install nginx
Con estos últimos pasos ya tendríamos configurado un servidor web en amazon web services.