====== Despliegue de aplicaciones ======
{{ aws.png?200 }}
===== Iniciar una instancia EC2 en AWS ====== * Accedemos a la AWS Management Console
{{ aws_management_console.png?500 }}
* Accedemos al servicio EC2
{{ aws_ec2.png?500 }}
* Accedemos a la opción ''Instances''
{{ aws_instances.png?500500 }}
* 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 ===== Encontraremos las instrucciones para conectar pulsando en el botón ''Connect'' una vez hayamos seleccionado la instancia EC2 con la que queremos conectar.
{{ aws_connect.png?500 }}
Si queremos conectar mediante SSH, las instrucciones están en la pestaña que dice ''SSH Client''. Será algo como esto: ssh -i "cities.pem" ec2-user@ec2-94-12-3-207.compute-1.amazonaws.com ===== 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 ==== 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 En este punto deberiamos ser capaces de ejecutar los comandos ''docker'' y ''docker-compose'' como superusuario: santi@zenbook:$ sudo docker santi@zenbook:$ sudo docker-compose ==== Instalar nodejs ==== santi@zenbook:$ yum install nodejs ==== Clonar el repositorio ==== santi@zenbook:$ sudo yum install git santi@zenbook:$ git clone https://github.com/codeandcoke/cities ===== Lanzar la aplicación ===== santi@zenbook:$ sudo docker-compose -f docker-compose.dev.yaml up -d santi@zenbook:$ npm install santi@zenbook:$ npm start Y ya tendremos, por ejemplo, el endpoint ''GET /cities'' disponible en http://ec2-94-12-3-207.compute-1.amazonaws.com:8080/cities ---- (c) 2024 Santiago Faci