Storj DCSのS3互換のサービスを使用してデータを扱ってみる – AWS CLI –

2022.04.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

分散型クラウドストレージのサービスであるStorj DCSですが、S3互換ゲートウェイを提供しており、Amazon S3 APIの基本的なデータアクセスモデルと互換性のあるRESTfulAPIをサポートしています。

S3互換ゲートウェイは2つの方法が提供されています。

  • GatewayMT
    • StorjでホストされているS3互換のサービス
  • GatewayST
    • 独自のゲートウェイをホストできる

GatewaySTは、 ハイブリッドクラウドアーキテクチャを使用している場合、オンプレミスデータを使用している場合、または独自のS3互換オブジェクトストレージサービスをホストする必要がある場合 に利用すると良いようです。

今回はStorjでホストされているGatewayMTを使用していきます。

前回の記事でUplink CLIでの操作を試してみましたが、このツールではなくGatewayを通すことでAWS CLIを使ってStorj DCSにアクセスしてデータのやり取りを行います。

やってみる

S3 Gateway credentialsを作成

StorjでホストされているGatewayMTを使用するためのcredentialを作成します。

StorjのWebコンソールにログインし、Access Grantsの作成を行います。

今回は全ての操作が行えるようにしていきます。[Continue in Browser]を選択し作成します。

Access Grantsの作成後、Generate S3 Gateway Credentialsをクリックします。

Generate Credentialsをクリックして作成します。

アクセスキー、シークレットキー、エンドポイントが作成されるので、この情報を使ってアクセスしていくことになりますので、この情報はコピーして保存しておく必要があります。

AWS CLIを使ってアクセス

AWS CLIがマシンにインストールされていることが前提となりますので、インストールされていない場合はこちらを参照してインストールしておきます。

CLIのバージョン

aws --version

を実行し、CLIのバージョンを確認します。

AWSCLIの現在のバージョンはバージョン2です。 AWS CLI v1を使用している場合は、エンドポイントを定義できるようにプラグインをインストールする必要があります。ここで方法を参照してください

CLIの設定

aws configureコマンドでgatewayように発行されたアクセスキーとシークレットキーの情報を設定します。

$ aws configure --profile <<your profile name>>
AWS Access Key ID [e53q]: <<yourAccessKey>>
AWS Secret Access Key [bbxq]: <<yourSecretKey>>
Default region name [us-east-1]: 
Default output format [None]: 
$

オプション設定ですが、マルチパートの閾値を64MBにすることが推奨されていますので、これも対応しておきます。

aws configure set s3.multipart_chunksize 64MB --profile <<your profile name>>

実行してみる

では実際にAWS CLIからStorj DCSにアクセスしてみます。

aws s3コマンドに--endpoint-urlオプションをつけて実行します。

endpoint-urlはS3 Gateway credentialsを作成したときに払い出されたものを使用していきます。

バケット一覧表示

aws --endpoint-url=<<your endpoint url>> s3 ls --profile <<作成したプロファイル名>>

実行例

バケットのファイル一覧表示

aws --endpoint-url=<<your endpoint url>> s3 ls s3://<<バケット名>> --profile <<作成したプロファイル名>>

実行例

ローカルのファイルをアップロード

aws --endpoint-url=<<your endpoint url>> s3 cp <<ローカルファイルのパス>> s3://<<バケット名>> --profile <<作成したプロファイル名>>

実行例

いくつかコマンドを実行してみました。

aws cliと同じコマンドでStorj DCSに対してのアクセスが可能になりました。

S3を使っていることが前提となりますが、Storj DCS使用時にそんなに労力をかけずにワークロードを実行したい、S3から移行したいといった時にgatewayMTは有効なサービスと言えると思います。

今回はCLIを使用しましたが、次回はAWS SDKを使ったプログラムからStorj DCSにアクセスするということを試してみたいと思います。

参考

サポートされているS3コマンド