Java >> Programma Java >  >> Tag >> Spring

Distribuisci l'applicazione Spring Boot su Amazon Elastic Beanstalk

In questo blog vedremo come distribuire un'applicazione Spring Boot su Amazon ElasticBeanstalk.

Amazon ElasticBeanstalk dispone di un ambiente Java preconfigurato, che può essere utilizzato per distribuire un JAR Spring Boot che contiene il contenitore servlet.

Per il nostro esempio, useremo Maven come strumento di compilazione qui.

Passaggio 1 :il primo passaggio consiste nel creare un pacchetto dell'applicazione come JAR da distribuire.
– In pom , dobbiamo assicurarci che l'attributo "packaging" sia impostato su "jar"

<groupId>com.anirudh</groupId>
    <artifactId>practice</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>Practice</name>

– Ora, esegui il comando maven per impacchettare l'applicazione e produrre un JAR.

Anirudhs-MacBook-Pro:~ anirudh$ mvn clean package

Questo impacchetta un JAR nella cartella di destinazione, qualcosa del genere:

practice-1.0-SNAPSHOT

Ora, dobbiamo creare un ambiente in ElasticBeanstalk.

Fase 2:

Accedi al tuo account AWS e vai su Elastic Beanstalk. Crea un nuovo ambiente, dai un nome alla tua applicazione, seleziona il tipo di istanza appropriato. Se stai solo testando questo, assicurati di selezionare l'istanza t2.micro, poiché è sotto il livello gratuito.

Una volta creato l'ambiente Java, è necessario caricare il "JAR" creato su Elastic Beanstalk, se si utilizza l'interfaccia Web è possibile selezionare direttamente il file e caricarlo, altrimenti se si utilizza CLI, è possibile inviarlo a ElasticBeanstalk utilizzando il suo modulo CLI. Una volta caricato, ci vorranno alcuni minuti per distribuire l'applicazione.

L'applicazione non sarebbe disponibile in questo momento poiché utilizza il proxy inverso Nginx, che per impostazione predefinita comunica con la porta 5000. Quindi, se provi a colpire l'applicazione ora, otterrai un errore 502. Per risolvere è necessario definire la proprietà “PORT”

Fase 3:Definisci il "PORTO"

Affinché l'applicazione funzioni correttamente, devi aggiungere un tag con il nome: "PORT" e il valore nella maggior parte dei casi, se stai utilizzando tutti i valori predefiniti, sarebbe 8080.

Fase 4:apri la porta 8080

Ora dobbiamo aprire la porta 8080 per il traffico in entrata per l'istanza EC2. Vai all'istanza EC2 e trova il gruppo di sicurezza che è stato utilizzato per l'istanza. Modifica i gruppi di sicurezza, aggiungi le regole in entrata e aggiungi la seguente regola:

Ora la tua porta 8080 è aperta per accettare connessioni in entrata. Ora se fai clic sul collegamento della tua applicazione, dovresti essere in grado di accedere alla tua applicazione, in caso contrario prova ad aggiungere la porta 8080 all'URL (nel caso in cui non stai utilizzando ELB)

Fase 5 facoltativo:aggiungi database

Se la tua applicazione utilizza un database, aggiungi un'istanza RDS alla tua applicazione ElasticBeanstalk e avviala.
Annota l'URL di accesso, il nome utente, la password, ecc. sarebbe qualcosa del tipo

Endpoint: aaxxxxxxj.xxxxxxxmcn.ap-south-1.rds.amazonaws.com:3306

Vai al tuo file application.properties e inserisci tutti questi 4 parametri:(questo esempio usa MySQL)

spring.datasource.url = jdbc:mysql://aaxxxxxxj.xxxxxxxmcn.ap-south-1.rds.amazonaws.com:3306/practice
spring.datasource.username = xxxxx
spring.datasource.password = xxxxxx
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

Ora, impacchetta di nuovo il tuo JAR e caricalo, se hai impostato "spring.jpa.hibernate.ddl-auto" per creare/aggiornare. Saresti in grado di creare le tabelle DB, a condizione che tu abbia già creato uno schema. È possibile utilizzare schema.sql per creare lo schema in Spring Boot.

Spero che questo aiuti a ottenere un'applicazione di avvio primaverile, distribuita su Amazon Elastic bean stalk.

Etichetta Java