Javaを使用したAWSAuroraRDSのガイド

1.はじめに

Amazon Auroraは、クラウド向けに構築されたMySQLおよびPostgreSQL互換のリレーショナルデータベースであり、ハイエンドの商用データベースのパフォーマンスと可用性を、オープンソースデータベースのシンプルさと費用対効果と組み合わせています。

このチュートリアルでは、Javaを使用してAmazon RDSインスタンスを作成および操作する方法について説明します。また、AmazonRDSでSQLテストを接続して実行します。

プロジェクトを設定することから始めましょう。

2.Mavenの依存関係

Java Mavenプロジェクトを作成し、AWSSDKをプロジェクトに追加しましょう。

 com.amazonaws aws-java-sdk 1.11.377 

最新バージョンを表示するには、MavenCentralを確認してください。

3.前提条件

AWS SDKを使用するには、セットアップするものがいくつか必要です。

  • AWSアカウント
  • AWSセキュリティ認証情報
  • AWSリージョンの選択

アマゾンウェブサービスアカウントが必要です。それでもまだアカウントがない場合は、アカウントを作成してください

AWS Security Credentialsは、AW​​SAPIアクションをプログラムで呼び出すことを可能にするアクセスキーです。これらの認証情報は、[セキュリティ認証情報]ページのアクセスキーセクションからAWSルートアカウント認証情報を使用するか、IAMコンソールからIAMユーザー認証情報を使用する2つの方法で取得できます

AmazonRDSを保存するAWSリージョンを選択する必要があります。RDSの価格は地域によって異なることに注意してください。詳細については、公式ドキュメントをご覧ください。

このチュートリアルでは、Asia Pacific(Sydney)(region ap-southeast-2)を使用します。

4. AWS RDSWebサービスに接続します

まず、Amazon RDSWebサービスにアクセスするためのクライアント接続を作成する必要があります。

この目的のためにAmazonRDSインターフェースを使用します。

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

次に、適切なリージョン認証情報を使用してRDSBuilderを設定します

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

5. AmazonAuroraインスタンス

それでは、Amazon AuroraRDSインスタンスを作成しましょう。

5.1。RDSインスタンスを作成する

RDSインスタンスを作成するには、次の属性を使用してCreateDBInstanceRequestをインスタンス化する必要があります。

  • AmazonRDSの既存のすべてのインスタンス名で一意のDBインスタンス識別子
  • DBインスタンスクラスは、インスタンスクラステーブルからCPU、ECU、メモリなどの構成を指定します
  • データベースエンジン。PostgreSQLまたはMySQL、PostgreSQLを使用します
  • データベースマスター/スーパーユーザー名
  • データベースマスターユーザーのパスワード
  • 指定された名前で初期データベースを作成するためのDB名
  • [ストレージタイプ]には、AmazonEBSボリュームタイプを指定します。リストはこちらから入手できます
  • 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); 

それでは、createDBInstance()を呼び出して、最初のインスタンスを作成しましょう。

amazonRDS.createDBInstance(request); 

RDSインスタンスは数分で作成されます。

この呼び出しは非同期であるため、応答でエンドポイントURLを取得しません。

5.2。DBインスタンスの一覧表示

このセクションでは、作成されたDBインスタンスを一覧表示する方法を説明します。

RDSインスタンスを一覧表示するには、我々が使用する必要がdescribeDBInstancesAmazonRDSのインターフェースを:

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は、新しいDBインスタンスの接続URLです。このURLは、データベースへの接続時にホストとして提供されます。

5.3。JDBCテストを実行する

次に、RDSインスタンスを接続して、最初のテーブルを作成しましょう。

db.propertiesファイルを作成し、データベース情報を追加しましょう。

db_hostname= db_username=username db_password=password db_database=mydb 

ファイルを作成したら、RDSインスタンスに接続して、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); 

その後、テーブルからデータを挿入および取得します。

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。インスタンスを削除します

DBインスタンスを削除するには、DeleteDBInstanceRequestを生成する必要がありますDBインスタンス識別子とskipFinalSnapshotパラメーターが必要です。

skipFinalSanpshotは、我々は、インスタンスを削除する前にスナップショットを取りたい場合に指定することです。

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

6.結論

この記事では、AmazonSDKを介したAmazonAurora(PostgreSQL)RDSとのやり取りの基本に焦点を当てました。このチュートリアルはPostgreSQLに焦点を当てており、MySQLを含む他のオプションもあります。

相互作用の方法はRDS全体で同じままですが。Auroraは、標準のMySQLデータベースよりも最大5倍、標準のPostgreSQLデータベースよりも3倍高速であるため、多くのお客様に推奨されています。

詳細については、AmazonAuroraをご覧ください。

そして、いつものように、コードはGithubにあります。