IDCF Tech-Blog

IDCF テックブログ

クラウド・ビッグデータ・データセンターを提供するIDCフロンティアの公式エンジニアブログ

プライベートコネクト経由でYBIにデータをimport/exportする

※2016年10月1日より、サービス名称が「Yahoo!ビッグデータインサイト」から「トレジャーデータサービス by IDCF」に変更となっております。

はじめに

Yahoo!ビッグデータインサイト(以下YBI)を用いて、大量のデータを容易に分析することができますが、重要なデータをインターネット上でやりとりしたくない、そもそもインターネット接続なんてさせていない、みたいなケースがしばしばあるかと思っています。

データを扱う上でセキュリティは無視できないもの、切っても切り離せない永遠の課題です。 IDCFクラウド(オンプレでも可)ではプライベートコネクトを用いて、プライベートなネットワーク上でYBIに対してデータのimport/exportを行なうことが可能です。 (プライベートコネクトというのは、プライベートでセキュアなネットワーク、いわゆるVPNと考えてください)

f:id:inoueissei:20160920112423p:plain

プライベートコネクト側の設定

プライベートコネクト側の設定はいたって簡単です。3分くらいで終わります。 まず、プライベートコネクトのコンソール画面でYahoo!ビッグデータインサイトの接続を選択し、 f:id:inoueissei:20160920145908p:plain

任意のネットワークアドレス、プライベートIPを設定します。 つまりユーザー側で好きなプライベートIPの指定が可能です。 f:id:inoueissei:20160920112524p:plain この例の設定では、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が自動でアサインされます。 f:id:inoueissei:20160920112600p:plain この例では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でアクセスできます。) f:id:inoueissei:20160920112638p:plain

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されていきます。当然インターネットは経由しません。

実際はこんな感じでアクセスログのデータが溜まっていきます。 f:id:inoueissei:20160920112710p:plain

YBIではデータを解析した結果を抽出するというResult Exportという機能があります。 プライベートコネクト経由でユーザーマシンにexportする際には、YBIのResult Exportの設定画面で、Hostの部分に 専用のFQDN を入れる必要があります。(※プライベートIPだと期待した動作にはならないので注意してください。)

f:id:inoueissei:20160920112734p:plain

これで適切なSQL文を書いて、実行(Run)すると、192.168.10.1 のMySQLマシンに結果がexportされます。

Copyright © IDC Frontier Inc.