さくらのクラウドのオブジェクトストレージへ AWS CLI でアクセスしてみた

さくらのクラウドのオブジェクトストレージへ AWS CLI でアクセスしてみた

Clock Icon2025.04.05

いわさです。

さくらのクラウドにはオブジェクトストレージサービスがあります。
他者の類似サービスでいうと、AWS だと Amazon S3、Azure だと Azure Blob Storage などがあります。

image.png

ある時使い勝手はどんな感じだろうかと普通に触っていたのですが、ドキュメントを見てみると「ファイル操作手続きには Amazon S3 プロトコルを採用している」と公式ドキュメントに記述がありました。ほう。

https://manual.sakura.ad.jp/cloud/objectstorage/about.html

さらに、上記によると Amazon S3 互換 API が搭載されているので Amazon S3 用のクライアントが利用できるとのことです。
一部機能の制限はあるものの、エンドポイントオプションを変更するだけで、AWS CLI や AWS SDK が使えるらしい。

使ってみる

まずはオブジェクトストレージを作成しましょう。我らが石狩リージョンで。

2075AEDF-FD97-443D-BBA9-80B6546506C5_1_105_c.jpeg

ここでアクセスキーとシークレットが払い出されます。また、後ほどコマンドでリージョンとS3エンドポイントの情報も使います。

DBE3D2E6-BA04-49C7-8AC6-8550E446ED90_1_105_c.jpeg

今回 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」を使う必要があります。

https://manual.sakura.ad.jp/cloud/objectstorage/api/api-json.html

今回はコンソールからバケットを作成したいと思います。
「バケットの追加」から名前を指定して新規バケットを作成出来ます。

00F05568-090C-456D-AA1A-DA2428839116_1_105_c.jpeg

先ほどと同じ要領で今度は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

コンソール上ではバケットを作成するとアップロードボタンが表示されたので、適当なファイルもアップロードしておきます。マルチパートアップロードサポートされているのですね。

C7C78F0F-48C0-456B-98D4-D6B3C007DF67_1_105_c.jpeg

これを取得してみましょう。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

コンソールを確認してみると無事アップロード出来ていることが確認出来ました。

163D1876-AABF-43B2-9637-500D2488D133_1_105_c.jpeg

注意事項

今回事象は確認できなかったのですが、AWS CLI / AWS SDK の一部バージョンを使っている時、正常に利用できない場合があるそうです。

https://cloud.sakura.ad.jp/news/2025/02/04/objectstorage_defectversion/

チェックサム関係の問題らしく回避策としてAWS_REQUEST_CHECKSUM_CALCULATIONAWS_RESPONSE_CHECKSUM_VALIDATIONを設定する方法が紹介されています。

さいごに

本日はさくらのクラウドのオブジェクトストレージへ AWS CLI でアクセスしてみました。

クラウドネイティブ化が進むと別のクラウドへの移行コスト高くなるなぁと思っていたのですが、こういう互換 API の提供っておもしろいですね。S3 に依存したアプリケーションを気軽にさくらのクラウドで試すことが出来そうです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.