【GPUSOROBAN】Amazon S3 互換オブジェクトストレージ:Wasabi hot cloud storageの使い方(応用編)

Contents 

はじめに

インスタンス上でAIプログラミングを作業したりしているときに、データセットのバックアップをする状況が多々あります。また、完成したAIプログラムのコードを再現できるようにするために、AIプログラムのコードはデータセットと共に一緒に保存することも珍しいことではありません。その時はクラウド・ストレージがあると、作業効率が著しく捗ります。コマンド1行でデータを持ってきたり、バックアップしたりすることができるからです。

Wasabi hot cloud storageはAWS S3とは互換性があるため、AWS CLIのコマンドでWasabi hot cloud storageを利用することが可能であるため、とても利用しやすいです。そして、単価が安いことは何と言って最高です!

下記いくつのコマンドを知っておくと、便利なので、ご紹介致します。

*前提条件:

(1) Wasabi storage上、下記の通り、既にいくつかのバケットを作成してあることです。

(2) GPUSOROBAN上に、既に設定をおこなったことです。まだ設定を行っていない場合、別記事をご参照ください。

インスタンスへのログイン

まずはインスタンスにログインすることです。Windows+Rを実行し、"cmd"を入力し、Enterキーを押すことで、ターミナルを立ち上げます。ターミナルでは下記の通り、ログインをします。(*ここではインスタンスのIPアドレスは10.233.101.137とします。)

ssh -L 20122:10.233.101.137:22 user@202.122.50.154 -p 30022 -i .\.ssh\ackey.txt

下記の画面が見られれば、第一段のログイン成功です。

それで、もう一度 Windows+Rを実行し、"cmd"を入力し、Enterキーを押すことで、ターミナルを立ち上げます。そして、下記のコマンドを実行します。

ssh user@localhost -p 20122 -i .ssh/mykey.txt

下記の画面が見られれば、ログインプロセスは完了です。

使用事例のご紹介

これで、インスタンスへのログインは完了したので、ここからは具体的なWasabiの利用事例を紹介いたします。

Wasabi storage上に保管しているバケットを見る場合

aws s3 ls --profile soroban1

上記の通り、6つのバケットがあることが分かりました。

Wasabi storage上にあるバケット内のフォルダを現在のインスタンス上にコピーする場合

例:testinstance6ahlikバケット内にあるcnnフォルダの内容を現在のインスタンスの場所にコピーする

(クラウドストレージからインスタンス上へコピーするケース)

cnnフォルダを作成し、現在位置をcnn内に移動します。

下記のコマンドを実施することで、testinstance6ahlikバケット内にあるcnnフォルダの内容がインスタンス上の現在位置にコピーされます。

aws s3 cp s3://testinstance6ahlik/cnn . --recursive --profile soroban1

コピーする際の様子は下記の写真に示します。

コピーが完了したら、下記の通りでcnnフォルダの内容を確認できます。

Wasabi storage上のバケットにあるフォルダごとをインスタンス上にコピーする場合

例:testinstance6ahlikバケット内にあるpetfinderフォルダをインスタンス上にコピーする。コピーした結果はインスタンス上にpetfinderというフォルダが作成されます。最初からインスタンス上にpetfinderのフォルダがなくても良いです。

aws s3 cp s3://testinstance6ahlik/petfinder/ /home/user/petfinder/  --recursive --profile soroban1

実行したら、下記の通りになります。"ls"コマンドで分かるように、新たにpetfinderというフォルダが作られ、中身もコピーできています。

インスタンス上のコマンドでWasabi storage上にバケットを作る方法

下記のコマンドで実行できます。仮に"test_create_bucket"という名前のバケットを作成してみます。

aws s3 mb s3://test_create_bucket --profile soroban1

作成できた結果を下記のように示します。

インスタンス上のあるファイルをWasabi storage上のバケットにコピーする場合

例:インスタンス上にあるtest_pycuda.pyをtest_create_bucketというバケットにコピーします。 下記のコマンドで実施することができます。

aws s3 cp test_pycuda.py s3://test_create_bucket --profile soroban1

実行すると、下記の表示が出れば、コピーできたことになります。

Wasabi storage上に下記のような表示になります。

インスタンス上のあるフォルダをWasabi storage上のバケットにコピーする場合

例1:cnnというフォルダをtest_create_bucketにコピーします。下記のコマンドを実行すると、コピーすることができます。

*test_create_bucket内に、cnnというフォルダがないと、cnn内のファイルがtest_create_bucket内に散らかしてしまいますので、ご注意ください。

aws s3 cp cnn s3://test_create_bucket --profile soroban1

実行すると、下記のプロセスが始まります。

こちらの結果ではインスタンス上のcnnフォルダにある各種ファイルがtest_create_bucketバケットにコピーされます。*cnn内の大量ファイルがtest_create_bucketバケット内に散らかしますので、要注意です!

例2:test_folderというフォルダをtest_create_bucketにコピーします。下記のコマンドを実行すると、コピーすることができます。このコマンドだけで、Wasabi storageのパケットにフォルダも作成されます。

aws s3 cp /home/user/test_folder/ s3://test_create_bucket/test_folder/ --recursive --profile soroban1

完了した場合、ターミナルの画面及びWasabi storageの画面が下記の通りになります。

まとめ

いかがでしたか。これで最低限の必要な操作ができるはずです。良かったら、試してみてください。

関連記事

ページ上部へ戻る