2017-02-17 3 views
1

リモートサーバーからs3バケットに、ファイルサイズが69MBから25GBまでの4500ファイルからなる約31 TBのデータを転送しています。私はこれを行うには、bashスクリプトupload.shでそれを置くためにs4cmd putを使用しています:多数の大きなファイルをs3に転送

#!/bin/bash 

FILES="/path/to/*.fastq.gz" 
for i in $FILES 
do 
    echo "$i" 
    s4cmd put --sync-check -c 10 $i s3://bucket-name/directory/ 
done 

その後、私は仕事を提出するqsubを使用します。

qsub -cwd -e error.txt -o output.txt -l h_vmem=10G -l mem_free=8G -l m_mem_free=8G -pe smp 10 upload.sh 

これはあまりにも長い道のりを取っている - それが10時間を要しました20ファイルをアップロードする。誰かが私のコマンドに代わるものや変更を提案することはできますか?

ありがとうございます!

+0

** GNU並列**を使用して、多分いくつか並列処理をしますか? 'parallel -eta -j 8 s4cmd put -sync-check -c 10 {} s3://バケット名/ディレクトリ/ :::/path/to/* fastq.gz' –

+1

どこから転送?別のAWSサービスがあれば、これは遅すぎるかもしれませんが、企業のデータセンターからAWSに送信する場合は、この範囲の時間が必要です(シングルスレッドの場合)。 GParallelを使用していても、ソースシステムとAWSの間の帯域幅制約に簡単に突入することがあります。 (私の考えは時代遅れかもしれないので、私は現在のユーザーからの反応を見ることに興味があります(常に!))。がんばろう! – shellter

+1

あなたのインターネット接続はどのくらいの速さですか?そのデータ量では、[Snowball](https://aws.amazon.com/snowball/)を使用する方が速いかもしれませんが、その上に配送オーバヘッドがあります。 – stdunbar

答えて

2

データを物理メディアにコピーして通常のメールで配送する場合は、インターネット経由でデータを転送するよりも高速で安価です。 AWSはこのような「プロトコル」をサポートしており、その特別な名前はAWS Snowballです。

スノーボールが中およびAWS 雲の外に大量のデータを転送するために、安全な アプライアンスを使用していますペタバイト規模のデータ転送ソリューションです。 Snowballを使用すると、高いネットワークコスト、長い転送時間、および のセキュリティ上の懸念を含む大規模な データ転送の共通の問題が解決されます。 Snowballでデータを転送することは簡単で、速く、 安全で、高速のコストの1/5になる可能性があります。 インターネット。

Snowballでは、データを転送するためのコードを書くか、 ハードウェアを購入する必要はありません。 AWS 管理コンソールでジョブを作成するだけで、Snowballアプライアンスは自動的に *に配送されます。それが到着したら、アプライアンスをローカルの ネットワークに接続し、Snowballクライアントをダウンロードして実行して 接続を確立し、クライアントを使用してアプライアンスに転送するファイルディレクトリ を選択します。クライアントは、 ファイルを暗号化し、アプライアンスに高速で転送します。 転送が完了し、アプライアンスを返却する準備ができたら、Eインクの出荷ラベルが自動的に更新され、Amazon Simple Notification Service(SNS)、テキスト メッセージを介して、またはコンソールで直接 ジョブステータスを追跡できます。

*現在、一部の地域でスノーボールが利用可能です。あなたの場所は、AWS Management コンソールでジョブが作成されると確認されます。

小さいデバイスの容量は50TBであり、ケースに適しています。

独自のハードウェア(ハードディスクドライブ)を出荷する同様のサービスAWS Import/Export diskが、代わりに彼らの特別なデバイスでもあります:

AWSのインポート/エクスポートのディスクを使用するには、次の準備

  • をポータブルストレージデバイス(サポートされるデバイスについてはProduct Detailsページを参照)。
  • Create Jobリクエストを送信します。あなたのデバイスを認証するために使用されるデジタル署名を持つジョブIDを取得します。
  • プリペイドの出荷ラベルを印刷します。
  • デバイスを安全に識別し、認証します。 Amazon S3の場合は、署名ファイルをデバイスのルートディレクトリに配置します。 Amazon EBSまたはAmazon Glacierの場合は、デバイスの外装 に署名バーコードを貼り付けます。
  • 出荷用コンテナにプリペイド出荷ラベルを貼り付け、デバイスをインタフェースコネクタとともに出荷し、電源装置 をAWSに発送してください。

パッケージが到着すると、それは処理され、安全 デバイスがAWSインポート/エクスポート・ステーションに 添付されるAWSデータセンターに転送されます。データの読み込みが完了すると、 デバイスが返されます。

+0

こんにちは。答えをありがとう。価格については1つの質問 - 私は、このソリューションは、より速く転送するのに役立つことが理解できますが、それはインターネット経由で定期的な転送よりも安くなる方法を説明することはできますか? –

+0

AWS S3への着信データは無料ですので、帯域幅ではなくトラフィック用のインターネット接続に料金を支払う場合にのみ、コスト優位性が発揮されます。逆の場合(** ** S3から** S3に**を転送しなければならない場合)、この解決策は間違いなく安くなります。すべての出産結核費用は85ドルで、これはあなたの金額に約2.5Kを加算しますのデータ。 – Leon

+0

私はあなたが自由にS3に任意の量のデータを格納できることを理解して正しいですか? –

関連する問題