大きなファイル・セットを遠隔地から別の場所へ、特に異なるクラウド・サービス間で移動させる必要がある場合、すべてのファイルをソースからローカル・マシンにコピーし、それを新しい移動先にアップロードするのは悪夢のような作業だ。テラバイトのファイルを扱うことを想像してみてほしい。あなたのマシンにそのためのストレージスペースがありますか?
幸運なことに、これを処理するもっと良い方法がある:rcloneだ。Rcloneは CLI は、リモートロケーション間で直接バッチファイル操作を実行し、ソースから宛先まで効率的に同期させることができるツールだ。
この投稿では、rcloneを使ってクラウドストレージドライブからLinodeObject Storage にファイルをコピーする方法を説明します。
rcloneとは?
Rcloneは、クラウド・ストレージ上のファイルを管理するコマンドライン・プログラムだ。クラウドストレージのスイスアーミーナイフのようなもので、ファイルの同期、コピー、移動などのタスクを処理する。
どのような仕組みなのか?
Rcloneは、やり取りしたいクラウドサービスごとに "リモート "を設定する。一度設定すれば、rcloneコマンドを使ってそれらの間でデータを転送することができる。ファイルはローカルマシンを通過するが、そこに長期保存されることはない。
それで何ができる?
rcloneを使えば、それができる:
- 異なるクラウドサービス間でファイルを同期。
- 効率的にファイルをコピー、移動。
- クラウドストレージをファイルシステムとしてローカルマシンにマウントする。
- ファイルを暗号化して安全に保存。
Rcloneは、LinodeObject Storage, Google Drive,AWS S3 ,Nextcloud, などを含む多くのクラウドサービスをサポートしています。クラウドデータを管理するための多機能なツールです。
rcloneでできることがわかったので、Google DriveとLinodeObject Storage の間でデータを同期するためにrcloneを使う方法を説明しよう。
ステップ1:Linodeを作成する(オプションですが、お勧めします)
rcloneを使用すると、リモート宛先にファイルを移動する前に、リモートソースからローカルマシンにファイルを転送します。これらのファイルはローカルに保持されませんが、データはインターネット接続を介して移動します。
プロセスを最適化し、ホームネットワークの負荷を軽減するために、Linode VMを作成することをお勧めします。こうすることで、データ転送経路を短縮することができます。
設定を最適化するには、LinodeObject Storage バケットと同じリージョンのLinodeを選択してください。
ステップ2:rcloneのインストール
LinodeのVMをセットアップしたら、次はrcloneをインストールする。まず、SSHを使ってLinodeインスタンスに接続します。Linodeダッシュボードから、LISHコンソール経由で接続できます。
以下のコマンドを実行し、rcloneをダウンロードしてインストールする:
~# curl https://rclone.org/install.sh | sudo bash |
以下を実行して、rcloneが正しくインストールされていることを確認する:
~# rclone version |
インストールが成功したことを確認したら、クラウドストレージのリモートにrcloneを設定する準備ができました。
ステップ3:rcloneに新しいリモート(Google Drive)を追加する
ファイルの転送を開始するには、Googleドライブにアクセスできるようにrcloneを設定する必要があります。そのためには、認証情報を取得する必要があります。以下の手順に従って、サービスアカウントを作成し、サービスアカウントの公開鍵/秘密鍵を取得します。このファイルをローカルマシンにservice-account.jsonとして保存します。次に、SFTPを使ってこのファイルをLinode VMに転送します(rcloneがこのファイルを参照する必要があるため)。
LinodeのVM上のサービスアカウントキーファイルで、以下のコマンドを使用してrcloneでGoogle Driveのリモートを設定します:
~# rclone config |
プロンプトに従って、新しいリモートをセットアップします:
- n "を選ぶ
new remote
. Name
リモートの "gdrive "など)。- について
storage type
オプションのリストから "Google Drive "を選択する。 - client_idとclient_secretは空白のままにしておきます。
- 適切なものを選ぶ
scope
.ここでは、「ファイルのメタデータとコンテンツへの読み取り専用アクセス」を選択します。 - service_accountファイルには、上記でダウンロードしたサービス・アカウント認証情報のJSONファイルへのパスを入力する。
- 残りの質問のデフォルトを選択します。
より詳細な手順については、Google Drive用のrcloneドキュメントを参照することもできます。
完了すると、rcloneはGoogleドライブにアクセスできるようになり、ファイル操作ができるようになります。
ステップ4: 新しいリモート(Linode)をrcloneに追加する
次のステップは、LinodeObject Storage を指す2つ目のリモートをrcloneでセットアップすることです。前のステップと同じように、クラウドストレージの認証情報を取得する必要がある。
LinodeObject Storage 認証情報はAWS S3 認証情報に似ています。アクセスキーとシークレットキーはLinodeクラウドマネージャーから取得できます。アクセスキーとシークレットキーは Object Storage
ページで Create Access Key
.
アクセス・キーとシークレット・キーを作成したら、コピーしてください。
次のコマンドを使用して、rcloneでLinodeリモートを設定します:
~# rclone version |
プロンプトに従って、新しいリモートをセットアップします:
- n "を選ぶ
new remote
. Name
リモート(例えば、"linode")。- について
storage type
オプションのリストから「Amazon S3 準拠ストレージプロバイダ」を選択する。 - について
provider
オプションのリストから "LinodeObject Storage"を選択します。 - EnterAWS credentials in the next step "を選択する。
- access_key_idには、上記でコピーしたアクセス・キーを貼り付けます。
- secret_access_keyには、上でコピーしたシークレットキーを貼り付けます。
- LinodeObject Storage バケットのリージョンを選択します。
- 残りの質問のデフォルトを選択します。
詳細な手順については、LinodeObject Storage のrcloneドキュメントを参照してください。
完了すると、rcloneはLinodeObject Storage にアクセスできるようになり、Google Driveからファイルを同期できるようになります。
ステップ5:同期
rclone で Google Drive と LinodeObject Storage の両方をリモートとして設定すると、それらの間でファイルを同期できるようになります。
このデモでは、Google DriveのデータをLinodeObject Storage バケットのdataというフォルダに同期します。
まず、グーグル・ドライブのフォルダーの中身を見てみよう:
~# rclone size gdrive:/data |
LinodeのObject Storage バケットに表示されているのは以下の通りです:
~# rclone size linode:/data |
予想通り、データフォルダは(まだ)存在しない。
ファイルを同期するには、以下の基本的なコマンドを使うことができる:
~# rclone sync gdrive:/data linode:/data |
このコマンドはGoogle Drive(コピー元)からLinodeObject Storage (コピー先)にファイルをコピーします。
転送プロセスをモニターしたい場合は、-progressフラグを追加する:
~# rclone sync \ gdrive:/data \ linode:/data \ --progress |
transfersフラグで同時転送数を設定することで、同期処理をさらに最適化できる:
~# rclone sync \ gdrive:/data \ linode:/data \ --progress –transfers=8 |
同期が始まると、rcloneが常に転送ステータスを更新しているのがわかる:
Transferred: 6.152 KiB / 145.195 KiB, 4%, 421 B/s, ETA 5m37s |
最初の同期の後、すべてのファイルが最新であることを確認するためにコマンドを再実行できる。Rcloneは新しいファイルまたは変更されたファイルのみを転送するので、その後の同期が速くなります。
~# rclone sync gdrive:/data linode:/data --progress |
このステップにより、Google DriveとLinodeObject Storage の間でファイルが効率的に転送され、同期が保たれます。
結論
この投稿では、rcloneを使用してGoogle DriveからLinodeObject Storage に効率的にファイルを転送する方法を説明しました。デモでは特にGoogle DriveとLinodeObject Storage を使用しましたが、rcloneは多くのクラウドストレージプロバイダーをサポートしています。
おさらいしておこう:
- Rcloneでは、クラウドサービス間で直接バッチファイル操作を行うことができます。
- LinodeObject Storage 、同じリージョンにLinode VMをセットアップすることで、転送を最適化することができます。
- Google DriveとLinodeObject Storage リモートでrcloneを設定するのは簡単で強力です。
- rcloneの同期機能を使用すると、手動で操作することなくファイルを最新の状態に保つことができます。
ファイル転送を効率化する準備はできましたか?今すぐLinodeObject Storage をお試しいただき、クラウドデータの管理がいかに簡単かをお確かめください!
コメント