Gids voor AWS Aurora RDS met Java

1. Inleiding

Amazon Aurora is een MySQL- en PostgreSQL-compatibele relationele database die is gebouwd voor de cloud dat de prestaties en beschikbaarheid van hoogwaardige commerciële databases combineert met de eenvoud en kosteneffectiviteit van open source databases.

In deze zelfstudie bespreken we hoe u een Amazon RDS-instantie met Java kunt maken en ermee kunt communiceren, we zullen ook SQL-tests op Amazon RDS verbinden en uitvoeren.

Laten we beginnen met het opzetten van het project.

2. Maven afhankelijkheden

Laten we een Java Maven-project maken en AWS SDK aan ons project toevoegen:

 com.amazonaws aws-java-sdk 1.11.377 

Controleer Maven Central om de nieuwste versie te bekijken.

3. Vereisten

Om de AWS SDK te gebruiken, hebben we een paar dingen nodig om in te stellen:

  • AWS-account
  • AWS-beveiligingsreferenties
  • AWS-regio kiezen

We hebben een Amazon Web Services-account nodig. Als je er nog geen hebt, ga je gang en maak je een account

AWS-beveiligingsreferenties zijn de toegangssleutels waarmee we programmatische aanroepen van AWS API-acties kunnen maken. We kunnen deze inloggegevens op twee manieren verkrijgen, ofwel door AWS-rootaccountreferenties te gebruiken uit het gedeelte met toegangssleutels van de pagina Beveiligingsreferenties of door IAM-gebruikersreferenties te gebruiken vanuit de IAM-console

We moeten een AWS-regio ('s) selecteren waar we onze Amazon RDS willen opslaan. Houd er rekening mee dat RDS-prijzen per regio verschillen. Ga voor meer informatie naar de officiële documentatie.

Voor deze training gebruiken we Asia Pacific (Sydney) (region ap-zuidoosten-2).

4. Maak verbinding met AWS RDS-webservices

Eerst moeten we een clientverbinding maken om toegang te krijgen tot de Amazon RDS-webservice.

We zullen gebruiken AmazonRDS interface voor dit doel:

AWSCredentials referenties = nieuwe BasicAWSCredentials ("", ""); 

Configureer vervolgens het RDS Builder met de juiste regio en Inloggegevens:

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

5. Amazon Aurora-instantie

Laten we nu de Amazon Aurora RDS-instantie maken.

5.1. Creëer RDS Voorbeeld

Om het RDS-exemplaar te maken, moeten we een CreateDBInstanceRequest met de volgende attributen:

  • DB-instantie-ID die uniek is voor alle bestaande instancenamen in Amazon RDS
  • DB Instance-klasse specificeert de configuratie voor CPU, ECU, geheugen, enz., Uit de Instance Class-tabel
  • Database-engine. PostgreSQL of MySQL, we gebruiken PostgreSQL
  • Database master / super gebruikersnaam
  • Database hoofdgebruikerswachtwoord
  • DB-naam om een ​​eerste database met de opgegeven naam te maken
  • Geef bij Opslagtype een Amazon EBS-volume type. De lijst is hier beschikbaar
  • Opslagtoewijzing in GiB
CreateDBInstanceRequest request = nieuwe CreateDBInstanceRequest (); request.setDBInstanceIdentifier ("baeldung"); request.setDBInstanceClass ("db.t2.micro"); request.setEngine ("postgres"); request.setMultiAZ (false); request.setMasterUsername ("gebruikersnaam"); request.setMasterUserPassword ("wachtwoord"); request.setDBName ("mydb"); request.setStorageType ("gp2"); request.setAllocatedStorage (10); 

Laten we nu onze eerste instantie maken door de createDBInstance ():

amazonRDS.createDBInstance (verzoek); 

RDS-instantie wordt binnen enkele minuten gemaakt.

We krijgen de eindpunt-URL niet in het antwoord omdat deze aanroep asynchroon is.

5.2. Lijst DB-instantie

In deze sectie zullen we zien hoe u het gemaakte DB-exemplaar kunt vermelden.

Om het RDS-exemplaar weer te geven, moeten we descriptionDBInstances van de AmazonRDS koppel:

DescribeDBInstancesResult resultaat = amazonRDS.describeDBInstances (); Lijst instanties = result.getDBInstances (); for (DBInstance-instantie: instanties) {// Informatie over elke RDS-instantie String-id = instance.getDBInstanceIdentifier (); String engine = instance.getEngine (); String status = instance.getDBInstanceStatus (); Eindpunt eindpunt = instance.getEndpoint (); }

Eindpunt URL is de verbindings-URL voor onze nieuwe DB-instantie. Deze URL wordt als host verstrekt tijdens het verbinden met de database.

5.3. Voer JDBC-test uit

Laten we nu onze RDS-instantie verbinden en onze eerste tabel maken.

Laten we een bestand db.properties maken en de databasegegevens toevoegen:

db_hostname = db_username = gebruikersnaam db_password = wachtwoord db_database = mydb 

Nadat we het bestand hebben gemaakt, maken we verbinding met de RDS-instantie en maken we de tabel met de naam jdbc_test:

Eigenschappen prop = nieuwe eigenschappen (); InputStream input = AwsRdsDemo.class.getClassLoader (). GetResourceAsStream ("db.properties"); prop.load (invoer); String db_hostname = prop.getProperty ("db_hostname"); String db_username = prop.getProperty ("db_username"); String db_password = prop.getProperty ("db_password"); String db_database = prop.getProperty ("db_database"); 
Connection conn = DriverManager.getConnection (jdbc_url, db_username, db_password); Statement statement = conn.createStatement (); String sql = "MAAK TABEL INDIEN NIET BESTAAT jdbc_test (id SERIËLE PRIMAIRE SLEUTEL, inhoud VARCHAR (80))"; statement.executeUpdate (sql); 

Daarna zullen we gegevens uit de tabel invoegen en ophalen:

PreparedStatement voorbereideStatement = conn.prepareStatement ("INVOEGEN IN jdbc_test (inhoud) WAARDEN (?)"); String content = "" + UUID.randomUUID (); voorbereideStatement.setString (1, inhoud); voorbereideStatement.executeUpdate (); 
String sql = "SELECTEER count (*) als count FROM jdbc_test"; ResultSet resultSet = statement.executeQuery (sql); while (resultSet.next ()) {String count = resultSet.getString ("count"); Logger.log ("Totaal aantal records:" + aantal); } 

5.4. Verwijder het exemplaar

Om DB-instantie te verwijderen, moeten we DeleteDBInstanceRequest. Het vereist de DB-instantie-ID en skipFinalSnapshot-parameter.

De skipFinalSanpshot is om aan te geven of we de momentopname willen maken voordat de instantie wordt verwijderd:

DeleteDBInstanceRequest request = nieuwe DeleteDBInstanceRequest (); request.setDBInstanceIdentifier (identificatie); request.setSkipFinalSnapshot (true); DBInstance-instantie = amazonRDS.deleteDBInstance (verzoek);

6. Conclusie

In dit artikel hebben we ons gericht op de basisprincipes van interactie met de Amazon Aurora (PostgreSQL) RDS via Amazon SDK. Deze tutorial is gericht op PostgreSQL, er zijn ook andere opties, waaronder MySQL.

Hoewel de interactiemethode hetzelfde blijft voor RDS. Aurora heeft voor veel klanten de voorkeur omdat het tot vijf keer sneller is dan standaard MySQL-databases en drie keer sneller dan standaard PostgreSQL-databases.

Bezoek Amazon Aurora voor meer informatie.

En, zoals altijd, is de code te vinden op Github.