====== 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