Javaを使用したAWS Aurora RDSのガイド
1. 前書き
Amazon Aurora is a MySQL and PostgreSQL compatible relational database built for the cloudは、ハイエンドの商用データベースのパフォーマンスと可用性を、オープンソースデータベースのシンプルさと費用対効果と組み合わせたものです。
このチュートリアルでは、Javaを使用してAmazon RDSインスタンスを作成および操作する方法について説明します。また、AmazonRDSでSQLテストを接続して実行します。
プロジェクトを設定することから始めましょう。
2. Mavenの依存関係
Java Mavenプロジェクトを作成し、AWSSDKをプロジェクトに追加しましょう。
com.amazonaws
aws-java-sdk
1.11.377
最新バージョンを表示するには、Maven Centralを確認してください。
3. 前提条件
AWS SDKを使用するには、いくつかのセットアップが必要です。
-
AWSアカウント
-
AWSセキュリティ認証情報
-
AWSリージョンの選択
We need an Amazon Web Services account。 それでもない場合は、先に進んでcreate an account
AWS Security Credentialsare the access keys that allow us to make programmatic calls to AWS API actions。 これらの認証情報は、https://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コンソール]のアクセスキーセクションからAWSルートアカウント認証情報を使用する2つの方法で取得できます。
Amazon RDSを保存するWe have to select an AWS region(s)。 RDSの価格は地域によって異なることに注意してください。 詳細については、official documentationにアクセスしてください。
このチュートリアルでは、アジアパシフィック(シドニー)(リージョンap-southeast-2)を使用します。
4. AWS RDS Webサービスに接続する
最初に、Amazon RDSウェブサービスにアクセスするためのクライアント接続を作成する必要があります。
この目的のためにAmazonRDS interfaceを使用します。
AWSCredentials credentials = new BasicAWSCredentials(
"",
""
);
次に、適切なregionとcredentialsを使用してRDS Builder を構成します。
AmazonRDSClientBuilder.standard().withCredentials(credentials)
.withRegion(Regions.AP_SOUTHEAST_2)
.build();
5. Amazon Auroraインスタンス
それでは、Amazon AuroraRDSインスタンスを作成しましょう。
5.1. RDSインスタンスを作成する
RDSインスタンスを作成するには、次の属性を使用してCreateDBInstanceRequest をインスタンス化する必要があります。
-
Amazon RDSの既存のすべてのインスタンス名で一意のDBインスタンス識別子
-
DBインスタンスクラスは、Instance Class TableからCPU、ECU、メモリなどの構成を指定します
-
データベースエンジン。 PostgreSQLまたはMySQL、PostgreSQLを使用します
-
データベースマスター/スーパーユーザー名
-
データベースマスターユーザーのパスワード
-
指定された名前で初期データベースを作成するDB名
-
[ストレージタイプ]には、Amazon EBS volumeタイプを指定します。 リストは利用可能ですhere
-
GiBのストレージ割り当て
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);
次に、createDBInstance()を呼び出して最初のインスタンスを作成しましょう:_ _
amazonRDS.createDBInstance(request);
RDSインスタンスは数分で作成されます。
この呼び出しは非同期であるため、応答でエンドポイントURLを取得しません。
5.2. DBインスタンスのリスト
このセクションでは、作成されたDBインスタンスを一覧表示する方法を説明します。
RDSインスタンスを一覧表示するには、AmazonRDSインターフェースのdescribeDBInstancesを使用する必要があります。
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。 この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.It requires the DB instance identifier and skipFinalSnapshot parameter.を生成する必要があります
インスタンスを削除する前にスナップショットを取得するかどうかを指定するskipFinalSanpshot is:
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倍高速であるため、多くのお客様に推奨されます。
詳細については、Amazon Auroraにアクセスしてください。
そして、いつものように、コードはover on Githubで見つけることができます。