LoginSignup
12

More than 5 years have passed since last update.

S3からGCSへのコピーについて

Last updated at Posted at 2016-12-08

この記事は Recruit Engineers Advent Calendar 2016 の8日目の記事です。

はじめに

RLSの@byaです。本記事では、S3からGCSへコピーについて書きます

送る方法

GCSへ送り方が2つあるが、以下のような使い方が分かれる

  • When transferring less than 1 TB of data, use gsutil.
  • When transferring more than 10 TB of data, use Storage Transfer Service.
  • For between 1 and 10 TB of data, use either gsutil or Storage Transfer Service.

大きな違い

Screen Shot 2016-12-08 at 19.07.22.png

Cloud Storage Transfer Serviceで転送する

参考ページ

インターフェース

  • Creating and Managing Transfers with the Console
  • Creating a Storage Transfer Service Client
    • Python
    • Java
  • Storage Transfer Service API

実験

データ内容 ファイル数 サイズ コスト時間 インターフェース
圧縮された(*.gz)・ ログデータ 16562 591.31GB 11:48:48 ~ 13:18:40 (90分) Web UI console

課題

上記の実験から早いことが分かるが、APIを時間単位で呼ぶと、API制限にひっかかる

"gsutil cp" コマンドで転送する

gsutil はCLIツールです。ですので、サーバーが必要になります。今回は、「クラウド別による転送・CPUによる転送・Memoryによる転送」で実験してみました。

クラウド別による転送

以下の環境で行いました!

環境 cpu memory os
local (docker) 2 CPU 2 GB Centos 7
GCE 4 vCPUs 16 GB Debian 8
EC2 4 vCPUs 16 GB Centos 6.6
fha (独自サーバー) 4 CPU 8 GB Centos 6.5

実験

データ:圧縮された(*.gz), ログデータ

ファイル数 サイズ オプション local fha EC2 GCE
1 132.1 MiB -m cp -r 1m19.628s 1m2.164s 0m22.274s
48 3.4 GiB -m cp -r 7m0.263s 2m13.449s 1m50.913s
96 6.3 GiB -m cp -r 11m51.083s 4m39.063s 3m4.146s

CPUによる転送

CPUの個数を色々変えて転送してみます。

環境:GCE (memory = 8 gb, zone = asia-northeast1-a)
データ:圧縮された(*.gz), ログデータ

ファイル数 サイズ オプション CPU = 1 CPU = 2 CPU = 4 CPU = 8
1 132.1 MiB -m cp -r 0m19.914s 0m20.266s 0m20.632s 0m21.392s
48 3.4 GiB -m cp -r 2m56.895s 2m14.262s 1m49.925s 2m4.989s
96 6.3 GiB -m cp -r 4m51.639s 4m6.444s 3m0.520s 3m37.409s

Memoryによる転送

CPUの容量を色々変えて転送してみます。

環境:GCE ( cpu = 4 , zone = asia-northeast1-a)
データ:圧縮された(*.gz), ログデータ

ファイル数 サイズ オプション メモリ=4gb メモリ=8gb メモリ=16gb メモリ=26gb
1 132.1 MiB -m cp -r 0m20.650s 0m20.718s 0m21.316s 0m21.220s
48 3.4 GiB -m cp -r 2m2.060s 1m57.305s 1m50.478s 2m6.267s
96 6.3 GiB -m cp -r 3m10.678s 3m19.626s 3m2.745s 3m15.855s

まとめ

  • Storage Transfer Serviceは速度は早いが、API制限がある
  • gsutilは、環境の影響によって速度が異なる。第三の環境で実施すると遅い(fha/local)。AWS or GCP のサーバーなら大丈夫が、GCPがベッター
  • CPU増加で速度改善が見込めるが、おおよそで4CPUあたりが適正値
  • Memoryの影響があまり見えなかった

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12