この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
Amazon Auroraに久しぶりに触ってみました。 今回はJavaのプログラムからAmazon Auroraに接続してみます。
準備する
まずはAmazon Auroraを起動します。私はt2.medium のシングルAZで構築しました。 その次にプログラムで使うJDBCドライバをダウンロードします。今回はMariaDBのドライバを使いました。他にはMySQLのJDBCも使えます。MariaDBのドライバは以下からダウンロードしました。 MariaDB Connector/J - MariaDB
Auroraには他のRDSと違いクラスターという複数のインスタンスをまとめたグループのような概念があります。 クラスターとインスタンスにそれぞれエンドポイントがあります。今回はシングルAZなのでどちらを指定しても同じになります。 詳しくは以下のページのAmazon RDSの基本構成のAuroraのところをご覧ください。 AWS再入門 Amazon RDS編
Amazon Auroraが起動したらプログラムから接続するテーブルを作成して準備完了です。
create table sample(
column1 int
);
実装する
準備ができたのでJDBCドライバにビルドパスを通して以下のように実装します。実行してテーブルの件数が標準出力に出力されたら成功です。何もInsertしていなければ0と表示されると思います。ハイライトの部分以外はMySQLに接続する場合と変わりません。
import java.sql.*;
public class SampleAurora {
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("org.mariadb.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:aurora://[エンドポイント]:[ポート番号]/[DB名]?user=[ユーザ名]&password=[パスワード]");
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT count(*) FROM sample;");
resultSet.next();
System.out.println(resultSet.getInt(1));
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
最後に
マルチAZ構成のAuroraにMariaDBのJDBCドライバを使って接続すると、障害発生時に高速にフェールオーバーできるようです。 以下のページで説明しているようにgetConnectionの引数にインスタンスのエンドポイントを複数指定します。ぜひこちらの記事もご覧ください。 MariaDB Connector/JによるAmazon RDS for Auroraの高速フェイルオーバー