---
title: Object Storage (S3, Ceph RGW)
description: Cephクラスターで従量課金制S3ストレージを販売する方法：RGW要件、管理者ユーザーと権限、およびNexCMPでのゾーンへのバックエンド紐付け手順。
url: https://nexcmp.com/ja/docs/infrastructure/s3/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Object Storage (S3, Ceph RGW) {#object-storage-s3-ceph-rgw}

> **管理画面での場所:** Infrastructure › Cloud provider › Ceph S3 (RGW) (`/infra/s3`)。アカウント: Services › Object Storage › S3 accounts (`/s3`)。料金: Services › Object Storage › PAYG pricing (`/s3/policy`)。System › Admin › License & updates からモジュールを有効にします。

## 動作内容 {#what-it-does}

お客様はポータルからS3アカウントを作成し、アクセスキーを取得します。NexCMPはRGW Admin Ops API経由で**お客様のCeph RADOS Gateway (RGW)**上に一致するユーザーの作成および削除を行い、課金用の使用量を読み取り、従量課金を行います。ストレージは無料枠を超える分をGB/月あたり（時間単位で課金）、ダウンロードトラフィックはGBあたりで課金されます。アップロードは無料です。

RGWを使用したCephクラスターを運用しており、オブジェクトストレージを再販したい場合に使用します。

## 要件 {#requirements}

| 項目 | 要件 |
|---|---|
| Ceph | 少なくとも1つのRGWデーモンを持ち、**Admin Ops API**が有効化されたクラスター（デフォルトの`rgw_enable_apis`には`admin`が含まれます）。 |
| 管理者ユーザー | 以下にリストする権限を持つ、NexCMP用のRGWユーザー。お客様のデータを所有するユーザーは使用しないでください。 |
| エンドポイント | お客様が使用するS3エンドポイントと、Admin Opsエンドポイント。両方とも`https://host`形式で記述し、**パスなし、ポート443のみ**とし、**パブリック**アドレスに名前解決される必要があります。ループバック、リンクローカル、マルチキャスト、プライベート、およびユニークローカルアドレスは拒否されます。 |
| 証明書 | エンドポイントホスト用の有効な証明書。 |
| 使用量ログ | RGWの使用量ログが有効（`rgw_enable_usage_log = true`）になっており、使用量APIがトラフィックを報告できるようにすること。 |
| ゾーン | サービス**Object Storage (S3)**にチェックが入ったマスターゾーン。[Zones](https://nexcmp.com/ja/docs/infrastructure/zones/)を参照してください。 |
| ストレージ | 販売するクォータに見合うCephの容量。 |
| 依存関係 | モジュール**Object Storage**。ダウンロードトラフィックは[Bandwidth](https://nexcmp.com/ja/docs/catalog/bandwidth/)にもカウントされます。 |

## インフラストラクチャの準備 {#prepare-the-infrastructure}

Ceph管理ノード上:

1. 管理者ユーザーを作成し、必要なAdmin Ops権限を付与します:

   ```bash
   radosgw-admin user create --uid=nexcmp-admin --display-name="NexCMP admin"
   radosgw-admin caps add --uid=nexcmp-admin --caps="users=*;buckets=*;usage=read;metadata=read"
   radosgw-admin user info --uid=nexcmp-admin
   ```

   出力から`access_key`と`secret_key`をコピーします。これらがNexCMPにおける**Admin access key**および**Admin secret key**になります。

2. 使用量ログを有効にしてゲートウェイを再起動します:

   ```bash
   ceph config set client.rgw rgw_enable_usage_log true
   ```

3. ゲートウェイをポート443のHTTPSの背後（リバースプロキシまたはRGW自身のTLS）に配置し、DNS名を公開し、パネルサーバーからテストします:

   ```bash
   curl -fsS -o /dev/null -w '%{http_code}\n' https://s3.example.com/
   ```

   タイムアウトではなく、S3 XMLの応答（HTTP 200または403）が返るはずです。


## NexCMP での接続 {#connect-in-nexcmp}

1. **ゾーンにS3サービスを付与する。** **Infrastructure › Datacenter › Zone**を開き、ゾーンを編集して**Object Storage (S3)**にチェックを入れます。S3サービスを持つマスターゾーンのみがバックエンドフォームに表示されます。


2. **Infrastructure › Cloud provider › Ceph S3 (RGW)**を開き、**Add backend**をクリックします:

   | 項目 | 入力例 |
   |---|---|
   | Backend name | `Ceph RGW 1` |
   | ゾーン | ステップ1のゾーン |
   | RGW Admin Ops endpoint | `https://s3.example.com` |
   | お客様用 S3 エンドポイント | `https://s3.example.com` |
   | S3 署名リージョン | `default` |
   | 管理者アクセスキー | `XXXX` |
   | 管理者シークレットキー | `XXXX` |
   | 有効 | on |
   | 販売を有効化（事前に接続テストが必要） | **off**（当面の間） |
   | 変更理由 | `initial setup` |

      ![エンドポイント、リージョン、マスクされたキーの例が表示されたバックエンド S3 ダイアログ](https://nexcmp.com/ja/docs/images/infrastructure/s3-02-backend-dialog.webp)

3. **OK**（保存）をクリックし、行の **Check** をクリックします。NexCMP は管理者キーを使用して Admin Ops API を呼び出します。**Ceph connection successful** およびタグ **Verified** が表示されていれば、正常に動作しています。


4. **Edit** をクリックし、**Enable sales** をオンにして保存します。テストが成功するまで、NexCMP は販売の開始を許可しません。
5. **Services › Object Storage › PAYG pricing** を開き、料金を設定します。

   | 項目 | 意味 |
   |---|---|
   | 無料枠を超えるストレージ（VND/GB/月） | ストレージ料金。月額料金を 730 で割った値として 1 時間ごとに請求されます。 |
   | ダウンロード（VND/GB） | 下りトラフィックの料金。 |
   | アップロード（VND/GB） | 常に 0。 |
   | 稼働中 VM ありの無料枠（GB） | 顧客が少なくとも 1 台の稼働中 VM を保有している間、アカウントあたり 100 GB に固定され、サイズごとに S3 アカウント間で共有されます。 |
   | 債務限度額（VND） | 許可される未払い利用料の上限。 |
   | 請求しきい値（VND） | この金額を超えると、利用料が 1 つの請求書にまとめられます。 |
   | S3 作成に必要な最低残高（VND） | アカウント作成に必要なウォレット残高。 |
   | 顧客あたりの最大 S3 アカウント数、デフォルトのテクニカルクォータ（GB） | 新規アカウントの制限。 |

      ![S3 PAYG 料金フォーム](https://nexcmp.com/ja/docs/images/infrastructure/s3-04-pricing.webp)

   S3 の価格は VND で入力されます。表示およびウォレットの課金時には、適用される為替レートで換算されます。[Currency and exchange rates](https://nexcmp.com/ja/docs/catalog/currency-and-exchange-rates/) を参照してください。

## 確認 {#verify}

1. **Check** で「Ceph connection successful」が表示されます。
2. 顧客として（またはテストアカウントを使用して）S3 アカウントを作成します。Ceph 側では `radosgw-admin user list` に新しいユーザーが表示され、NexCMP では **S3 accounts** にリストされます。
3. 顧客のエンドポイントに対して顧客のキーを使用し、任意の S3 クライアントでバケットを作成します。ファイルをアップロードします。
4. 次回の 1 時間ごとの課金処理の後、**S3 accounts** に利用状況が表示されます。

## 制限と注意点 {#limits-and-notes}

- すでにアカウントが紐付けられているバックエンドは、**ゾーン、エンドポイント、リージョン**が維持されます。これらを変更するには、新しいバックエンドを作成してください。
- 1 つのゾーンに独自のバックエンドを持たせることができます。アカウントとバックエンドはゾーンに永続的に紐付けられます。
- 無料枠と「アップロード無料」はオプションではなく、固定のルールです。
- キーは暗号化して保存されます。コンソールには「現在のキーを維持する場合は空欄のままにする」というフィールドのみが表示されます。キーペアは常にセットで入力します。
- 顧客のシークレットキーは作成時に一度だけ表示され、二度と表示されません。キーを紛失した場合は、ローテーションによって置き換えます。

## トラブルシューティング {#troubleshooting}

| 症状 | 原因 | 対処法 |
|---|---|---|
| "Endpoint requires HTTPS" | エンドポイントが通常の HTTP を使用している | ポート 443 で HTTPS を公開してください。 |
| 「許可されていないエンドポイントポートです」 | 443 以外のポート | 標準の HTTPS ポートを使用してください。 |
| 「エンドポイントアドレスが許可されていません」 | 名前がプライベート、ループバック、リンクローカル、またはユニークローカルアドレスに解決されます | パブリックアドレスを使用してください。 |
| 「エンドポイントにはプロトコルとホストのみを含める必要があります」 | URLにパス、クエリ、またはユーザー情報が含まれています | `https://host` のみを使用してください。 |
| 「エンドポイントの解決に失敗しました」 | パネルサーバーからDNSが解決されません | DNSを修正してください。 |
| "Failed to connect to Ceph" | ファイアウォールまたはTLSエラー | パネルサーバーから `curl` でテストしてください。 |
| "Ceph returned HTTP 403 AccessDenied" | キーが間違っているか、権限が不足しています | キーを確認し、 `radosgw-admin caps add` を再実行してください。 |
| "Invalid Ceph response" | エンドポイントが RGW Admin Ops API ではありません | ウェブページではなく、RGWを指定してください。 |
| 「販売を有効にする前に接続テストが成功する必要があります」 | 正常な **Check** を行う前に販売を有効にしました | **Check** を実行してから、販売を有効にしてください。 |
| 「エンドポイントの新しいキーはすべて必須です」 | 両方のキーを指定せずにエンドポイントが変更されました | アクセスキーとシークレットキーを同時に入力してください。 |
| 「バックエンドに既にリソースがアタッチされています。ゾーンやエンドポイントを変更するには新しいバックエンドを作成してください」 | このバックエンドにアカウントが存在します | 新しいバックエンドを作成してください。 |
| 「S3サービスを持つマスターゾーンを選択してください」 | ゾーンがマスターゾーンではないか、S3サービスがありません | ゾーンの **Object Storage (S3)** にチェックを入れてください。 |
| "Invalid region" | リージョンに文字、数字、 `-`、 `_` 以外の文字が含まれています | `default` または RGW のゾーンカープ名を使用してください。 |
| 「Cephの使用量サマリーが見つからないため、課金されません」 | 使用状況ログが無効になっています | `rgw_enable_usage_log` を有効にしてください。 |
