web-dev-qa-db-ja.com

S3からEC2にデータをコピーする最速/最良の方法は?

かなり大量のデータ(〜30G、〜100ファイルに分割)がありますS3とEC2の間で転送したい:EC2インスタンスを起動するときに、S3からEC2ローカルディスクにデータをコピーしたいできるだけ早く、処理が完了したら、結果をS3にコピーして戻したいと思います。

データの高速/並列コピーを行ったり来たりするツールを探しています。私はまともな仕事をするものを含むいくつかのスクリプトをハックしているので、基本的なライブラリへのポインタを探していません。速くて信頼できるものを探しています。

22
Parand

S3の代わりにElasticBlockStoreを使用してファイルを保存する方が良いと思います。 EBSはS3の「ドライブ」に似ており、毎回データをコピーせずにEC2インスタンスにマウントできるため、毎回S3に読み書きすることなく、EC2インスタンス間でデータを永続化できます。

http://aws.Amazon.com/ebs/

1
Adam Hopkinson

残念ながら、EBSの理解が間違っているため、Adamの提案は機能しません(ただし、彼が正しかったことを望み、多くの場合、そのように機能するはずだと思っていました)... EBSはS3とは関係ありませんが、個別であるがインスタンスに接続可能なEC2インスタンスの「外部ドライブ」。 S3とEC2の間でデータ転送コストが発生しない場合でも、S3とEC2の間でコピーを行う必要があります。

インスタンスのオペレーティングシステムについて言及されていないため、カスタマイズされた情報を提供することはできません。私が使用する人気のあるコマンドラインツールは http://s3tools.org/s3cmd ...これはPythonに基づいているため、Webサイトの情報によるとLinuxでは常に使用していますが、WinとLinuxで動作するはずです。rsyncと同様に機能する組み込みの「sync」コマンドを使用するクイックスクリプトを簡単に作成して、毎回トリガーすることができます。 'データの処理が完了しました。再帰的なputおよびgetコマンドを使用して、必要な場合にのみデータを取得および配置することもできます。

スケジュールコマンドを設定できるWindows用のコマンドラインオプションを備えたCloudberryProのようなグラフィカルツールがあります。 http://s3tools.org/s3cmd おそらく最も簡単です。

33
Tyler

今では、AWSコマンドラインツールにsyncコマンドがあり、これでうまくいくはずです: http://docs.aws.Amazon.com/cli/latest/reference/s3/sync.html ==

起動時:aws s3 sync s3:// mybucket/mylocalfolder

シャットダウン前:aws s3 sync/mylocalfolder s3:// mybucket

もちろん、細部はいつも楽しいものです。どのように並列化できますか(そして、より並列化できますか?セットアップ全体の仮想的な性質がより速くなります)

ところで、あなたがまだこれに取り組んでいることを願っています...または誰かがそうです。 ;)

2
Gyuri

s3cmdパッケージを次のようにインストールします

yum install s3cmd

または

Sudo apt-get install s3cmd

oSによって異なります

次に、これを使用してデータをコピーします

s3cmd get s3://tecadmin/file.txt

また、lsはファイルを一覧表示できます。

詳細については、 this を参照してください。

1
Vikas Hardia

私にとって最良の形は次のとおりです。

wget http://s3.amazonaws.com/my_bucket/my_folder/my_file.ext

PuTTYから

0
Cro-Magnon