近年、国内ではネットワーク技術の進歩のおかげで安定かつ高速な回線が安価に利用できるようになりました。有線LANではギガビット回線が当たり前になり、10Gbps以上の回線も安価になりつつあります。無線LANでもIEEE802.11acの普及により有線LANとそれほど変わらない高速なネットワーク環境が手に入るようになりました。
しかし、ビッグデータの普及によって、転送対象となるデータは日に日に増大しています。また、企業のグローバル化によって、国外とのデータのやりとりを行う必要にも迫られています。しかしながら、国外、特に東南アジアなどにおいてはネットワーク自体の安定性に問題がある国が多いのが実情です。
こうしたデータ量の肥大化やビジネスの拡大を背景に、より高速で安定したデータ転送技術に注目が集まっています。
ASTERIA Warpが利用される企業データ連携の現場でも、拠点間やクラウドへの安定した高速なデータ転送は重要な課題のひとつです。また、ASTERIA Warpは多くのグローバル企業でも導入されているため、ネットワーク環境に依存せずに安定してデータを転送したいというニーズも増えてきています。
こうした要望を背景に、ウイングアーク株式会社が提供する高速データ転送パッケージ製品「CLOUD TRANSPORTER」とインフォテリア株式会社が提供する「ASTERIA Warp」を組み合わせて、企業データ連携の現場で通用する高速で安定したデータ転送を提供するための実証実験を行いました。
CLOUD TRANSPORTERはウイングアーク株式会社の提供する高速ファイル転送ツールです。クラウド、オンプレミスを問わずネットワーク上をセキュアに高速転送する技術を利用し、大容量もしくは大量のファイル転送において帯域を最大限に活用できます。
今日のインターネットの基盤となっているTCPベースの通信では、決して避けては通れない、いわゆる「ロング・ファット・パイプ問題」が存在します。これは古くから指摘されてきた問題であり、TCPのプロトコル特性上、レイテンシーの大きいネットワークではどんなに帯域が余っていてもそれをすべて使い切るような効率のよいデータ転送は難しいというものです。この問題を上記の技術によって解決するツールとして、CLOUD TRANSPORTERが注目されてきています。
詳しくは以下のウイングアーク社「CLOUD TRANSPORTER」のサイトをご確認ください。
www.wingarc.com/product/dr_sum/lineup/cloudtranspoter.html
CLOUD TRANSPORTERは、すでに述べたとおり、物理的な距離が離れていたり通信環境によってレイテンシーが大きな場合に効果を発揮します。ASTERIA Warpを使ったデータ転送でもこの効果を得られることを、ASTERIA Warpからさまざまな連携方法によって確認します。
また、その効果の確認のために、レイテンシーの大きな環境としてAmazon Web Servicesを使い、異なるリージョンのEC2上に環境を構築して効果を測定します。
さらにAmazon Web Services上でビッグデータを解析するために、S3上にファイルを転送し、そこからElastic MapReduceやRedshift、DynamoDBのようなサービスに再度データを転送することが多いため、最初の転送先であるS3を想定した測定も行います。
ASTERIA WarpとCLOUD TRANSPORTERとの連携は、ファイル名を渡すことで実現します。転送元にインストールされたASTERIA WarpからCLOUD TRANSPORTERへファイル名を受け渡し、転送元のCLOUD TRANSPORTERと転送先のCLOUD TRANSPORTERの間で実際のファイル転送を行います。転送先のCLOUD TRANSPORTERにS3のバケットを指定しておくことでS3へは自動的に転送されます。
CLOUD TRANSPORTERでは上記②のファイル名の受け渡し方法としていくつかの方法が提供されています。これとASTERIA Warp側の呼び出し方法によって次の3つの連携方法が考えられます。
CLOUD TRANSPORTERでは送受信、同期用のコマンドが提供されています。このコマンドは設定ファイルを指定して起動するのですが、この設定ファイルの中に転送するファイル名や転送方法を記述します。
この場合、提供されている送信用コマンドをASTERIA WarpのEXEコンポーネントを使って起動することで転送元にあるファイルを転送することができます。
設定ファイルはVelocityコンポーネントなどで動的に作成できますのでASTERIA Warp側で転送方法や転送の対象を柔軟に制御することができます。
CLOUD TRANSPORTERではRESTful APIも提供されています。先ほど紹介したコマンドより少し手順は多くなりますが、こちらを使えばより柔軟な連携が可能となります。
ASTERIA WarpからはRESTコンポーネントでこのAPIを呼び出すことができます。Connect APIを呼び出してセッションIDを取得し、そのセッションIDを使ってPutFile APIを呼び出します。JSONの解析にはエクスペリメンタルビルドで提供されているJSONコンポーネントを利用しています。
エクスペリメンタルビルドは製品には含まれていない機能を一部先行して公開する「実験ビルド」です。
以下のサイトにて公開中です。
forum.asteria.jp/viewforum.php?f=21
ASTERIA Warpではフローサービスよりも簡単にデータ連携を実現できるパイプラインサービスも提供されています。パイプラインサービスでもコマンドを実行することができますので、フローサービスと同様にCLOUD TRANSPORTERと連携することができます。
パイプラインではフォルダを監視して更新ファイルを処理することもできますので、フォルダに追加されたファイルを自動で転送するようなパイプラインを作成することができます。
このようにCLOUD TRANSPORTERを利用してASTERIA Warpからデータ転送を行うことができることがわかりました。
では、実際にどの程度の効果があるのでしょう。以下の環境を準備して検証を行います。
転送データの送信元の環境として、ASTERIA WarpおよびCLOUD TRANSPORTER、転送データを配置した環境をインフォテリア社内に用意しました。ネットワークの帯域幅は100Mbpsです。
環境項目 | 値 |
---|---|
OS | Windows 8.1 Pro (64bit) |
CPU | Intel Core i7 870 (4Core/8Thread 2.93GHz) |
メモリ | 32GB |
HDD容量 | 1TB |
データ連携 | ASTERIA Warp 4.7.1 |
データ転送 | CLOUD TRANSPORTER Server 2.3.6.1 |
レイテンシーの違いによるCLOUD TRANSPORTERの効果を測定するために、Amazon EC2の2つの異なるリージョンに転送先環境を構築しました。
各環境にはCLOUD TRANSPORTERのみがインストールされています。
低レイテンシーの転送先を想定した検証環境として、Amazon EC2の東京リージョンに以下の環境を構築して利用しました。
環境項目 | 値 |
---|---|
OS | Amazon Linux |
CPU | Intel Xeon E5506 2.13GHz相当×2 ※ |
メモリ | 1.7GB ※ |
HDD容量 | 32GB (EBS) |
データ転送 | CLOUD TRANSPORTER Server 2.3.6.1 |
レイテンシー | 10msec未満 |
高レイテンシーの転送先を想定した検証環境として、Amazon EC2の米国東部リージョンに以下の環境を構築して利用しました。
環境項目 | 値 |
---|---|
OS | Amazon Linux |
CPU | Intel Xeon E5506 2.13GHz相当×2 ※ |
メモリ | 1.7GB ※ |
HDD容量 | 32GB (EBS) |
データ転送 | CLOUD TRANSPORTER Server 2.3.6.1 |
レイテンシー | 160~200msec |
まずAmazon EC2上に構築したAmazon Linuxのサーバー上への転送を、Amazon Linuxが提供するSFTP(SSH File Transfer Protocol)とCLOUD TRANSPORTERを使って比較してみます。1.2GBのファイル1個を転送したときにかかる時間と、おおよその転送速度を測定します。
SFTPでの転送にはWinSCP(注1)というオープンソースのクライアントツールを使います。CLOUD TRANSPORTERでの転送では暗号化をオンにし、転送先をローカルファイルにしてあります。
結果は以下のようになりました。東京リージョンに対してはレイテンシーが小さいためにSFTPでも帯域幅いっぱいの100Mbpsを使いきり、どちらもほぼ変わらない転送速度となっています。しかし、米国東部リージョンに対しては、SFTPが約7.3倍の時間がかかったのに対し、CLOUD TRANSPORTERでは東京リージョンとほぼ同じ時間で転送できました。
東京リージョン | 米国東部リージョン | |
---|---|---|
SFTP | 2:21 (≒100Mbps) | 17:02 (13Mbps) |
CLOUD TRANSPORTER | 2:20 (≒100Mbps) | 2:22 (≒100Mbps) |
下のグラフは米国東部リージョンに対する転送時の状況をWindowsのタスクマネージャーで表示したものです。左がSFTP、右がCLOUD TRANSPORTERのものです。いずれも横軸方向の縮尺は同じで、転送開始からしばらく経った時点までの状況を切り取ったものです。これ以降も転送終了までほぼ同様の動きをしています。これを見ると、ネットワーク使用状況の差がよくわかります。
次にAmazon S3への転送です。前の検証において、リージョン間の違いによるCLOUD TRANSPORTERの効果はよくわかりました。ここでは、ローカルファイルではなく、CLOUD TRANSPORTERからAmazon S3への転送におけるオーバーヘッドも考慮した、トータルでのAmazon S3への転送速度を見ていきます。
転送先は米国東部リージョンを使います。転送するのは同じく1.2GBのファイルを1つです。
比較対象は、次の3つです。
結果は以下のようになりました。CLOUD TRANSPORTERは前節の転送時より速いのは誤差の範囲と考えられます。他はいずれも2:45〜3:30とCLOUD TRANSPORTERには及びません。それぞれの転送速度の差はその転送速度の増減の幅に依存するようです。
米国東部リージョン | |
---|---|
CLOUD TRANSPORTER | 2:13 (≒100Mbps) |
AWS Management Console | 2:45 (~90Mbps) |
DragonDisk | 3:30 (60~70Mbps) |
ASTERIA Warp (FileGet→S3Put) | 3:08 (60~80Mbps) |
先程と同様にWindowsのタスクマネージャーで転送状況を見てみましょう。左上からそれぞれCLOUD TRANSPORTER、AWS Management Console、DragonDisk、ATERIA WARPのものです。今回も転送開始からしばらく経った時点までの状況を切り取ったものです。(AWS Management Consoleのみ、波形がわかりやすいように開始時点から少し経った時点からの状況を切り取っています)
CLOUD TRANSPORTERは前節の結果と同様にほぼ100Mbpsを使いきっています。これに対し、その他のツールを使用した場合はいずれも速度の増減幅がかなり大きく、その分時間がかかっているという印象です。このような波形を描くのはそれぞれのツールに問題があるのではなく、TCPの特性なのです。そう考えるといかにCLOUD TRANSPORTERが帯域を効率よく使っているかがわかります。
今回の実証実験でASTERIA WarpとCLOUD TRANSPORTERの連携しやすさ、CLOUD TRANSPORTERを使うことによる安定したデータ転送の実現を確認することができました。検証環境の都合により、今回は帯域幅が100Mbpsとなってしまいましたが、ギガビットの環境ではより効果が出ることでしょう。
今回の実証実験では結果がわかりやすいように、東京から米国東部という物理的立地が非常に遠く、レイテンシーの大きな環境を選びました。しかし、実際には東京から大阪、東京から九州など、国内においてもレイテンシーが数10msecであることもあります。ですから、国内の拠点間においても転送速度の向上を見込むことができるでしょう。
また、今回の実証実験では触れておりませんが、CLOUD TRANSPORTERは多数の小さなファイルの転送においても効率よく転送できる設計になっています。リジューム機能も優れていますので、不安定な回線でも効率よく転送できます。このようにCLOUD TRANSPORTERはさまざまなネットワーク環境で効果を発揮します。
ASTERIA Warp単体では一般的なネットワークプロトコルに依存せざるを得ませんが、CLOUD TRANSPORTERのように転送に特化したツールと組み合わせることによって、より安定したデータ転送を実現することができるようになります。
最後にASTERIA WarpとCLOUD TRANSPORTERを連携として想定される利用シーンをいくつか挙げておきます。
冒頭で紹介したとおり、安定したデータ転送の重要性は日に日に増しています。ASTERIA Warpのつながりやすさがあるからこそ、このような優れたツールをより活かすことができます。企業内のデータ連携をさらに価値のあるものにする一助となれば幸いです。
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。