以前の記事でAWS CLIについて説明しました。
実は私がAWS CLIを使用するようになったきっかけはAWS S3の操作ではなく、Wasabiオブジェクトストレージに対しての操作をする際に使用し始めました。
ある検証作業の中で一度に多くのファイルを作成したり、削除する必要がありました。WasabiオブジェクトストレージのWebコンソール「Wasabi File Manager」のGUIで複数のファイルを削除すると以下のようなメッセージが表示され、AWS CLIの使用を促されます。実際に多数のファイルを一度に削除する際には多くの時間がかかりました。
AWS CLIを使用するにあたって調査を始めたところ、Wasabiナレッジベースに「WasabiでAWS CLIを使用する方法」があり、ここの説明とAWS CLIの説明を往復しながら使用方法を習得しました。
ブログ記事「AWS CLIとは?」で説明しているコマンドはWasabiオブジェクトストレージに対しても同様に使用することができます。ただし、Wasabiを特定する各コマンドにオプションを付加する必要があります。そのオプションは具体的には「endpoint-url」であり、このオプションの後に使用しているWasabiのサイト(ストレージリージョン)のサービスURLを追加します。たとえば東京のサイトを使用する際には以下のようになります。
--endpoint-url=https://s3.ap-northeast-1.wasabisys.com
実際には以下のような使い方にになります。
「ストレージリージョンのサービスURL」についてはWasabiのナレッジベースで調べることができます。
また、毎回「–endpoint-url」を入力するのが煩雑な場合はプラグイン等を使用する方法があります。プラグインを使用する方法については上記の「WasabiでAWS CLIを使用する方法」で説明しています。
GUIとCLIのレスポンス
非常に簡単ではありますが、測定用に1ファイルあたり、10Byteと5KByteのファイルを1000個、もしくは、5000個作成しアップロードと削除をした場合のGUIとCLIの時間を測定しました。
最初に以下のコマンドでファイルをアップロードをした際の測定結果を示します。「out」フォルダーに表中に表しているファイルが格納されています。デフォルトではcpコマンドを実行する際にファイルごとに結果をコンソールに表示します。この表示が処理時間のうちのかなりの時間を消費するので、「–quit」オプションで表示を抑制しています。
aws s3 cp "out" s3://sbinvestigation/test/out --recursive --endpoint-url=https://s3.ap-northeast-1.wasabisys.com --quiet
ファイル数 | ファイル当たりの Byte数 | AWS CLI (秒) | GUI (秒) |
---|---|---|---|
1,000 | 10Byte | 10 | 43 |
5,000 | 10Byte | 35 | 406 |
1,000 | 5KByte | 10 | 42 |
5,000 | 5KByte | 41 | 測定せず |
GUIを使用しないことを見極める試験なので、処理に多くの時間がかかるGUIの測定にはついては測定を途中で打ち切り、結果欄には「測定せず」と表記しています。
次に削除した際の測定結果を示します。使用したコマンドは以下の通りです。
aws s3 rm s3://sbinvestigation/test/out --recursive --endpoint-url=https://s3.ap-northeast-1.wasabisys.com --quiet
ファイル数 | ファイル当たりの Byte数 | AWS CLI (秒) | GUI (秒) |
---|---|---|---|
1,000 | 10Byte | 5 | 37 |
5,000 | 10Byte | 24 | 1時間以上 |
1,000 | 5KByte | 7 | 33 |
5,000 | 5KByte | 24 | 測定せず |
それぞれの表で表した通り、ファイル数が多いほど、GUIでかかる時間は長くなります、また、単純にファイル数に比例しない傾向も見受けられます。GUIで操作したときに表示されるメッセージの通り、多くのオブジェクトを削除する際にはAWS CLIを使用する必要があると思います。また、アップロードについても同様の傾向があるようです。参考に慣れが幸いです。(上記の測定値は2023年11月2日現在の値です)