Guide til AWS Aurora RDS med Java

1. Introduksjon

Amazon Aurora er en MySQL og PostgreSQL-kompatibel relasjonsdatabase bygget for skyen som kombinerer ytelsen og tilgjengeligheten til avanserte kommersielle databaser med enkelheten og kostnadseffektiviteten til open source-databaser.

I denne opplæringen vil vi dekke hvordan du oppretter og samhandler med Amazon RDS-forekomst med Java, vi kobler også til og utfører SQL-tester på Amazon RDS.

La oss starte med å sette opp prosjektet.

2. Maven-avhengigheter

La oss lage et Java Maven-prosjekt og legge til AWS SDK i prosjektet vårt:

 com.amazonaws aws-java-sdk 1.11.377 

For å se den nyeste versjonen, sjekk Maven Central.

3. Forutsetninger

For å bruke AWS SDK trenger vi noen ting å konfigurere:

  • AWS-konto
  • AWS sikkerhetsinformasjon
  • Velge AWS-region

Vi trenger en Amazon Web Services-konto. Hvis du fortsatt ikke har noen, kan du opprette en konto

AWS sikkerhetsinformasjon er tilgangsnøklene som lar oss ringe programmatiske samtaler til AWS API-handlinger. Vi kan få disse legitimasjonene på to måter, enten ved å bruke AWS root-kontolegitimasjon fra tilgangsnøkkelen på sikkerhetsinformasjonen eller ved å bruke IAM-brukerlegitimasjon fra IAM-konsollen.

Vi må velge en AWS-region (er) hvor vi vil lagre Amazon RDS. Husk at RDS-prisene varierer etter region. For mer informasjon, gå til den offisielle dokumentasjonen.

For denne veiledningen bruker vi Asia Pacific (Sydney) (region ap-sørøst-2).

4. Koble til AWS RDS-nettjenester

Først må vi opprette en klientforbindelse for å få tilgang til Amazon RDS-nettjeneste.

Vi bruker AmazonRDS grensesnitt for dette formålet:

AWSCredentials credentials = new BasicAWSCredentials ("", ""); 

Konfigurer deretter RDS Builder med det aktuelle region og legitimasjon:

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

5. Amazon Aurora Instance

La oss nå opprette Amazon Aurora RDS-forekomst.

5.1. Skape RDS Forekomst

For å opprette RDS-forekomsten, må vi starte en CreateDBInstanceRequest med følgende attributter:

  • DB Instance Identifier som er unik på tvers av alle eksisterende forekomster i Amazon RDS
  • DB Instance-klasse angir konfigurasjon for CPU, ECU, minne osv., Fra Instance Class Table
  • Databasemotor. PostgreSQL eller MySQL, vi bruker PostgreSQL
  • Database master / super brukernavn
  • Database master brukerpassord
  • DB-navn for å opprette en innledende database med det angitte navnet
  • Angi en for lagringstype Amazon EBS-volum type. Listen er tilgjengelig her
  • Lagringstildeling i GiB
CreateDBInstanceRequest-forespørsel = ny CreateDBInstanceRequest (); request.setDBInstanceIdentifier ("baeldung"); request.setDBInstanceClass ("db.t2.micro"); request.setEngine ("postgres"); request.setMultiAZ (false); request.setMasterUsername ("brukernavn"); request.setMasterUserPassword ("passord"); request.setDBName ("mydb"); request.setStorageType ("gp2"); request.setAllocatedStorage (10); 

La oss nå lage vår første forekomst ved å ringe createDBInstance ():

amazonRDS.createDBInstance (forespørsel); 

RDS-forekomst vil bli opprettet om noen få minutter.

Vi får ikke sluttpunkts-URL-en i svaret ettersom denne samtalen er asynkron.

5.2. Liste DB Instance

I denne delen vil vi se hvordan du lister opp den opprinnelige DB-forekomsten.

For å liste opp RDS-forekomsten, må vi bruke beskriv DBInstances av AmazonRDS grensesnitt:

DescribeDBInstancesResult result = amazonRDS.describeDBInstances (); Listeforekomster = resultat.getDBInstances (); for (DBInstance-forekomst: forekomster) {// Informasjon om hver RDS-forekomst Strengidentifikator = forekomst.getDBInstanceIdentifier (); Strengmotor = forekomst.getEngine (); Strengstatus = forekomst.getDBInstanceStatus (); Endpoint endpoint = instance.getEndpoint (); }

Endepunkt URL er tilkoblings-URL for vår nye DB-forekomst. Denne URL-en vil bli gitt som vert når du kobler til databasen.

5.3. Kjør JDBC Test

La oss nå koble RDS-forekomsten vår og lage vår første tabell.

La oss lage en db.properties-fil og legge til databaseinformasjonen:

db_hostname = db_username = brukernavn db_password = passord db_database = mydb 

Etter å ha opprettet filen, la oss koble til RDS-forekomst og lage tabellen som heter jdbc_test:

Egenskaper prop = nye egenskaper (); 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"); 
Connection conn = DriverManager.getConnection (jdbc_url, db_username, db_password); Uttalelsesuttalelse = conn.createStatement (); Streng sql = "OPPRETT TABELL HVIS IKKE eksisterer jdbc_test (id SERIENØVRIG Nøkkel, innhold VARCHAR (80))"; statement.executeUpdate (sql); 

Etterpå setter vi inn og henter data fra tabellen:

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

5.4. Slett forekomsten

For å slette DB-forekomst, må vi generere DeleteDBInstanceRequest. Det krever DB-forekomst-ID og skipFinalSnapshot-parameter.

De skipFinalSanpshot er å spesifisere om vi vil ta stillbildet før vi sletter forekomsten:

DeleteDBInstanceRequest request = new DeleteDBInstanceRequest (); request.setDBInstanceIdentifier (identifikator); request.setSkipFinalSnapshot (true); DBInstance-forekomst = amazonRDS.deleteDBInstance (forespørsel);

6. Konklusjon

I denne artikkelen fokuserte vi på det grunnleggende om å samhandle med Amazon Aurora (PostgreSQL) RDS via Amazon SDK. Denne opplæringen har fokusert på PostgreSQL. Det er også andre alternativer, inkludert MySQL.

Selv om samhandlingsmetoden vil være den samme på tvers av RDS. Aurora er et foretrukket valg for mange kunder fordi det er opptil fem ganger raskere enn standard MySQL-databaser og tre ganger raskere enn standard PostgreSQL-databaser.

For mer informasjon besøk Amazon Aurora.

Og som alltid kan koden finnes på Github.