En aquest tema, aprendrem com desplegar una aplicació Spring Boot a Amazon Web Services (AWS). AWS és una de les plataformes de computació en núvol més populars i ofereix una àmplia gamma de serveis que poden ajudar a desplegar, gestionar i escalar aplicacions.
Objectius del Tema
- Entendre els conceptes bàsics d'AWS.
- Configurar un compte AWS.
- Desplegar una aplicació Spring Boot a AWS Elastic Beanstalk.
- Utilitzar AWS RDS per a la base de dades.
- Introducció a AWS
Què és AWS?
AWS (Amazon Web Services) és una plataforma de serveis de computació en núvol que ofereix una àmplia gamma de serveis com a infraestructura com a servei (IaaS), plataforma com a servei (PaaS) i programari com a servei (SaaS).
Serveis clau per al desplegament
- Elastic Beanstalk: Servei de desplegament i gestió d'aplicacions.
- RDS (Relational Database Service): Servei de base de dades gestionada.
- S3 (Simple Storage Service): Emmagatzematge d'objectes.
- EC2 (Elastic Compute Cloud): Servidors virtuals escalables.
- Configuració del Compte AWS
Crear un compte AWS
- Visita aws.amazon.com i fes clic a "Create an AWS Account".
- Segueix les instruccions per completar el procés de registre.
Configurar AWS CLI
- Descarrega i instal·la l'AWS CLI des de AWS CLI Installation.
- Configura l'AWS CLI amb les teves credencials:
Introdueix les teves credencials d'accés, la regió per defecte i el format de sortida.aws configure
- Desplegant a AWS Elastic Beanstalk
Crear una aplicació Spring Boot
Assegura't que tens una aplicació Spring Boot preparada per al desplegament. Si no en tens una, pots crear una aplicació bàsica seguint els passos del Mòdul 1.
Preparar l'aplicació per al desplegament
-
Generar el fitxer JAR:
./mvnw clean package
Això generarà un fitxer JAR a la carpeta
target
. -
Crear un fitxer
Procfile
: Crea un fitxer anomenatProcfile
a l'arrel del teu projecte amb el següent contingut:web: java -jar target/nom-del-teu-arxiu.jar
Desplegar a Elastic Beanstalk
-
Crear una aplicació a Elastic Beanstalk:
- Accedeix a la consola d'AWS i navega a Elastic Beanstalk.
- Fes clic a "Create Application".
- Introdueix un nom per a l'aplicació i selecciona "Java" com a plataforma.
-
Desplegar l'aplicació:
- Fes clic a "Upload and Deploy".
- Selecciona el fitxer JAR generat i carrega'l.
-
Configurar l'entorn:
- Configura les variables d'entorn necessàries per a la teva aplicació.
- Ajusta la configuració de l'entorn segons les teves necessitats (per exemple, tipus d'instància, escalabilitat, etc.).
Verificar el desplegament
Un cop completat el desplegament, Elastic Beanstalk proporcionarà una URL per accedir a la teva aplicació. Visita aquesta URL per verificar que l'aplicació s'ha desplegat correctament.
- Utilitzant AWS RDS per a la Base de Dades
Crear una instància RDS
- Accedeix a la consola d'AWS i navega a RDS.
- Fes clic a "Create database".
- Selecciona el motor de base de dades (per exemple, MySQL, PostgreSQL).
- Configura els paràmetres de la base de dades (nom, usuari, contrasenya, etc.).
- Completa la creació de la instància.
Configurar l'aplicació Spring Boot
-
Afegir dependències: Assegura't que tens les dependències necessàries al teu
pom.xml
:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
-
Configurar
application.properties
: Afegeix la configuració de la base de dades al fitxerapplication.properties
:spring.datasource.url=jdbc:mysql://<RDS-endpoint>:3306/<database-name> spring.datasource.username=<username> spring.datasource.password=<password> spring.jpa.hibernate.ddl-auto=update
Provar la connexió
Desplega de nou l'aplicació a Elastic Beanstalk i verifica que es pot connectar a la base de dades RDS.
Exercici Pràctic
Desplegar una Aplicació Spring Boot a AWS
- Crea una aplicació Spring Boot bàsica.
- Configura l'aplicació per al desplegament a Elastic Beanstalk.
- Desplega l'aplicació a Elastic Beanstalk.
- Crea una instància RDS i configura l'aplicació per utilitzar-la.
- Verifica que l'aplicació funciona correctament amb la base de dades RDS.
Solució
-
Crear l'aplicació:
spring init -d=web,data-jpa,mysql --build=maven myapp cd myapp ./mvnw clean package
-
Crear el
Procfile
:web: java -jar target/myapp-0.0.1-SNAPSHOT.jar
-
Desplegar a Elastic Beanstalk:
- Segueix els passos descrits anteriorment per crear i desplegar l'aplicació.
-
Configurar RDS:
- Segueix els passos per crear una instància RDS i configurar
application.properties
.
- Segueix els passos per crear una instància RDS i configurar
-
Verificar:
- Accedeix a la URL proporcionada per Elastic Beanstalk i comprova que l'aplicació funciona correctament.
Conclusió
En aquest tema, hem après com desplegar una aplicació Spring Boot a AWS utilitzant Elastic Beanstalk i RDS. Hem cobert els passos necessaris per configurar el compte AWS, preparar l'aplicació per al desplegament, i utilitzar una base de dades gestionada. Aquest coneixement és essencial per a qualsevol desenvolupador que vulgui desplegar aplicacions escalables i robustes en un entorn de producció.
Curs de Spring Boot
Mòdul 1: Introducció a Spring Boot
- Què és Spring Boot?
- Configuració del teu entorn de desenvolupament
- Creant la teva primera aplicació Spring Boot
- Entenent l'estructura del projecte Spring Boot
Mòdul 2: Conceptes bàsics de Spring Boot
- Anotacions de Spring Boot
- Injecció de dependències a Spring Boot
- Configuració de Spring Boot
- Propietats de Spring Boot
Mòdul 3: Construint serveis web RESTful
- Introducció als serveis web RESTful
- Creant controladors REST
- Gestionant mètodes HTTP
- Gestió d'excepcions en REST
Mòdul 4: Accés a dades amb Spring Boot
- Introducció a Spring Data JPA
- Configuració de fonts de dades
- Creant entitats JPA
- Utilitzant repositoris de Spring Data
- Mètodes de consulta a Spring Data JPA
Mòdul 5: Seguretat a Spring Boot
- Introducció a Spring Security
- Configuració de Spring Security
- Autenticació i autorització d'usuaris
- Implementant autenticació JWT
Mòdul 6: Proves a Spring Boot
Mòdul 7: Funcions avançades de Spring Boot
Mòdul 8: Desplegant aplicacions Spring Boot
Mòdul 9: Rendiment i monitorització
- Optimització del rendiment
- Monitorització amb Spring Boot Actuator
- Utilitzant Prometheus i Grafana
- Gestió de registres i logs