Explora el fascinante mundo del despliegue AWS con EC2 y MySQL a través de nuestro manual práctico. Desde configuraciones esenciales hasta consejos avanzados, descubre cómo llevar tus proyectos a nuevas alturas en la nube. ¡Bienvenido a la revolución del despliegue eficiente!
Requerimientos:
- Tener una cuenta en AWS.
- Tener instalado Putty key Generator.
- Tener instalado FileZilla Client
Manual Practico de Despliegue en aws con Ec2 y Mysql.
1.Primeramente Ingresaremos al servicio de Ec2 y damos clic en lanzar instancia.


2.Luego crearemos una instancia llenando todos los campos que se muestran en las imágenes utilizaremos el sistema operativo Ubuntu.

3.Dejamos en t2.micro.

4.Ahora creamos un par de claves para ingresar a la instancia de forma segura.

5.Completamos los datos del formulario y damos en crear par de claves.

6.Se descargara un archivo .pem el cual nos servida para ingresar atreves de SSH así que guardamos ese archivo en una carpeta.

7.Buscamos y seleccionamos la clave que hemos creado.

8.ahora realizamos la configuración de la red seleccionamos la 3 forma de comunicación.

9.Después realizamos la configuración del almacenamiento tener el cuenta que esto forma parte de la capa gratuita y se nos cobrara por la cantidad de almacenamiento que hemos colocado y el tipo de volumen.

10.Luego de hacer todas esta configuraciones hacemos clic en lanzar instancia.

11.Nos aparecerá un mensaje de en verde que significa que la instancia se creo con éxito damos clic en ver instancias.

12.Seleccionamos la instancia que hemos creado.

13.Como podemos visualizar la instancia se encuentra en ejecución.

14.Ahora pasaremos a crear un Ip elástica con el fin de que no se nos cambie la Ip cuando detenemos y iniciamos nuevamente nuestra instancia cabe aclarar que este servicio no engloba la capa gratuita de Ec2 por consiguiente tiene un costo.



15.Se creo la ip eláctica correctamente.

16.Pasaremos a asociar nuestra ip elástica con nuestra Instancia de Ec2.


17.Como se puede ver se nos enviara un mensaje de que la instancia fue asociada correctamente.

Conección a la instancia Ec2 vía SSH
18.Seleccionamos nuestra instancia y damos clic a conectar.

19.Luego seleccionamos la conexión por SSH.

20.Seguimos las instrucciones para realizar una conexión exitosa.

21. Abriremos un cmd apuntando a la carpeta donde se encuentra nuestra llave primaria.

22.Luego pasaremos a colocar los comando que nos brinda la conexión vía ssh en único comando que va a cambiar es el de los permisos ya que este comando es para un sistema linux tenemos que cambiar el comando para el sistema operativo Windows.
Lista de comandos:
- dir
- icacls servidor-ubuntu.pem /grant «nombreDeUsuario:(OI)(CI)F»
- ssh -i «clave-ubuntu.pem» ubuntu@ec2-3-130-69-212.us-east-2.compute.amazonaws.com (Cambielo por el suyo)
- Y

23. Luego ejecutamos estos comandos para actualizar los paquetes que tiene nuestro servidor y descargar el openJdk 17.
- sudo apt-get update
- sudo apt install openjdk-17-jdk
- Y

Imagen del archivo .properties.

24.Ahora debemos empaquetar nuestro proyecto java en un archivo .jar para eso utilizaremos este comando :
- mvn clean package

25.Si el empaquetado fue exitoso obtendras este resultado.


25.Ahora tenemos que convertir nuestra la clave que hemos descargado en el formato .pem a formato .ppk y lo Haremos con la herramienta PuTTy key Generator:



26.Le asignamos un nombre a nuestro archivo .PPK y lo guardamos en la carpeta correspondiente.

27.Ahora nos abriremos la aplicación FileZilla para transferir nuestro archivo .jar a la instancia de Ec2.Primero realizaremos las siguientes configuraciones:

28.Agregamos nuestra clave .ppk.


29.creamos un nuevo sitio colocamos la ip publica de nuestra instancia de aws colocamos e puerto y intentamos conectarnos.


30.Si aparece la lista de carpetas de nuestra instancia significa que la conexión fue exitosa.

31.Luego creamos una carpeta llamada app dentro de la carpeta Ubuntu y enviamos nuestro .jar compilado y cambiando el nombre de ese archivo a app.jar.

32.Revisamos si la carpeta creada se encuentra.

33.Entramos a la carpeta app.

34.Revisamos si se encuentra el archivo.jar.

35.Luego instalamos nginx como servidor Proxy inverso para redirigir el tráfico http del puerto 80 por defecto al puerto que usará la aplicación Spring boot.

36.Una vez que la instalación se haya completado crearemos un archivo para configurar un nuevo sitio que administrará nginx.con este comando.
- sudo nano /etc/nginx/sites-available/app
37.Automáticamente este comando abrirá un editor de texto en el cual escribiremos esta configuración lo único que cambias es la dirección ip publica por la de tu instancia ec2 :

38.Utilizaremos los siguientes comandos para descargar el mysql:


39.Ejecutar esto comandos para prender el servicios de mysql y para que se inicie automáticamente una vez el servicio se prende.
- sudo systemctl start mysql
- sudo systemctl enable mysql
- sudo mysql_secure_installation
40.después colocar este comando para ingresar como usuario Root.

41.Colocar estos comandos para crear una base de datos crear y asignarlo a otro un usuario y contraseña.

42.Ingresamos con el nuevo usuario y contraseña que hemos creado.

43.luego revisamos todos los usuarios que existen en nuestro mysql.

44.Después de eso colocamos el comandos SHOW DATABASES para revisar si nuestra base de datos se creo correctamente.

45.Después usamos este comando para seleccionar una tabla.
- Use db_agenda
46.luego creamos una tabla y dos registros.

47.Reiniciamos nuestra instancia con estos comandos .
- sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/.
- sudo service nginx restart.
48.Crearemos un servicio que será administrado por systemd para garantizar que la aplicación se lance automáticamente cuando se lanze el servicio .
- sudo nano /etc/systemd/system/app.service
49.Se abrirá un archivo de texto en el cual colocaremos esta configuración:

50.Prendemos el servicio:
- sudo systemctl enable app.service
51.Reiniciamos el sistema.
- sudo reboot now
51.Verificamos si el servicio se a desplegado correctamente.
- sudo journalctl -u app.service -xe

52.La aplicación fue desplegada correctamente y ahora lo revisaremos atreves del navegador como este fue un despliegue atreves de http debemos borrar la letra S de nuestra url y se mostrara con éxito nuestro proyecto desplegado en la nube de aws.
Imagen de despliegue aws con mysql
