※2016年10月1日より、サービス名称が「Yahoo!ビッグデータインサイト」から「トレジャーデータサービス by IDCF」に変更となっております。
はじめに
Yahoo!ビッグデータインサイト(以下YBI)を用いて、大量のデータを容易に分析することができますが、重要なデータをインターネット上でやりとりしたくない、そもそもインターネット接続なんてさせていない、みたいなケースがしばしばあるかと思っています。
データを扱う上でセキュリティは無視できないもの、切っても切り離せない永遠の課題です。 IDCFクラウド(オンプレでも可)ではプライベートコネクトを用いて、プライベートなネットワーク上でYBIに対してデータのimport/exportを行なうことが可能です。 (プライベートコネクトというのは、プライベートでセキュアなネットワーク、いわゆるVPNと考えてください)
プライベートコネクト側の設定
プライベートコネクト側の設定はいたって簡単です。3分くらいで終わります。 まず、プライベートコネクトのコンソール画面でYahoo!ビッグデータインサイトの接続を選択し、
任意のネットワークアドレス、プライベートIPを設定します。 つまりユーザー側で好きなプライベートIPの指定が可能です。 この例の設定では、YBIのAPIに対して192.168.20.1で、YBIのコンソールに対して192.168.20.2でアクセスできるようになります。
YBIではAPIエンドポイントに対してデータのimportを行います。以上でimport用の設定は完了です。
次にexport用の設定です。 exportはユーザーマシン(FTP、MySQL、APIサーバーなど)に解析データをexportする機能です。
“Result Export先Host"部分にexport先のマシンのプライベートIPアドレスを入力し、+ を押すとexport用のFQDNが自動でアサインされます。 この例では192.168.1.1のFTPサーバーと192.168.10.1のMySQLサーバーをexport先に登録する形になります。
以上でプライベートコネクト側の設定は完了です。
実際の利用方法
YBIのアカウント作成、マシン側のtd(CLIツール)、td-agentインストールまでは完了しているとします。 YBIの基本的な使い方はこちらを参考にしてください。
td コマンドを使用する際に、URL部分に先ほどのAPI用のプライベートIPを指定します。 (通常はybi.api.idcfcloud.netの部分) 例えば、下記はプライベートコネクト経由でnginx用のDBにtest というTableを作成しています。
td -e http://192.16.20.1 table:create nginx test
YBI側のコンソールを確認してみると、確かにnginxのDBにtestのTableが作成されています。 (このコンソール画面にも192.168.20.2のプライベートIPでアクセスできます。)
td-agent側の設定は、/etc/td-agent/td-agent.conf で設定します。
<source> type tail format /^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" "(?<forwarder>[^\"]*)")?/ time_format %d/%b/%Y:%H:%M:%S %z path /var/log/nginx/access.log pos_file /var/log/td-agent/nginx-access.pos tag td.nginx.test </source> <match td.*.*> @type tdlog apikey 123456789012345678901234567890 auto_create_table buffer_type file buffer_path /var/log/td-agent/buffer/td endpoint http://192.168.20.1 ###ここをAPIエンドポイントIPにする### flush_interval 10s <secondary> @type file path /var/log/td-agent/failed_records </secondary> </match>
上記の例だと、nginxのアクセスログが、td-agentを用いて、192.168.20.1がアサインされているYBIのnginx.testにimportされていきます。当然インターネットは経由しません。
実際はこんな感じでアクセスログのデータが溜まっていきます。
YBIではデータを解析した結果を抽出するというResult Exportという機能があります。 プライベートコネクト経由でユーザーマシンにexportする際には、YBIのResult Exportの設定画面で、Hostの部分に 専用のFQDN を入れる必要があります。(※プライベートIPだと期待した動作にはならないので注意してください。)
これで適切なSQL文を書いて、実行(Run)すると、192.168.10.1 のMySQLマシンに結果がexportされます。