web-dev-qa-db-ja.com

専用サーバーからAWSEC2に数百万のファイルをコピーする方法は?

専用サーバーからAWSEC2インスタンスに移動する必要があるウェブサイトがあります。 650GB以上のデータと300万以上のファイルがあります。

[〜#〜] scp [〜#〜]のように使ってみましたが、ファイルが大きいので時間がかかります。

scp -r [email protected]:/ remote/directory/local/directory

私のソースOSはcPanelを搭載したCentos7.5です。 1TB HDDと650GBデータ、宛先サーバーはUbuntu 18.04、700GBHDDです。

LFTP、SFTP、rSyncなどの他のオプションもあることを知っています。最も速い方法で私を助けてください。

1
Mi2

ファイルをたとえば1GBのチャンクに圧縮し、それらをアップロードすることをお勧めします。解凍すると、各ファイルがCRCチェックサムと照合されます。組み込みの分割を使用して、Zipが自動的に.z00 .z01 .z02 .z03 ..を生成するようにすることができます。

または、パリティデータを作成して損傷したセグメントを修復できるrar形式を使用することもできます。

1
cybernard

データを転送する方法は1つのAWSソリューションです。

https://aws.Amazon.com/Snowball/?nc1=h_ls

私が知っているように、あなたはデバイスを手に入れます(DHLのようなポストサービス経由で)あなたはこのデバイスにあなたのデータをコピーすることができます、そしてそれからAmazonはあなたのためにこのデータをアップロードします。

0
Dmytro

アップロードを高速化する唯一の方法は、複数の部分で並行してアップロードを行うことです。

個別の接続を使用してジョブを複数のコンピューターに分割できる場合は、アップロードが高速化されます。

1台のコンピューターがフルスループットに達しない場合は、各スレッドが独自の接続を並行して開くマルチスレッド方式を選択できます。

製品とスクリプトの提案については、投稿を参照してください ec2 Elastic Block Storeボリュームからs3に400Gのファイルをコピーする最も速い方法はどれですか?

記事 FSファイル同期– Amazon EFSファイルシステムへのより高速なファイル転送 も参照してください。

0
harrymc

scpを使用する場合、部分的に転送されたファイルで再試行または続行しません。

代わりにrsyncを使用してみてください。例:.

rsync -vuaz [email protected]:/remote/directory/ /local/directory/

引数:

  • -v/--verbose冗長性を高めます。
  • -u/--updateレシーバーで新しいファイルをスキップします。
  • -a/--archiveアーカイブモード;等しい-rlptgoD
  • -z/--compress転送中にファイルデータを圧縮します。
0
kenorb

専用サーバーにAWSCLIをインストールしてみてください。

次に、aws s3コマンドを使用して、最初にファイルをAWSS3バケットに転送します。

例えば。

aws s3 sync local/directory s3://mybucket/local/directory

次に、ローカルEC2インスタンスに転送します。

aws s3 sync s3://mybucket/local/directory local/directory

このコマンドは、多数のファイルをコピーするように設計されており、失敗しても続行できます。

EC2インスタンスのファイルをS3から直接提供することもできます。

ヘルプが必要な場合は、aws s3 sync helpを確認してください。

0
kenorb