リアルタイムAmazon S3 に連携するシンプルなJRuby アプリケーションを作成します。
JRuby はRuby プログラミング言語の高性能で安定した、完全にスレッド化されたJava 実装です。CData JDBC Driver for Amazon S3 を使用すると、JRuby からリアルタイムAmazon S3 へのデータ連携を簡単に実装できます。ここでは、Amazon S3 に接続し、クエリを実行して結果を表示する簡単なJRuby アプリを作成する方法を説明します。
Amazon S3 データにJDBC で接続
アプリを作成する前に、JDBC Driver のJAR ファイルのインストール場所をメモします。 (通常はC:\Program Files\CDatat\CData JDBC Driver for Amazon S3\libにあります。)
JRuby は、JDBC をネイティブにサポートしているため、簡単にAmazon S3 に接続してSQL クエリを実行できます。java.sql.DriverManager クラスのgetConnection 関数を使用してJDBC 接続を初期化します。
Amazon S3 リクエストを認可するには、管理者アカウントまたはカスタム権限を持つIAM ユーザーの認証情報を入力します。AccessKey をアクセスキーID に設定します。SecretKey をシークレットアクセスキーに設定します。
Note: AWS アカウント管理者として接続できますが、AWS サービスにアクセスするにはIAM ユーザー認証情報を使用することをお勧めします。
アクセスキーの取得
IAM ユーザーの資格情報を取得するには:
- IAM コンソールにサインインします。
- ナビゲーションペインで[ユーザー]を選択します。
- ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから[セキュリティ認証情報]タブを選択します。
AWS ルートアカウントの資格情報を取得するには:
- ルートアカウントの資格情報を使用してAWS 管理コンソールにサインインします。
- アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
- [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。
AWS ロールとして認証
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。RoleARN を指定することでAWS ロールを代わりに使用できます。これにより、本製品は指定されたロールの資格情報を取得しようと試みます。
(すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、ロールを引き受けるIAM ユーザーのAccessKey とSecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey および SecretKey を指定する場合、ロールは使用できません。
SSO 認証
SSO 認証を必要とするユーザーおよびロールには、RoleARN およびPrincipalArn 接続プロパティを指定してください。各Identity Provider に固有のSSOProperties を指定し、AccessKey とSecretKey を空のままにする必要があります。これにより、本製品は一時的な認証資格情報を取得するために、リクエストでSSO 認証情報を送信します。
ビルトイン接続文字列デザイナー
JDBC URL の構成については、Amazon S3 JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.amazons3.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。

以下はAmazon S3 の一般的なJDBC 接続文字列です。
jdbc:amazons3:AccessKey=a123;SecretKey=s123;
Amazon S3 データへの接続性を持つJRuby アプリを作成
新しいRuby ファイル(例: AmazonS3Select.rb) を作成してテキストエディタで開き、次のコードをファイルにコピーします。
require 'java'
require 'rubygems'
require 'C:/Program Files/CData/CData JDBC Driver for Amazon S3 2018/lib/cdata.jdbc.amazons3.jar'
url = "jdbc:amazons3:AccessKey=a123;SecretKey=s123;"
conn = java.sql.DriverManager.getConnection(url)
stmt = conn.createStatement
rs = stmt.executeQuery("SELECT Name, OwnerId FROM ObjectsACL")
while (rs.next) do
puts rs.getString(1) + ' ' + rs.getString(2)
end
ファイルが完成したら、コマンドラインからファイルを実行するだけでJRuby でAmazon S3 を表示できるようになります。
jruby -S AmazonS3Select.rb
SQL-92 クエリをAmazon S3 に書き込むと、Amazon S3 を独自のJRuby アプリケーションに素早く簡単に組み込むことができます。今すぐ無料トライアルをダウンロードしましょう。