Guide til AWS Aurora RDS med Java

1. Introduktion

Amazon Aurora er en MySQL- og PostgreSQL-kompatibel relationsdatabase bygget til skyen der kombinerer ydeevne og tilgængelighed af avancerede kommercielle databaser med enkelheden og omkostningseffektiviteten af ​​open source-databaser.

I denne vejledning dækker vi, hvordan du opretter og interagerer med Amazon RDS-instans med Java, vi forbinder og udfører også SQL-tests på Amazon RDS.

Lad os starte med at oprette projektet.

2. Maven-afhængigheder

Lad os oprette et Java Maven-projekt og tilføje AWS SDK til vores projekt:

 com.amazonaws aws-java-sdk 1.11.377 

For at se den nyeste version skal du tjekke Maven Central.

3. Forudsætninger

For at bruge AWS SDK har vi brug for et par ting at konfigurere:

  • AWS-konto
  • AWS sikkerhedsoplysninger
  • Valg af AWS-region

Vi har brug for en Amazon Web Services-konto. Hvis du stadig ikke har nogen, skal du oprette en konto

AWS sikkerhedsoplysninger er adgangsnøglerne, der giver os mulighed for at foretage programmatiske opkald til AWS API-handlinger. Vi kan få disse legitimationsoplysninger på to måder, enten ved hjælp af AWS root-kontooplysninger fra sektionen med adgangsnøgler på siden med sikkerhedsoplysninger eller ved at bruge IAM-brugerlegitimationsoplysninger fra IAM-konsol

Vi er nødt til at vælge en AWS-region (er) hvor vi vil gemme vores Amazon RDS. Husk, at RDS-priser varierer efter region. For flere detaljer, gå over til den officielle dokumentation.

Til denne tutorial bruger vi Asia Pacific (Sydney) (region ap-sydøst-2).

4. Opret forbindelse til AWS RDS-webservices

Først skal vi oprette en klientforbindelse for at få adgang til Amazon RDS-webservice.

Vi bruger AmazonRDS interface til dette formål:

AWSCredentials-legitimationsoplysninger = nye BasicAWSCredentials ("", ""); 

Konfigurer derefter RDS Builder med det relevante område og legitimationsoplysninger:

AmazonRDSClientBuilder.standard (). WithCredentials (credentials) .withRegion (Regions.AP_SOUTHEAST_2) .build (); 

5. Amazon Aurora-instans

Lad os nu oprette Amazon Aurora RDS-instansen.

5.1. skab RDS Instans

For at oprette RDS-instansen er vi nødt til at instantiere en CreateDBInstanceRequest med følgende attributter:

  • DB Instance Identifier, der er unik på tværs af alle eksisterende instansnavne i Amazon RDS
  • DB Instance-klasse angiver konfiguration for CPU, ECU, hukommelse osv. Fra Instance Class Table
  • Databasemotor. PostgreSQL eller MySQL, vi bruger PostgreSQL
  • Database master / super brugernavn
  • Database master brugeradgangskode
  • DB-navn for at oprette en indledende database med det angivne navn
  • Angiv en for lagertype Amazon EBS-volumen type. Listen er tilgængelig her
  • Lagertildeling i GiB
CreateDBInstanceRequest anmodning = ny CreateDBInstanceRequest (); request.setDBInstanceIdentifier ("baeldung"); request.setDBInstanceClass ("db.t2.micro"); request.setEngine ("postgres"); request.setMultiAZ (falsk); request.setMasterUsername ("brugernavn"); request.setMasterUserPassword ("adgangskode"); request.setDBName ("mydb"); request.setStorageType ("gp2"); request.setAllocatedStorage (10); 

Lad os nu oprette vores første instans ved at ringe til createDBInstance ():

amazonRDS.createDBInstance (anmodning); 

RDS-instans oprettes om få minutter.

Vi får ikke slutpunkts-URL'en i svaret, da dette opkald er asynkront.

5.2. Liste DB Instance

I dette afsnit vil vi se, hvordan du opretter en oprettet DB-forekomst.

For at liste en RDS-forekomst skal vi bruge beskriv DBInstances af AmazonRDS grænseflade:

DescribeDBInstancesResult result = amazonRDS.describeDBInstances (); Listeforekomster = resultat.getDBInstances (); for (DBInstance-forekomst: instanser) {// Oplysninger om hver RDS-instans Streng-id = instans.getDBInstanceIdentifier (); String engine = instance.getEngine (); Strengstatus = forekomst.getDBInstanceStatus (); Slutpunkt slutpunkt = forekomst.getEndpunkt (); }

Slutpunkt URL er forbindelses-URL'en til vores nye DB-forekomst. Denne URL leveres som vært, når du opretter forbindelse til databasen.

5.3. Kør JDBC-test

Lad os nu forbinde vores RDS-forekomst og oprette vores første tabel.

Lad os oprette en db.properties-fil og tilføje databaseoplysningerne:

db_hostname = db_username = brugernavn db_password = adgangskode db_database = mydb 

Efter oprettelse af filen, lad os oprette forbindelse til RDS-forekomst og oprette den navngivne tabel jdbc_test:

Egenskaber prop = nye egenskaber (); InputStream input = AwsRdsDemo.class.getClassLoader (). GetResourceAsStream ("db.properties"); prop.load (input); Streng db_hostname = prop.getProperty ("db_hostname"); Streng db_username = prop.getProperty ("db_username"); Streng db_password = prop.getProperty ("db_password"); Streng db_database = prop.getProperty ("db_database"); 
Forbindelse conn = DriverManager.getConnection (jdbc_url, db_username, db_password); Erklæringserklæring = konn.createStatement (); Streng sql = "Opret TABEL, HVIS IKKE FINDES jdbc_test (id SERIEN PRIMÆR NØGLE, indhold VARCHAR (80))"; statement.executeUpdate (sql); 

Derefter indsætter og henter vi data fra tabellen:

PreparedStatement preparedStatement = conn.prepareStatement ("INSERT INTO jdbc_test (content) VALUES (?)"); Strengindhold = "" + UUID.randomUUID (); preparedStatement.setString (1, indhold); preparedStatement.executeUpdate (); 
String sql = "SELECT count (*) as count FROM jdbc_test"; ResultSet resultSet = statement.executeQuery (sql); while (resultSet.next ()) {String count = resultSet.getString ("count"); Logger.log ("Samlede poster:" + antal); } 

5.4. Slet forekomsten

For at slette DB-forekomst skal vi generere SletDBInstanceRequest. Det kræver DB-instans-id og skipFinalSnapshot-parameter.

Det skipFinalSanpshot er at specificere, om vi vil tage et øjebliksbillede, før vi sletter forekomsten:

DeleteDBInstanceRequest anmodning = ny DeleteDBInstanceRequest (); request.setDBInstanceIdentifier (identifikator); request.setSkipFinalSnapshot (sand); DBInstance-forekomst = amazonRDS.deleteDBInstance (anmodning);

6. Konklusion

I denne artikel fokuserede vi på det grundlæggende ved at interagere med Amazon Aurora (PostgreSQL) RDS via Amazon SDK. Denne tutorial har fokuseret på PostgreSQL, der er også andre muligheder, herunder MySQL.

Selvom interaktionsmetoden forbliver den samme på tværs af RDS. Aurora er et foretrukket valg for mange kunder, fordi det er op til fem gange hurtigere end standard MySQL-databaser og tre gange hurtigere end standard PostgreSQL-databaser.

For mere information besøg Amazon Aurora.

Og som altid kan koden findes på Github.