
さくらのクラウドのオブジェクトストレージへ AWS CLI でアクセスしてみた
いわさです。
さくらのクラウドにはオブジェクトストレージサービスがあります。
他者の類似サービスでいうと、AWS だと Amazon S3、Azure だと Azure Blob Storage などがあります。
ある時使い勝手はどんな感じだろうかと普通に触っていたのですが、ドキュメントを見てみると「ファイル操作手続きには Amazon S3 プロトコルを採用している」と公式ドキュメントに記述がありました。ほう。
さらに、上記によると Amazon S3 互換 API が搭載されているので Amazon S3 用のクライアントが利用できるとのことです。
一部機能の制限はあるものの、エンドポイントオプションを変更するだけで、AWS CLI や AWS SDK が使えるらしい。
使ってみる
まずはオブジェクトストレージを作成しましょう。我らが石狩リージョンで。
ここでアクセスキーとシークレットが払い出されます。また、後ほどコマンドでリージョンとS3エンドポイントの情報も使います。
今回 AWS CLI を使ってみたいので、ローカルの AWS 認証情報として追加しておきます。
% cat ~/.aws/credentials
:
[sakura]
aws_access_key_id=XXXXXXXXXXXXXXX
aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
まずはバケットを作成してみましょう。
AWS CLI のs3 mb
コマンドを使うのですが、endpoint-url
オプションに先ほどの S3 エンドポイントs3.isk01.sakurastorage.jp
を指定します。
そしてリージョンはjp-north-1
です。
実行してみましょう。
% aws --endpoint-url="https://s3.isk01.sakurastorage.jp" s3 mb s3://hoge0404bucket/hoge/ --profile sakura --region jp-north-1
make_bucket failed: s3://hoge0404bucket/hoge/ An error occurred (AccessDenied) when calling the CreateBucket operation: Access Denied
作成に失敗しました。
いきなり失敗例から試してしまったのですが、この S3 互換 API はバケットの作成/削除などの操作はサポートしていません。そのためそれらの API 操作が必要な場合は「さくらのオブジェクトストレージ API」を使う必要があります。
今回はコンソールからバケットを作成したいと思います。
「バケットの追加」から名前を指定して新規バケットを作成出来ます。
先ほどと同じ要領で今度はs3 ls
コマンドを試してみると、バケット一覧が取得できました。なるほど。
% aws --endpoint-url="https://s3.isk01.sakurastorage.jp" s3 ls --profile sakura --region jp-north-1
2025-04-04 16:32:34 hoge0404bucket
コンソール上ではバケットを作成するとアップロードボタンが表示されたので、適当なファイルもアップロードしておきます。マルチパートアップロードサポートされているのですね。
これを取得してみましょう。s3 cp
でローカルにダウンロードします。
% aws --endpoint-url="https://s3.isk01.sakurastorage.jp" s3 cp s3://hoge0404bucket/hogehoge.csv ./ --profile sakura --region jp-north-1
download: s3://hoge0404bucket/hogehoge.csv to ./hogehoge.csv
おお、取得できました。どうやらs3://
を指定する形で問題ないみたいですね。
続いて、ローカルで適当なファイルを作成してアップロードしてみます。
% aws --endpoint-url="https://s3.isk01.sakurastorage.jp" s3 cp fugafuga.csv s3://hoge0404bucket/ --profile sakura --region jp-north-1
upload: ./fugafuga.csv to s3://hoge0404bucket/fugafuga.csv
コンソールを確認してみると無事アップロード出来ていることが確認出来ました。
注意事項
今回事象は確認できなかったのですが、AWS CLI / AWS SDK の一部バージョンを使っている時、正常に利用できない場合があるそうです。
チェックサム関係の問題らしく回避策としてAWS_REQUEST_CHECKSUM_CALCULATION
、AWS_RESPONSE_CHECKSUM_VALIDATION
を設定する方法が紹介されています。
さいごに
本日はさくらのクラウドのオブジェクトストレージへ AWS CLI でアクセスしてみました。
クラウドネイティブ化が進むと別のクラウドへの移行コスト高くなるなぁと思っていたのですが、こういう互換 API の提供っておもしろいですね。S3 に依存したアプリケーションを気軽にさくらのクラウドで試すことが出来そうです。