Panduan untuk AWS Aurora RDS dengan Java

1. Perkenalan

Amazon Aurora adalah database relasional yang kompatibel dengan MySQL dan PostgreSQL yang dibangun untuk cloud yang menggabungkan kinerja dan ketersediaan database komersial kelas atas dengan kesederhanaan dan efektivitas biaya database sumber terbuka.

Dalam tutorial ini, kami akan membahas cara membuat dan berinteraksi dengan instans Amazon RDS dengan Java, kami juga akan menghubungkan dan menjalankan pengujian SQL di Amazon RDS.

Mari kita mulai dengan menyiapkan proyek.

2. Ketergantungan Maven

Mari buat proyek Java Maven dan tambahkan AWS SDK ke proyek kita:

 com.amazonaws aws-java-sdk 1.11.377 

Untuk melihat versi terbaru, periksa Maven Central.

3. Prasyarat

Untuk menggunakan AWS SDK, kami memerlukan beberapa hal untuk disiapkan:

  • Akun AWS
  • Kredensial Keamanan AWS
  • Memilih Wilayah AWS

Kami membutuhkan akun Amazon Web Services . Jika Anda masih belum punya, lanjutkan dan buat akun

Kredensial Keamanan AWS adalah kunci akses yang memungkinkan kami melakukan panggilan terprogram ke tindakan API AWS . Kami bisa mendapatkan kredensial ini dengan dua cara, baik dengan menggunakan kredensial akun root AWS dari bagian kunci akses halaman Kredensial Keamanan atau dengan menggunakan kredensial pengguna IAM dari konsol IAM

Kami harus memilih wilayah AWS tempat kami ingin menyimpan Amazon RDS kami. Perlu diingat bahwa harga RDS berbeda-beda di setiap wilayah. Untuk lebih jelasnya, buka dokumentasi resmi.

Untuk tutorial ini, kami akan menggunakan Asia Pasifik (Sydney) (region ap-Southeast-2 ).

4. Hubungkan ke AWS RDS Webservices

Pertama, kita perlu membuat koneksi klien untuk mengakses layanan web Amazon RDS.

Kami akan menggunakan antarmuka AmazonRDS untuk tujuan ini:

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

Kemudian konfigurasikan RDS Builder dengan kawasan dan kredensial yang sesuai :

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

5. Instans Amazon Aurora

Sekarang mari buat instans Amazon Aurora RDS.

5.1. Buat Instans RDS

Untuk membuat instance RDS, kita perlu membuat instance CreateDBInstanceRequest dengan atribut berikut:

  • Pengidentifikasi Instans DB yang unik di semua nama instans yang ada di Amazon RDS
  • Kelas Instans DB menentukan konfigurasi untuk CPU, ECU, Memori, dll., Dari Tabel Kelas Instans
  • Mesin Database. PostgreSQL atau MySQL, kami akan menggunakan PostgreSQL
  • Master database / nama pengguna super
  • Kata sandi pengguna master database
  • Nama DB untuk membuat database awal dengan nama yang ditentukan
  • Untuk Jenis Penyimpanan, tentukan jenis volume Amazon EBS . Daftarnya tersedia di sini
  • Alokasi penyimpanan dalam GiB
CreateDBInstanceRequest request = new CreateDBInstanceRequest(); request.setDBInstanceIdentifier("baeldung"); 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); 

Sekarang mari buat instance pertama kita dengan memanggil createDBInstance () :

amazonRDS.createDBInstance(request); 

Instance RDS akan dibuat dalam beberapa menit.

Kami tidak akan mendapatkan URL titik akhir sebagai tanggapan karena panggilan ini tidak sinkron.

5.2. Buat daftar Instans DB

Di bagian ini, kita akan melihat cara membuat daftar instans DB yang dibuat.

Untuk daftar contoh RDS, kita perlu menggunakan describeDBInstances dari AmazonRDS antarmuka:

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(); }

URL titik akhir adalah URL koneksi untuk instans DB baru kami . URL ini akan disediakan sebagai host saat terhubung ke database.

5.3. Jalankan Tes JDBC

Sekarang mari hubungkan instance RDS kita dan buat tabel pertama kita.

Mari buat file db.properties dan tambahkan informasi database:

db_hostname= db_username=username db_password=password db_database=mydb 

Setelah membuat file, mari hubungkan ke instance RDS dan buat tabel bernama jdbc_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); 

Setelah itu, kami akan memasukkan dan mengambil data dari tabel:

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. Hapus Instance

Untuk menghapus instance DB, kita perlu membuat DeleteDBInstanceRequest. Ini membutuhkan pengenal instans DB dan parameter skipFinalSnapshot.

The skipFinalSanpshot adalah untuk menentukan jika kita ingin mengambil snapshot sebelum menghapus contoh:

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

6. Kesimpulan

Dalam artikel ini, kami berfokus pada dasar-dasar berinteraksi dengan Amazon Aurora (PostgreSQL) RDS melalui Amazon SDK. Tutorial ini berfokus pada PostgreSQL, ada juga opsi lain termasuk MySQL.

Meskipun metode interaksi akan tetap sama di seluruh RDS. Aurora adalah pilihan yang disukai oleh banyak pelanggan karena hingga lima kali lebih cepat daripada database MySQL standar dan tiga kali lebih cepat daripada database PostgreSQL standar.

Untuk informasi selengkapnya, kunjungi Amazon Aurora.

Dan, seperti biasa, kode dapat ditemukan di Github.