Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Aggiungere un'istanza Amazon RDS DB al tuo ambiente Java Elastic Beanstalk

Modalità Focus
Aggiungere un'istanza Amazon RDS DB al tuo ambiente Java Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Questo argomento fornisce istruzioni per creare un Amazon RDS utilizzando la console Elastic Beanstalk. Puoi utilizzare un'istanza DB di Amazon Relational Database Service (RDSAmazon) per archiviare i dati raccolti e modificati dall'applicazione. Il database può essere collegato all'ambiente e gestito da Elastic Beanstalk oppure può essere creato e gestito esternamente.

Se utilizzi Amazon RDS per la prima volta, aggiungi un'istanza DB a un ambiente di test utilizzando la console Elastic Beanstalk e verifica che l'applicazione sia in grado di connettersi ad essa.

Per aggiungere un'istanza database al tuo ambiente
  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel pannello di navigazione, selezionare Configuration (Configurazione).

  4. Nella categoria di configurazione del Database, scegliere Edit (Modifica).

  5. Scegliere un motore di database e immettere un nome utente e una password.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

L'aggiunta di un'istanza database richiede circa 10 minuti. Quando l'aggiornamento dell'ambiente è completo, il nome host dell'istanza database e altre informazioni di connessione sono disponibili per la tua applicazione tramite le seguenti proprietà dell'ambiente:

Nome proprietà Descrizione Valore proprietà

RDS_HOSTNAME

Il nome host dell'istanza DB.

Nella scheda Connettività e sicurezza della RDS console Amazon: Endpoint.

RDS_PORT

La porta su cui l'istanza database accetta le connessioni. Il valore predefinito varia tra i motori di database.

Nella scheda Connettività e sicurezza della RDS console Amazon: Porta.

RDS_DB_NAME

Il nome del database, ebdb.

Nella scheda Configurazione della RDS console Amazon: DB Name.

RDS_USERNAME

Il nome utente configurato per il database.

Nella scheda Configurazione della RDS console Amazon: nome utente principale.

RDS_PASSWORD

La password configurata per il database.

Non disponibile come riferimento nella RDS console Amazon.

Per ulteriori informazioni sulla configurazione di una istanza database interna, consulta Aggiunta di un database all'ambiente Elastic Beanstalk. Per istruzioni su come configurare un database esterno per l'uso con Elastic Beanstalk, consulta Utilizzo di Elastic Beanstalk con Amazon RDS.

Per connetterti al database, aggiungi il JAR file del driver appropriato all'applicazione, carica la classe del driver nel codice e crea un oggetto di connessione con le proprietà di ambiente fornite da Elastic Beanstalk.

Scaricamento del driver JDBC

Avrai bisogno del JAR file del JDBC driver per il motore DB che scegli. Salvate il JAR file nel codice sorgente e includetelo nel classpath quando compilate la classe che crea connessioni al database.

Puoi trovare il driver più recente per il motore di database nelle seguenti posizioni:

Per utilizzare il JDBC driver, chiama Class.forName() per caricarlo prima di creare la connessione DriverManager.getConnection() inclusa nel codice.

JDBCutilizza una stringa di connessione nel seguente formato:

jdbc:driver://hostname:port/dbName?user=userName&password=password

Puoi recuperare il nome host, la porta, il nome del database, il nome utente e la password dalle variabili di ambiente che Elastic Beanstalk fornisce alla tua applicazione. Il nome del driver è specifico per il tuo tipo di database e per la versione del driver. Di seguito vengono riportati esempi di nomi di driver:

  • mysqlper My SQL

  • postgresqlper Postgre SQL

  • oracle:thin per Oracle Thin

  • oracle:ociper Oracle OCI

  • oracle:oci8per Oracle OCI 8

  • oracle:kprbper Oracle KPRB

  • sqlserverper SQL Server

Connessione a un database (piattaforme Java SE)

In un ambiente Java SE, utilizza System.getenv() per leggere le variabili di connessione dall'ambiente. Il codice di esempio seguente mostra una classe che crea una connessione a un database Postgre. SQL

private static Connection getRemoteConnection() { if (System.getenv("RDS_HOSTNAME") != null) { try { Class.forName("org.postgresql.Driver"); String dbName = System.getenv("RDS_DB_NAME"); String userName = System.getenv("RDS_USERNAME"); String password = System.getenv("RDS_PASSWORD"); String hostname = System.getenv("RDS_HOSTNAME"); String port = System.getenv("RDS_PORT"); String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password; logger.trace("Getting remote connection with connection string from environment variables."); Connection con = DriverManager.getConnection(jdbcUrl); logger.info("Remote connection successful."); return con; } catch (ClassNotFoundException e) { logger.warn(e.toString());} catch (SQLException e) { logger.warn(e.toString());} } return null; }

Connessione a un database (piattaforme Tomcat)

In un ambiente Tomcat, le proprietà dell'ambiente vengono fornite come proprietà di sistema accessibili con System.getProperty().

Il codice di esempio seguente mostra una classe che crea una connessione a un database SQL Postgre.

private static Connection getRemoteConnection() { if (System.getProperty("RDS_HOSTNAME") != null) { try { Class.forName("org.postgresql.Driver"); String dbName = System.getProperty("RDS_DB_NAME"); String userName = System.getProperty("RDS_USERNAME"); String password = System.getProperty("RDS_PASSWORD"); String hostname = System.getProperty("RDS_HOSTNAME"); String port = System.getProperty("RDS_PORT"); String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password; logger.trace("Getting remote connection with connection string from environment variables."); Connection con = DriverManager.getConnection(jdbcUrl); logger.info("Remote connection successful."); return con; } catch (ClassNotFoundException e) { logger.warn(e.toString());} catch (SQLException e) { logger.warn(e.toString());} } return null; }

Se hai problemi a stabilire una connessione o a eseguire SQL istruzioni, prova a inserire il codice seguente in un JSP file. Questo codice si connette a un'istanza database, crea una tabella e scrive su di essa.

<%@ page import="java.sql.*" %> <% // Read RDS connection information from the environment String dbName = System.getProperty("RDS_DB_NAME"); String userName = System.getProperty("RDS_USERNAME"); String password = System.getProperty("RDS_PASSWORD"); String hostname = System.getProperty("RDS_HOSTNAME"); String port = System.getProperty("RDS_PORT"); String jdbcUrl = "jdbc:mysql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password; // Load the JDBC driver try { System.out.println("Loading driver..."); Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver loaded!"); } catch (ClassNotFoundException e) { throw new RuntimeException("Cannot find the driver in the classpath!", e); } Connection conn = null; Statement setupStatement = null; Statement readStatement = null; ResultSet resultSet = null; String results = ""; int numresults = 0; String statement = null; try { // Create connection to RDS DB instance conn = DriverManager.getConnection(jdbcUrl); // Create a table and write two rows setupStatement = conn.createStatement(); String createTable = "CREATE TABLE Beanstalk (Resource char(50));"; String insertRow1 = "INSERT INTO Beanstalk (Resource) VALUES ('EC2 Instance');"; String insertRow2 = "INSERT INTO Beanstalk (Resource) VALUES ('RDS Instance');"; setupStatement.addBatch(createTable); setupStatement.addBatch(insertRow1); setupStatement.addBatch(insertRow2); setupStatement.executeBatch(); setupStatement.close(); } catch (SQLException ex) { // Handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } finally { System.out.println("Closing the connection."); if (conn != null) try { conn.close(); } catch (SQLException ignore) {} } try { conn = DriverManager.getConnection(jdbcUrl); readStatement = conn.createStatement(); resultSet = readStatement.executeQuery("SELECT Resource FROM Beanstalk;"); resultSet.first(); results = resultSet.getString("Resource"); resultSet.next(); results += ", " + resultSet.getString("Resource"); resultSet.close(); readStatement.close(); conn.close(); } catch (SQLException ex) { // Handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } finally { System.out.println("Closing the connection."); if (conn != null) try { conn.close(); } catch (SQLException ignore) {} } %>

Per visualizzare i risultati, inserite il codice seguente nel corpo della HTML parte del JSP file.

<p>Established connection to RDS. Read first two rows: <%= results %></p>

Risoluzione dei problemi di connessione del database

In caso di problemi di connessione a un database all'interno dell'applicazione, rivedi il log del container Web e il database.

Revisione dei log

Puoi visualizzare tutti i log dall'ambiente Elastic Beanstalk all'interno di Eclipse. Se la visualizzazione AWS Explorer non è aperta, scegliete la freccia accanto all' AWS icona arancione nella barra degli strumenti, quindi scegliete Mostra visualizzazione AWS Explorer. Espandi AWS Elastic Beanstalk e il nome dell'ambiente, quindi apri il menu contestuale (pulsante destro del mouse) per il server. Scegli Apri in WTP Server Editor.

Scegli la scheda Log della vista del Server per visualizzare i log di aggregazione dell'ambiente. Per aprire gli ultimi log, scegli il pulsante Refresh (Aggiorna) nell'angolo in alto a destra della pagina.

Scendi verso il basso per individuare i log Tomcat in /var/log/tomcat7/catalina.out. Se hai caricato la pagina Web dal nostro esempio precedente più volte, potresti visualizzare quanto segue.

------------------------------------- /var/log/tomcat7/catalina.out ------------------------------------- INFO: Server startup in 9285 ms Loading driver... Driver loaded! SQLException: Table 'Beanstalk' already exists SQLState: 42S01 VendorError: 1050 Closing the connection. Closing the connection.

Tutte le informazioni che l'applicazione Web invia all'output standard appaiono nel log del container Web. Nell'esempio precedente, l'applicazione cerca di creare la tabella ogni volta che la pagina viene caricata. In questo modo viene rilevata un'SQLeccezione a ogni caricamento di pagina dopo il primo caricamento.

Ad esempio, l'operazione precedente è accettabile. Tuttavia, nelle applicazioni concrete, mantieni le definizioni del tuo database in oggetti dello schema, esegui le transazioni all'interno di classi di modelli e coordina le richieste con servlet di controller.

Connessione a un'istanza database RDS

Puoi connetterti direttamente all'istanza RDS DB nel tuo ambiente Elastic Beanstalk utilizzando l'applicazione My client. SQL

Innanzitutto, apri il gruppo di sicurezza sull'istanza RDS DB per consentire il traffico proveniente dal tuo computer.

  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel pannello di navigazione, selezionare Configuration (Configurazione).

  4. Nella categoria di configurazione del Database, scegliere Edit (Modifica).

  5. Accanto a Endpoint, scegli il link alla RDS console Amazon.

  6. Nella pagina dei dettagli dell'istanza RDSDashboard, in Sicurezza e rete, scegli il gruppo di sicurezza che inizia con rds, accanto a Security Groups.

    Nota

    Il database potrebbe avere più voci etichettate con Security Groups(Gruppi di sicurezza). Usa il primo, che inizia con awseb, solo se hai un account precedente che non dispone di un Amazon Virtual Private Cloud (AmazonVPC) predefinito.

  7. In Security group details (Dettagli gruppi di sicurezza), seleziona la scheda Inbound (In ingresso), quindi Edit (Modifica).

  8. Aggiungi una regola per My SQL (porta 3306) che consenta il traffico proveniente dal tuo indirizzo IP, specificato nel formato. CIDR

  9. Seleziona Salva. Le modifiche diventano effettive immediatamente.

Torna ai dettagli di configurazione di Elastic Beanstalk per l'ambiente e prendi nota dell'endpoint. Utilizzerai il nome di dominio per connetterti all'istanza RDS DB.

Installa il SQL client My e avvia una connessione al database sulla porta 3306. In Windows, installa My SQL Workbench dalla mia SQL home page e segui le istruzioni.

Su Linux, installa il SQL client My utilizzando il gestore di pacchetti per la tua distribuzione. L'esempio seguente funziona con Ubuntu e altri derivati Debian.

// Install MySQL client $ sudo apt-get install mysql-client-5.5 ... // Connect to database $ mysql -h aas839jo2vwhwb.cnubrrfwfka8.us-west-2.rds.amazonaws.com -u username -ppassword ebdb Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 117 Server version: 5.5.40-log Source distribution ...

Dopo la connessione, puoi eseguire SQL comandi per visualizzare lo stato del database, se le tabelle e le righe sono state create e altre informazioni.

mysql> SELECT Resource from Beanstalk; +--------------+ | Resource | +--------------+ | EC2 Instance | | RDS Instance | +--------------+ 2 rows in set (0.01 sec)

Argomento successivo:

Risorse

Argomento precedente:

Configurazione del proxy
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.