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.

  1. 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.

  1. Configuració del Compte AWS

Crear un compte AWS

  1. Visita aws.amazon.com i fes clic a "Create an AWS Account".
  2. Segueix les instruccions per completar el procés de registre.

Configurar AWS CLI

  1. Descarrega i instal·la l'AWS CLI des de AWS CLI Installation.
  2. Configura l'AWS CLI amb les teves credencials:
    aws configure
    
    Introdueix les teves credencials d'accés, la regió per defecte i el format de sortida.

  1. 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

  1. Generar el fitxer JAR:

    ./mvnw clean package
    

    Això generarà un fitxer JAR a la carpeta target.

  2. Crear un fitxer Procfile: Crea un fitxer anomenat Procfile a l'arrel del teu projecte amb el següent contingut:

    web: java -jar target/nom-del-teu-arxiu.jar
    

Desplegar a Elastic Beanstalk

  1. 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.
  2. Desplegar l'aplicació:

    • Fes clic a "Upload and Deploy".
    • Selecciona el fitxer JAR generat i carrega'l.
  3. 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.

  1. Utilitzant AWS RDS per a la Base de Dades

Crear una instància RDS

  1. Accedeix a la consola d'AWS i navega a RDS.
  2. Fes clic a "Create database".
  3. Selecciona el motor de base de dades (per exemple, MySQL, PostgreSQL).
  4. Configura els paràmetres de la base de dades (nom, usuari, contrasenya, etc.).
  5. Completa la creació de la instància.

Configurar l'aplicació Spring Boot

  1. 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>
    
  2. Configurar application.properties: Afegeix la configuració de la base de dades al fitxer application.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

  1. Crea una aplicació Spring Boot bàsica.
  2. Configura l'aplicació per al desplegament a Elastic Beanstalk.
  3. Desplega l'aplicació a Elastic Beanstalk.
  4. Crea una instància RDS i configura l'aplicació per utilitzar-la.
  5. Verifica que l'aplicació funciona correctament amb la base de dades RDS.

Solució

  1. Crear l'aplicació:

    spring init -d=web,data-jpa,mysql --build=maven myapp
    cd myapp
    ./mvnw clean package
    
  2. Crear el Procfile:

    web: java -jar target/myapp-0.0.1-SNAPSHOT.jar
    
  3. Desplegar a Elastic Beanstalk:

    • Segueix els passos descrits anteriorment per crear i desplegar l'aplicació.
  4. Configurar RDS:

    • Segueix els passos per crear una instància RDS i configurar application.properties.
  5. 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

Mòdul 2: Conceptes bàsics de Spring Boot

Mòdul 3: Construint serveis web RESTful

Mòdul 4: Accés a dades amb Spring Boot

Mòdul 5: Seguretat a Spring Boot

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ó

Mòdul 10: Millors pràctiques i consells

© Copyright 2024. Tots els drets reservats