[Talend]tS3Connectionを利用してS3へ基本的な接続をする

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tS3Connection」を利用したS3への基本的な接続を紹介したいと思います。なお、このコンポーネントは、なかなか奥が深いと思われるので何回かに分けて記事を書く予定です。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。

tS3Connectionについて

「tS3Connection」を利用すると「tS3XXXXX」というS3用の各コンポーネントにおけるコネクションを共通設定することができます。

「tS3Connection」コンポーネントのTalend Helpページはこちらです。

tS3Connection

では、具体的に以下で解説していきます。

ジョブの説明

「tS3Connection」でコネクションを張るだけのシンプルなジョブになります。

外部モジュールのインストール

「tS3Connection」コンポーネントは外部モジュールのインストールが要求されるので、インストールをしていない場合は「インストール...」から「全てのモジュールをダウンロード及びインストール」でインストールしておきます。

なお、インストールされるJarファイルはaws-java-sdk-1.11.406.jarになります。

「tS3Connection」コンポーネントの設定

「tS3Connection」コンポーネントでは、まずは以下のように基本的な設定をしました。

アクセスキー、シークレットキー

AWSのマネージメントコンソールなどで作成した、IAMユーザのアクセスキー、シークレットキーを指定します。なお、IAMユーザにはS3に対する適切なポリシー設定を行っておく必要がありますが、今回は検証のため「AmazonS3FullAccess」を設定してあります。

リージョンとエンドポイント

初期設定では「デフォルト」となっています。Javaのコードを確認すると、以下の通りus-east-1が設定されていました。

com.amazonaws.services.s3.AmazonS3 conn_tS3Connection_1 = com.amazonaws.services.s3.AmazonS3ClientBuilder
		.standard()
		.withRegion("us-east-1")
		// The first region to try your request against
		.withForceGlobalBucketAccessEnabled(true)
		// If a bucket is in a different region, try again in
		// the correct region
		.withCredentials(credentialsProvider_tS3Connection_1)
		.withClientConfiguration(cc_tS3Connection_1).build();

この設定を「アジア太平洋(東京)」に変更すると、withRegionの引数もap-northeast-1に変わるような挙動となっていました。

S3アクセスを確認

このオプションはデフォルトで有効となっていますが、有効の場合には以下のようにgetS3AccountOwnerメソッドを利用してS3へのアクセスを確認しています。

// This method is just for test connection.
conn_tS3Connection_1.getS3AccountOwner();

【参考】AmazonS3Client (AWS SDK for Java - 1.11.500) | getS3AccountOwner

実行結果

今回の設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3362
[statistics] connected
[statistics] disconnected

出力としては特になく、正常に処理が完了していることからS3への接続が成功していることを判断しています。なお、接続できない場合には例外が発生してエラー終了します。

まとめ

以上、「tS3Connection」コンポーネントの紹介でした。

今回は基本的な設定のみでしたが、今後各種設定についてご紹介できればと思います。

それでは!