Storj DCSのS3互換のサービスを使用してデータを扱ってみる – AWS CLI –
分散型クラウドストレージのサービスであるStorj DCSですが、S3互換ゲートウェイを提供しており、Amazon S3 APIの基本的なデータアクセスモデルと互換性のあるRESTfulAPIをサポートしています。
S3互換ゲートウェイは2つの方法が提供されています。
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にアクセスするということを試してみたいと思います。