Hola a tod@s, en este post voy e explicar como crear nuestro propio servidor web en una maquina virtual EC2 en AWS.

Antes de crear nuestra maquina virtual debemos tener un proyecto ASP .NET Core ya creado y tenerlo subido en un repositorio en GitHub.

Ahora nos vamos al la consola de AWS y vamos a la sección EC2 y pulsamos en lanzar la instancia para crearnos una nueva maquina:

Ponemos un nombre a nuestra maquina y elegimos la imagen Linux 2 AMI (HVM) – Kernel 5.10 (o cualquiera que ponga apto para la capa gratuita):

Nos tenemos que crear un par de claves para poder acceder a nuestra maquina, seleccionamos en crear un nuevo par de claves (podemos usarlas en diferentes maquinas):

Se nos descargara una archivo .pem, luego le daremos permisos para poder acceder a nuestra maquina.

Ahora debemos de crearnos un nuevo grupo de seguridad ya que si tenemos varias maquinas dentro del mismo grupo podrían comunicarse entre si creando una red interna (como comunar un mvc y una api):

Y admitimos todo el trafico entrante desde ssh, http y https:

Pulsamos en lanzar instancia:

Una vez lanzada esperamos a que AWS nos cree la maquina.

Localizamos el archivo .pem que descargamos antes y nos creamos en el directorio C: una carpeta llamada AWSKEYS en donde guardaremos todas nuestras claves.

Para poder usar ese archivo y conectaros a nuestra maquina EC2 el archivo debe ser de solo lectura, quitar permisos heredados y tener un único propietario administrador. Abrimos las propiedades del archivo y editamos los permisos:

Seleccionamos opciones avanzadas:

Deshabilitamos la herencia y seleccionamos en quitar todos los permisos heredados de este objeto:

Por ultimo agregamos nuestro usuario de Windows y le damos control total:

Una vez realizados estos pasos ya podemos conectarnos a nuestra maquina virtual.

Para poder conectarnos necesitamos la cadena de conexón. Para conseguirla vamos a nuestra consola de aws y seleccionamos la instancia, pulsamos en conectar y copiamos la cadena de conexión de ejemplo:

Con la línea de comandos nos vamos a la localización C:/AWSKEYS y pegamos nuestro comando (en este caso usare cmder una línea de comandos que permite usar comandos Linux en Windows puedes descargarla desde aqui):

Una vez conectado ponemos permisos de super usuario con sudo su y vamos escribiendo los siguientes comandos:

Actualizamos los paquetes:

yum update -y

Instalamos el servicio http:

yum install httpd -y

Instalamos dotnet:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-5.0 -y
sudo yum install dotnet-runtime-5.0 -y
sudo yum install libunwind -y

Instalamos el servicio https

yum install mod_ssl -y

Iniciamos los servicios:

systemctl start httpd
systemctl enable httpd

Damos permisos a los certificados

cd /etc/pki/tls/certs
sudo ./make-dummy-cert localhost.crt

Hacemos un routing a ssl

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 5001

Instalamos git

yum install git -y

Configuramos Git

git config --global user.name "NOMBRE-DE-USUARIO"
git config --global user.email "CORREO"

Creamos la carpeta de nuestro proyecto y agregamos permisos

mkdir /var/coreapp
cd /var/coreapp
sudo chown -R ec2-user /var/coreapp

Descargamos nuestro proyecto git

git clone URL DEL PROYECTO

Entramos dentro de la carpeta del proyecto descargado

cd PROYECTO

Restauramos el proyecto y hacemos un build

dotnet restore
dotnet build

Arrancamos el proyecto

dotnet run --urls "https://0.0.0.0:5001"

Ahora vamos a la consola de aws, seleccionamos la instancia y copiamos la dirección ip publica en el navegador:

Con estos pasos ya tenemos disponible nuestro Mvc en el servidor:

Autor/a: Luis Enrique Frías Araujo

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma

Centro: Tajamar

Año académico: 2021-2022

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.