Leitfaden für AWS Aurora RDS mit Java

Leitfaden für AWS Aurora RDS mit Java

1. Einführung

Amazon Aurora is a MySQL and PostgreSQL compatible relational database built for the cloud, das die Leistung und Verfügbarkeit von kommerziellen High-End-Datenbanken mit der Einfachheit und Kosteneffizienz von Open-Source-Datenbanken kombiniert.

In diesem Lernprogramm erfahren Sie, wie Sie eine Amazon RDS-Instanz mit Java erstellen und mit ihr interagieren. Außerdem werden SQL-Tests auf Amazon RDS verbunden und ausgeführt.

Beginnen wir mit dem Einrichten des Projekts.

2. Maven-Abhängigkeiten

Erstellen Sie ein Java Maven-Projekt und fügen Sie unserem Projekt AWS SDK hinzu:


    com.amazonaws
    aws-java-sdk
    1.11.377

Aktivieren SieMaven Central, um die neueste Version anzuzeigen.

3. Voraussetzungen

Um das AWS SDK zu verwenden, müssen wir einige Dinge einrichten:

  • AWS-Konto

  • AWS-Sicherheitsanmeldeinformationen

  • AWS-Region auswählen

We need an Amazon Web Services account. Wenn Sie noch keine haben, fahren Sie fort undcreate an account

AWS Security Credentialsare the access keys that allow us to make programmatic calls to AWS API actions. Wir können diese Anmeldeinformationen auf zwei Arten abrufen, entweder indem wir die Anmeldeinformationen des AWS-Stammkontos aus dem Abschnitt "Zugriffsschlüssel" derhttps://console.aws.amazon.com/iam/home?security_credential[Security Credentials] page or by using IAM user credentials from https://console.aws.amazon.com/iam/home? [IAM-Konsole] verwenden.

We have to select an AWS region(s), in denen wir unser Amazon RDS speichern möchten. Beachten Sie, dass die RDS-Preise je nach Region variieren. Weitere Informationen finden Sie unterofficial documentation.

Für dieses Tutorial verwenden wir den asiatisch-pazifischen Raum (Sydney) (Regionap-southeast-2).

4. Stellen Sie eine Verbindung zu AWS RDS Web Services her

Zunächst müssen wir eine Client-Verbindung herstellen, um auf den Amazon RDS-Webdienst zugreifen zu können.

Zu diesem Zweck verwenden wir dieAmazonRDS -Sinterschnittstelle:

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

Konfigurieren Sie dannRDS Builder mit den entsprechendenregion undcredentials:

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

5. Amazon Aurora-Instanz

Jetzt erstellen wir die Amazon Aurora RDS-Instanz.

5.1. Erstellen Sie eine RDS-Instanz

Um die RDS-Instanz zu erstellen, müssen wir einCreateDBInstanceRequest mit den folgenden Attributen instanziieren:

  • DB-Instanz-ID, die für alle in Amazon RDS vorhandenen Instanznamen eindeutig ist

  • Die DB-Instanzklasse gibt die Konfiguration für CPU, ECU, Speicher usw. abInstance Class Table an

  • Datenbankmodul. PostgreSQL oder MySQL verwenden wir PostgreSQL

  • Datenbank-Master / Super-Benutzername

  • Kennwort des Datenbank-Hauptbenutzers

  • DB-Name, um eine anfängliche Datenbank mit dem angegebenen Namen zu erstellen

  • Geben Sie als Speichertyp einenAmazon EBS volume-Typ an. Die Liste ist verfügbarhere

  • Speicherzuordnung in GB

CreateDBInstanceRequest request = new CreateDBInstanceRequest();
request.setDBInstanceIdentifier("example");
request.setDBInstanceClass("db.t2.micro");
request.setEngine("postgres");
request.setMultiAZ(false);
request.setMasterUsername("username");
request.setMasterUserPassword("password");
request.setDBName("mydb");
request.setStorageType("gp2");
request.setAllocatedStorage(10);

Erstellen wir nun unsere erste Instanz, indem wircreateDBInstance() aufrufen: _ _

amazonRDS.createDBInstance(request);

Die RDS-Instanz wird in wenigen Minuten erstellt.

Die Endpunkt-URL wird in der Antwort nicht angezeigt, da dieser Aufruf asynchron ist.

5.2. DB-Instanz auflisten

In diesem Abschnitt erfahren Sie, wie Sie die erstellte DB-Instanz auflisten.

Um die RDS-Instanz aufzulisten, müssen wirdescribeDBInstances derAmazonRDS-Schnittstelle verwenden:

DescribeDBInstancesResult result = amazonRDS.describeDBInstances();
List instances = result.getDBInstances();
for (DBInstance instance : instances) {
    // Information about each RDS instance
    String identifier = instance.getDBInstanceIdentifier();
    String engine = instance.getEngine();
    String status = instance.getDBInstanceStatus();
    Endpoint endpoint = instance.getEndpoint();
}

Endpoint URL is the connection URL for our new DB instance. Diese URL wird als Host angegeben, wenn eine Verbindung zur Datenbank hergestellt wird.

5.3. Führen Sie den JDBC-Test aus

Verbinden wir nun unsere RDS-Instanz und erstellen unsere erste Tabelle.

Erstellen wir eine Datei db.properties und fügen die Datenbankinformationen hinzu:

db_hostname=
db_username=username
db_password=password
db_database=mydb

Stellen Sie nach dem Erstellen der Datei eine Verbindung zur RDS-Instanz her und erstellen Sie die Tabellejdbc_test:

Properties prop = new Properties();
InputStream input = AwsRdsDemo.class.getClassLoader().getResourceAsStream("db.properties");
prop.load(input);
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 = "CREATE TABLE IF NOT EXISTS jdbc_test (id SERIAL PRIMARY KEY, content VARCHAR(80))";
statement.executeUpdate(sql);

Anschließend fügen wir Daten ein und rufen sie aus der Tabelle ab:

PreparedStatement preparedStatement = conn.prepareStatement("INSERT INTO jdbc_test (content) VALUES (?)");
String content = "" + UUID.randomUUID();
preparedStatement.setString(1, content);
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("Total Records: " + count);
}

5.4. Löschen Sie die Instanz

Um die DB-Instanz zu löschen, müssen wirDeleteDBInstanceRequest.It requires the DB instance identifier and skipFinalSnapshot parameter. generieren

DieskipFinalSanpshot is, die angegeben werden soll, ob der Snapshot vor dem Löschen der Instanz erstellt werden soll:

DeleteDBInstanceRequest request = new DeleteDBInstanceRequest();
request.setDBInstanceIdentifier(identifier);
request.setSkipFinalSnapshot(true);
DBInstance instance = amazonRDS.deleteDBInstance(request);

6. Fazit

In diesem Artikel haben wir uns auf die Grundlagen der Interaktion mit Amazon Aurora (PostgreSQL) RDS über Amazon SDK konzentriert. Dieses Tutorial hat sich auf PostgreSQL konzentriert. Es gibt auch andere Optionen, einschließlich MySQL.

Obwohl die Interaktionsmethode für RDS dieselbe bleibt. Aurora ist eine bevorzugte Wahl für viele Kunden, da es bis zu fünfmal schneller als Standard-MySQL-Datenbanken und dreimal schneller als Standard-PostgreSQL-Datenbanken ist.

Weitere Informationen finden Sie unterAmazon Aurora.

Und wie immer kann der Codeover on Github gefunden werden.