大瀧隆太(430)28この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。EmbulkをEC2上のDockerで実行してみました。その様子をレポートします。Drillで変換する様子は石川のエントリーを参照ください。Buildを利用しました。作成されたDockerイメージは公開されているので、試したい方は記事後半の動作確認の手順に従い、イメージをダウンロードしてご利用ください。Embulk実行について、以下のポリシーで設計しました。コンテナ内部には極力データを置かない方針です。S3のバケット名など構成情報はイメージに含めず、環境変数もしくはIAMロールなどで外出しするAWSのAPIキーなど認証情報はイメージに含めず、環境変数もしくはIAMロールなどで外出しするまた、Dockerイメージの作成についても、以下の方針としました。FROMにバイナリを持つイメージを指定し、Embulkのコンフィグファイルを持つDockerイメージEmbulkのコンフィグファイル(config.yml/config.yml.liquid)をイメージに含むかは悩んだのですが、今回はイメージに含め指定した部分のみコンテナの実行時に環境変数で指定する形にしました。この点において、EmbulkがLiquidテンプレートをサポートしているのが非常に役立ちました。これが無いと、エントリポイントのシェルスクリプト内でsedを連打する羽目になるので(笑)。コンテナ実行時に-vオプションなどでホストのコンフィグファイルを読み込むのもアリだと思います。いうわけで、それぞれのイメージを解説してみます。takipone/embulkこちらはEmbulkの実行ファイルを準備するシンプルなイメージです。["/entrypoint.sh"]Embulk公式の配布元(Bintray)からjarファイルをダウンロードしていますね。libc6-compatパッケージは大半のプラグインで必要になるかなと思い、共通コンポーネントとしてこちらのイメージでインストールしました。"$@"こちらを参考に、コンテナ実行時の引数がエントリポイントのスクリプトに反映されるように工夫しました。helpの体でヘルプを表示)。"help".$とりあえず動くことが確認できました。takipone/embulk-cloudfrontlogs-parquetこちらのイメージでは、実際の用途に合わせてEmbulkのプラグインと構成ファイルを作り込んでいきます。Dockerfileから。"/config.yml.liquid"]Embulkプラグインのインストールと構成ファイルのコピーをしています。CMDでは、構成ファイルを読んでEmbulkを実行する形にしました。構成ファイルは以下になります。}}S3にあるCloudFrontログを読んで、同じくS3にParquet形式で書き出す部分を決め打ちにし、それぞれS3のバケット、プレフィックスを以下の環境変数から読む感じです。対象ログのプレフィックス。S3への認証はEC2インスタンスに付与するIAMロールを前提にしました。入力はconfig.yml.liquidの5行目で指定、出力はembulk-output-parquetプラグインの既定でIAMロールが対応しています。Buildを利用しました。イメージは公開されているので、試したい方は以下の動作確認に従い、イメージをダウンロードしてご利用ください。cloneで持って来て、自前で以下のようにビルドを実行しても良いでしょう。.動作確認では、作成したDockerイメージでEmbulkの実行を試してみます。今回は以下のようなCloudFrontログを用意しました。E32N7SRESB34ZS.2016-10-23-07.4ea726b5.gz$変換結果は同じS3バケットのparquet/ディレクトリ以下にtestの接頭辞を付けて出力してみます。以下のようなコマンドラインをDockerインストール済みのEC2で実行しました(Dockerイメージは初回実行時に自動でダウンロードされます)。(略)$S3バケットのparquet/ディレクトリ以下を見てみると。test.009.parquet$変換されたファイルが出来ていますね!Athenaで以下のDDLを流して、検索することができました。's3://ipv6deployedtoyouredgelocation.com-log/parquet/'目的が達成されました!まとめEmbulkをDockerで実行し、CloudFrontのログをParquet形式に変換する様子をご紹介しました。Embulkには豊富なプラグインがあるので、ログファイルのリネームや他の形式への変換、AuroraやRedshiftへの投入などにも応用できそうです。4,307,891ゲストブロガーです。株式会社ソラコムでソリューションアーキテクトやってます。クラウドの自動化やIoT周りについての記事を書きます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。夏目祐樹147こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。タイトルがすべてなのですが、社内で「登壇勉強会」が開催されたので、「登壇は最強の生存戦略である」というタイトルで登壇しました。本が出ていたので読んでみたところよかったので紹介させていただきます。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。