HTTPSでembulk-output-s3するための記事です。
やりかた
httpsで始まるAmazon S3のエンドポイントURLを、endpoint項目で指定します。かんたん。
out設定部分の抜粋
out:
type: s3
path_prefix: logs/
file_ext: .json
bucket: S3 bucket name
endpoint: https://s3*********** ← これ
access_key_id: 秘密
secret_access_key: 秘密
formatter:
type: csv
エンドポイントURLやサポートプロトコルはAmazon Simple Storage Service(S3)で確認できます。
こんな人に
- HTTPSでS3にアップロードしたいんだけど、どう設定書いたらいいのだろうか
- embulk-output-s3のConfigurationを見てもイマイチわからない。endpoint項目を使えばいいの?
-
embulk-input-s3もembulk-output-s3もendpoint項目の説明が
endpoint: S3 endpoint login user name
でよくわからない。login user nameってなんだ?
ちなみに-その1
Amazon S3のよくある質問によると、
HTTPS プロトコルを使用して SSL エンドポイント経由で、Amazon S3 にデータを安全にアップロード/ダウンロードすることができます。
とのことで、S3はHTTPSもOKです。
本当にHTTPSで通信しているのか確認
lsofコマンドでウォッチしてみます。
まずはembulk実行前の状態です。
静かなもんです。
次に、実際にembulkを動かしてみます。
httpsなESTABLISHEDが出てきました。
ちなみに-その2
-
embulk-input-s3もembulk-output-s3も内部では
com.amazonaws.services.s3.AmazonS3Client
を利用しています -
AmazonS3Client#setEndpoint
をコールしています - 安定の救世主:ヒシダマ様のサイトでヒントを発見
AmazonS3Client s3 = new AmazonS3Client(awsCredentials);
s3.setEndpoint("https://s3-ap-northeast-1.amazonaws.com");
- なるほど、setEndpointメソッドでhttpsなURLをセットしています
- それならendpoint項目を使うということで多分間違いなさそう
以上です。