さくらのクラウド オブジェクトストレージをAmazon S3互換APIで使う ~第1回:AWS CLIから利用してみよう~

「さくらのクラウド」では、オブジェクトストレージサービスを提供しています。
オブジェクトストレージでは、「オブジェクト」という単位でデータを保存し、各オブジェクトはデータ本体に加えてメタデータ・一意のIDを付与します。フォルダ構造を持たずに大量データを効率的に管理できるため、画像・動画・ログなどの大容量データの保存、バックアップやアーカイブ、Webコンテンツ配信、AI学習データの保管などに利用されます。
さくらのクラウドが提供するオブジェクトストレージは、Amazon S3互換APIを備えています。大容量かつ大量のデータをスケーラブルに保存でき、さくらのVPSやさくらの専用サーバのデータ保存にも利用できます。
オブジェクトストレージは定額従量制で提供されており、オブジェクトストレージ内でデータを保管する基本的な単位である「バケット」ごとに料金が発生します。
この記事では、オブジェクトストレージの具体的な操作方法をAWS CLIを例にして解説します。
目次
AWS CLIとは
AWS CLIは、Amazon Web Serviceが提供するコマンドライン操作ツールです。AWS CLIのオプション引数でエンドポイントを指定することで、さくらのクラウドのオブジェクトストレージをそのまま操作できます。Amazon S3互換APIを採用しているメリットですね。
AWS CLIの入手と導入方法は、下記の公式サイトをご覧ください。
初期設定でオブジェクトストレージを指定する
では実際に、AWS CLIを使って、オブジェクトストレージを操作してみましょう。
オブジェクトストレージの基本操作は、以下のマニュアルで確認できます。あらかじめ、オブジェクトストレージを利用可能にして、バケットを作成しておきましょう。
最初に、configureオプションでAWSコマンドにアクセスキー/シークレットアクセスキーなどを設定します。
# aws configure
AWS Access Key ID [None]: <あなたのアクセスキー>
AWS Secret Access Key [None]: <あなたのシークレットキー>
Default region name [None]: jp-north-1
Default output format [None]: json
環境変数によりエンドポイントを指定できます。S3互換APIのエンドポイントは環境変数AWS_ENDPOINT_URL_S3で指定します。
# export AWS_ENDPOINT_URL_S3="https://s3.isk01.sakurastorage.jp"
環境変数だけでなく共有設定ファイル(~/.aws/config)も利用できます。
[profile dev]
endpoint_url = https://s3.isk01.sakurastorage.jp
利用上の注意
一部バージョンのAWS CLIおよびAWS SDKにおいて、オブジェクトストレージが正常に利用できないことを確認しています。詳細は、以下のさくらのクラウドニュースをご確認ください。
例えばAWS CLI v2 2.23.0以降を利用する場合、HTTPステータスコード「422 Unprocessable Entity」が返されます。ただしAWS CLI v2 2.23.5以降であれば、次の環境変数を設定することで回避できます。
# export AWS_REQUEST_CHECKSUM_CALCULATION="WHEN_REQUIRED"
# export AWS_RESPONSE_CHECKSUM_VALIDATION="WHEN_REQUIRED"
または、共有設定ファイル(~/.aws/config)でも設定できます。
[profile dev]
request_checksum_calculation = when_required
response_checksum_validation = when_required
サブコマンドの実行方法
実際にオブジェクトストレージを操作するには、--endpoint-url 引数にオブジェクトストレージのエンドポイントを指定して、次のようにサブコマンドを実行します。
$ aws --endpoint-url="https://s3.isk01.sakurastorage.jp" s3api [サブコマンド]
なお、サブコマンドのオプションとして指定するバケット名(--bucket)やオブジェクトのキー(--key)などは、利用者自身の環境に合わせて置き換えてください。
オブジェクトをアップロードする
ローカルのファイルをバケット内にアップロードするには、 put-objectサブコマンドを実行します。
# aws --endpoint-url https://s3.isk01.sakurastorage.jp \
> s3api put-object \
> --bucket sob-sdktest-bucket \
> --key object.txt \
> --body ./localfile.txt \
> --content-type text/plain
{
"ETag": "\"61ef751e838a741160f869aea4a3e76d\""
}
オブジェクト一覧を確認する
では、実際の操作を試してみましょう。
オブジェクトの一覧を確認するには、 list-objects-v2サブコマンドを実行します。
# aws --endpoint-url https://s3.isk01.sakurastorage.jp \
> s3api list-objects-v2 \
> --bucket sob-sdktest-bucket
{
"Contents": [
{
"Key": "object.txt",
"LastModified": "2025-11-05T08:03:35.827000+00:00",
"ETag": "\"61ef751e838a741160f869aea4a3e76d\"",
"Size": 20,
"StorageClass": "STANDARD"
}
],
"RequestCharged": null,
"Prefix": ""
}
オブジェクトをダウンロードする
バケットからオブジェクトをダウンロードするには、 get-objectサブコマンドを使います。
# aws --endpoint-url https://s3.isk01.sakurastorage.jp \
> s3api get-object \
> --bucket sob-sdktest-bucket \
> --key object.txt \
> object.txt
{
"AcceptRanges": "bytes",
"LastModified": "2025-11-05T08:03:35+00:00",
"ContentLength": 20,
"ETag": "\"61ef751e838a741160f869aea4a3e76d\"",
"ContentType": "text/plain",
"Metadata": {}
}
バケット内のオブジェクトを削除する
バケット内のオブジェクトを削除するには、 delete-objectサブコマンドを実行します。
# aws --endpoint-url https://s3.isk01.sakurastorage.jp \
> s3api delete-object \
> --bucket sob-sdktest-bucket \
> --key object.txt
まとめ
簡単ですが、AWS CLIによりオブジェクトストレージを操作する方法を紹介しました。
コマンドラインツールを利用すれば、効率よくデータを操作でき、自動化も容易になります。
ただし、Amazon S3互換APIを利用するツールではバケットの作成/削除などの操作はできません。これらの操作をする場合はさくらのオブジェクトストレージAPIをご利用ください。
これを機会に、ぜひオブジェクトストレージを活用してください。
参考情報
- オブジェクトストレージ | さくらのクラウド
- オブジェクトストレージ | さくらのクラウド マニュアル
- オブジェクトストレージのAPI | さくらのクラウド マニュアル
- AWS コマンドラインインターフェイス(CLI: AWSサービスを管理する統合ツール)| AWS
関連記事
さくらのクラウド オブジェクトストレージをAmazon S3互換APIで使う
- 第2回:S3互換APIをプログラムから呼び出そう
- 第3回:AWS CLIでバケットバージョニング