Javaを使用したAWS Aurora RDSのガイド

1前書き

  • Amazon Auroraは、クラウド向けに構築されたMySQLおよびPostgreSQLと互換性のあるhttps://aws.amazon.com/relational-database/[リレーショナルデータベース]です。オープンソースデータベースの有効性

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

プロジェクトの設定から始めましょう。

2 Mavenの依存関係

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

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.377</version>
</dependency>

最新版を見るにはhttps://search.maven.org/search?q=g:com.amazonaws%20AND%20a:aws-java-sdk&core=gav[Maven Central]をチェックしてください。

3前提条件

AWS SDKを使用するには、いくつか設定が必要です。

  • AWSアカウント

  • AWSセキュリティ認証情報

  • AWSリージョンの選択

  • Amazon Web Servicesアカウントが必要です** 。まだアカウントがない場合は、先に進んでhttps://portal.aws.amazon.com/gp/aws/developer/registration/index.html[アカウントを作成]

  • AWSセキュリティ認証情報 は、AWS APIアクション** へのプログラムによる呼び出しを可能にするアクセスキーです。 https://console.aws.amazon.com/iam/home? security__credential[Security Credentials]ページのアクセスキーセクションからAWSルートアカウントの認証情報を使用するか、IAMユーザーを使用することで、これらの認証情報を取得することができます。 https://console.aws.amazon.com/iam/home? [IAM console]からの認証情報

  • Amazon RDSを保存するAWSリージョン** を選択する必要があります。 RDSの価格は地域によって異なります。詳細については、https://aws.amazon.com/rds/aurora/pricing/[公式文書]をご覧ください。

このチュートリアルでは、アジア太平洋地域(シドニー)(地域 ap-southeast-2 )を使用します。

4. AWS RDSウェブサービスに接続する

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

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

AWSCredentials credentials = new BasicAWSCredentials(
  "<AWS accesskey>",
  "<AWS secretkey>"
);

次に、適切な region および credentials を使用して __RDS Builder __を構成します。

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

5. Amazon Auroraインスタンス

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

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

RDSインスタンスを作成するには、以下の属性で __CreateDBInstanceRequest __をインスタンス化する必要があります。

  • すべての既存のインスタンスにわたって一意のDBインスタンス識別子

Amazon RDSの名前 ** DBインスタンスクラスは、CPU、ECU、メモリなどの設定を指定します。

から Instance クラス一覧 ** データベースエンジン。 PostgreSQLまたはMySQL、PostgreSQLを使用します

  • データベースマスター/スーパーユーザー名

  • データベースマスタユーザパスワード

指定された名前で初期データベースを作成するための** DB名

  • ストレージタイプには、__Amazon EBSボリュームタイプを指定してください。リストは

利用可能 こちら ** 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インスタンスを一覧表示するには、 AmazonRDS インターフェースの describeDBInstances を使用する必要があります。

DescribeDBInstancesResult result = amazonRDS.describeDBInstances();
List<DBInstance> 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=<Endpoint URL>
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.まとめ

この記事では、Amazon SDKを介してAmazon Aurora(PostgreSQL)RDSと対話するための基本に焦点を当てました。このチュートリアルはPostgreSQLに焦点を当てていますが、MySQLを含む他のオプションもあります。

インタラクション方法はRDSを通じて同じです。 Auroraは、標準のMySQLデータベースよりも最大5倍、標準のPostgreSQLデータベースよりも3倍高速であるため、多くのお客様に好まれています。

詳細はhttps://aws.amazon.com/rds/aurora/[Amzon Aurora]をご覧ください。

そして、いつものように、コードはhttps://github.com/eugenp/tutorials/tree/master/aws[over Github]で見つけることができます。