Entornos de desarrollo

1º DAM/DAW - Curso 2024-2025

User Tools

Site Tools


apuntes:despliegue

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:despliegue [2025/03/24 23:26] Santiago Faciapuntes:despliegue [2025/03/24 23:51] (current) – [Desplegar la aplicación] Santiago Faci
Line 6: Line 6:
  
 ===== Iniciar una instancia EC2 en AWS ====== ===== Iniciar una instancia EC2 en AWS ======
 +
 +  * Accedemos a la AWS Management Console
 +
 +<figure>
 +{{ aws_management_console.png?500 }}
 +</figure>
 +
 +  * Accedemos al servicio EC2
 +
 +<figure>
 +{{ aws_ec2.png?500 }}
 +</figure>
 +
 +  * Accedemos a la opción ''Instances''
 +
 +<figure>
 +{{ aws_instances.png?500500 }}
 +</figure>
 +
 +  * Desde alli pulsamos en ''Launch Instance'' para lanzar una nueva instancia de EC2
 +  * Una vez lanzada la instancia se nos descargará el fichero PEM que nos hará de certificado cuando queramos conectar con ella a través de SSH. En nuestro caso ese fichero se llamará ''cities.pem''
 +
  
 ===== Conectar con SSH a una instancia EC2 de AWS ===== ===== Conectar con SSH a una instancia EC2 de AWS =====
  
-===== Desplegar una aplicación en una instancia EC2 de AWS =====+Encontraremos las instrucciones para conectar pulsando en el botón ''Connect'' una vez hayamos seleccionado la instancia EC2 con la que queremos conectar. 
 + 
 +<figure> 
 +{{ aws_connect.png?500 }} 
 +</figure> 
 + 
 +Si queremos conectar mediante SSH, las instrucciones están en la pestaña que dice ''SSH Client''. Será algo como esto: 
 + 
 +<code bash> 
 +ssh -i "cities.pem" ec2-user@ec2-94-12-3-207.compute-1.amazonaws.com 
 +</code> 
 + 
 +===== Preparar la instancia EC2 para el despliegue ===== 
 + 
 +Una vez que hayamos logrado conectar con la instancia EC2, el primer caso será instalar todo lo necesario. En nuestro caso será: 
 +  * Docker 
 +  * Docker compose 
 +  * Node.js 
 +  * Git (para clonar el repositorio con nuestro código)
  
 ==== Instalar docker y docker-compose ==== ==== Instalar docker y docker-compose ====
 +
 +<code bash>
 +santi@zenbook:$ sudo yum install docker
 +santi@zenbook:$ curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o docker-compose
 +santi@zenbook:$ chown ec2-user.ec2-user docker-compose
 +santi@zenbook:$ cp docker-compose /usr/local/bin
 +</code>
 +
 +En este punto deberiamos ser capaces de ejecutar los comandos ''docker'' y ''docker-compose'' como superusuario:
 +
 +<code bash>
 +santi@zenbook:$ sudo docker
 +santi@zenbook:$ sudo docker-compose
 +</code>
  
 ==== Instalar nodejs ==== ==== Instalar nodejs ====
 +
 +<code bash>
 +santi@zenbook:$ yum install nodejs
 +</code>
  
 ==== Clonar el repositorio ==== ==== Clonar el repositorio ====
  
-==== Lanzar la aplicación ====+<code bash> 
 +santi@zenbook:$ sudo yum install git 
 +santi@zenbook:$ git clone https://github.com/codeandcoke/cities 
 +</code> 
 + 
 +===== Lanzar la aplicación ====
 + 
 +<code bash> 
 +santi@zenbook:$ sudo docker-compose -f docker-compose.dev.yaml up -d 
 +santi@zenbook:$ npm install 
 +santi@zenbook:$ npm start 
 +</code> 
 + 
 +Y ya tendremos, por ejemplo, el endpoint ''GET /cities'' disponible en http://ec2-94-12-3-207.compute-1.amazonaws.com:8080/cities
  
 ---- ----
apuntes/despliegue.1742858770.txt.gz · Last modified: 2025/03/24 23:26 by Santiago Faci