---
title: Object Storage (S3, Ceph RGW)
description: Jual penyimpanan S3 pay-as-you-go pada kluster Ceph Anda: persyaratan RGW, pengguna admin dan cap, serta cara menyambungkan backend ke zona di NexCMP.
url: https://nexcmp.com/id/docs/infrastructure/s3/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

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

> **Di mana di admin:** Infrastructure › Cloud provider › Ceph S3 (RGW) (`/infra/s3`). Akun: Services › Object Storage › S3 accounts (`/s3`). Harga: Services › Object Storage › PAYG pricing (`/s3/policy`). Nyalakan modul di bawah System › Admin › License & updates.

## Fungsi {#what-it-does}

Pelanggan membuat akun S3 dari portal dan mendapatkan kunci akses. NexCMP membuat dan menghapus pengguna yang cocok di **Ceph RADOS Gateway (RGW) Anda** melalui RGW Admin Ops API, membaca penggunaan untuk penagihan, dan menagih biaya bayar-sesuai-pemakaian: penyimpanan di atas tingkatan gratis per GB per bulan (dihagih per jam) dan trafik unduhan per GB. Unggahan gratis.

Gunakan ini saat Anda menjalankan kluster Ceph dengan RGW dan ingin menjual kembali penyimpanan objek.

## Persyaratan {#requirements}

| Item | Persyaratan |
|---|---|
| Ceph | Kluster dengan setidaknya satu daemon RGW, dengan **Admin Ops API** diaktifkan (bawaan `rgw_enable_apis` mencakup `admin`). |
| Pengguna admin | Pengguna RGW untuk NexCMP dengan kapabilitas yang tercantum di bawah ini. Jangan gunakan pengguna yang memiliki data pelanggan. |
| Titik akhir | Titik akhir S3 yang digunakan pelanggan, dan titik akhir Admin Ops. Keduanya ditulis sebagai `https://host` **tanpa jalur, hanya port 443**, dan harus menyelesaikan ke alamat **publik**: loopback, link-local, multicast, alamat privat dan unique-local ditolak. |
| Sertifikat | Sertifikat yang valid untuk host titik akhir. |
| Log penggunaan | Pencatatan penggunaan RGW aktif (`rgw_enable_usage_log = true`), sehingga API penggunaan dapat melaporkan trafik. |
| Zone | Zona master dengan layanan **Object Storage (S3)** dicentang. Lihat [Zones](https://nexcmp.com/id/docs/infrastructure/zones/). |
| Storage | Kapasitas di Ceph untuk kuota yang Anda jual. |
| Bergantung pada | Modul **Object Storage**. Trafik unduhan juga dihitung ke [Bandwidth](https://nexcmp.com/id/docs/catalog/bandwidth/). |

## Siapkan infrastruktur {#prepare-the-infrastructure}

Pada node admin Ceph:

1. Buat pengguna admin dan berikan kapabilitas Admin Ops yang dibutuhkannya:

   ```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
   ```

   Salin `access_key` dan `secret_key` dari keluaran. Keduanya adalah **Admin access key** dan **Admin secret key** di NexCMP.

2. Nyalakan log penggunaan dan mulai ulang gateway:

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

3. Letakkan gateway di belakang HTTPS pada port 443 (proksi terbalik atau TLS RGW sendiri), publikasikan nama DNS, dan uji dari server panel:

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

   Anda seharusnya mendapatkan respons XML S3 (HTTP 200 atau 403), bukan waktu habis (timeout).


## Hubungkan di NexCMP {#connect-in-nexcmp}

1. **Berikan layanan S3 pada zona.** Buka **Infrastructure › Datacenter › Zone**, edit zona tersebut, dan centang **Object Storage (S3)**. Hanya zona master dengan layanan S3 yang muncul di formulir backend.


2. Buka **Infrastructure › Cloud provider › Ceph S3 (RGW)** dan klik **Add backend**:

   | Kolom | Contoh nilai |
   |---|---|
   | Nama backend | `Ceph RGW 1` |
   | Zone | zona dari langkah 1 |
   | Titik akhir RGW Admin Ops | `https://s3.example.com` |
   | Endpoint S3 pelanggan | `https://s3.example.com` |
   | Wilayah penandatanganan S3 | `default` |
   | Kunci akses admin | `XXXX` |
   | Kunci rahasia admin | `XXXX` |
   | Aktif | aktif |
   | Aktifkan penjualan (wajib uji koneksi terlebih dahulu) | **nonaktif** untuk saat ini |
   | Alasan perubahan | `initial setup` |

      ![Dialog S3 backend dengan contoh endpoint, wilayah, dan kunci yang disamarkan](https://nexcmp.com/id/docs/images/infrastructure/s3-02-backend-dialog.webp)

3. Klik **OK** (simpan), lalu **Check** pada baris tersebut. NexCMP memanggil API Admin Ops dengan kunci admin. **Ceph connection successful** dan tag **Verified** menandakan hal tersebut berfungsi.


4. Klik **Edit**, aktifkan sakelar **Enable sales**, lalu simpan. NexCMP menolak membuka penjualan hingga pemeriksaan berhasil.
5. Buka **Services › Object Storage › PAYG pricing** dan tentukan penetapan harga:

   | Kolom | Arti |
   |---|---|
   | Penyimpanan di atas tingkat gratis (VND/GB/bulan) | Harga penyimpanan; ditagih per jam sebagai harga bulanan dibagi 730. |
   | Unduh (VND/GB) | Harga untuk lalu lintas keluar. |
   | Unggah (VND/GB) | Selalu 0. |
   | Tingkat gratis dengan VM Aktif (GB) | Tetap sebesar 100 GB per akun selama pelanggan memiliki setidaknya satu VM aktif, dibagikan di antara akun S3 mereka berdasarkan ukuran. |
   | Batas utang (VND) | Berapa banyak penggunaan yang belum dibayar yang diizinkan. |
   | Ambang batas penagihan (VND) | Penggunaan dikumpulkan menjadi satu tagihan setelah melewati jumlah ini. |
   | Saldo minimum untuk membuat S3 (VND) | Saldo dompet yang diperlukan untuk membuat akun. |
   | Maks akun S3 per pelanggan, Kuota teknis default (GB) | Batasan untuk akun baru. |

      ![Formulir harga S3 PAYG](https://nexcmp.com/id/docs/images/infrastructure/s3-04-pricing.webp)

   Harga S3 dimasukkan dalam VND. Harga tersebut dikonversi untuk tampilan dan pemotongan dompet pada nilai tukar yang berlaku; lihat [Currency and exchange rates](https://nexcmp.com/id/docs/catalog/currency-and-exchange-rates/).

## Verifikasi {#verify}

1. **Check** menghasilkan "Ceph connection successful".
2. Sebagai pelanggan (atau dengan akun uji), buat akun S3. Pada Ceph, `radosgw-admin user list` menampilkan pengguna baru, dan **S3 accounts** mencantumkannya.
3. Buat bucket dengan klien S3 apa pun menggunakan kunci pelanggan terhadap endpoint pelanggan. Unggah sebuah file.
4. Setelah penagihan jam berikutnya, **S3 accounts** menampilkan penggunaan.

## Batasan dan catatan {#limits-and-notes}

- Backend yang sudah terhubung dengan akun tetap mempertahankan **zone, endpoint, dan region** miliknya; untuk mengubahnya, buat backend baru.
- Satu zona dapat memiliki backend-nya sendiri; akun dan backend terikat secara permanen pada suatu zona.
- Tingkat gratis dan "unggah gratis" adalah aturan tetap, bukan opsi.
- Kunci disimpan secara terenkripsi; konsol hanya menampilkan bidang "biarkan kosong untuk mempertahankan kunci saat ini". Pasangan kunci selalu dimasukkan bersama-sama.
- Kunci rahasia pelanggan ditampilkan sekali saat pembuatan, dan tidak akan ditampilkan lagi. Kunci yang hilang diganti dengan merotasinya.

## Pemecahan Masalah {#troubleshooting}

| Gejala | Penyebab | Solusi |
|---|---|---|
| "Endpoint requires HTTPS" | Endpoint menggunakan HTTP biasa | Publikasikan HTTPS pada port 443. |
| "Port endpoint tidak diizinkan" | Port selain 443 | Gunakan port HTTPS standar. |
| "Alamat endpoint tidak diizinkan" | Nama menyelesaikan ke alamat privat, loopback, link-local, atau unique-local | Gunakan alamat publik. |
| "Endpoint hanya boleh berisi protokol dan host" | URL memiliki jalur (path), kueri, atau informasi pengguna | Gunakan `https://host` saja. |
| "Gagal me-resolve endpoint" | DNS tidak dapat diselesaikan dari server panel | Perbaiki DNS. |
| "Failed to connect to Ceph" | Kesalahan firewall atau TLS | Uji dengan `curl` dari server panel. |
| "Ceph returned HTTP 403 AccessDenied" | Kunci salah atau kapabilitas kurang | Periksa kunci dan jalankan ulang `radosgw-admin caps add`. |
| "Invalid Ceph response" | Endpoint bukan API RGW Admin Ops | Arahkan ke RGW, bukan ke halaman web. |
| "Uji koneksi harus berhasil sebelum mengaktifkan penjualan" | Anda mengaktifkan penjualan sebelum **Check** berhasil | Jalankan **Check**, lalu aktifkan penjualan. |
| "Semua kunci baru untuk endpoint wajib diisi" | Endpoint diubah tanpa menyertakan kedua kunci | Masukkan kunci akses dan kunci rahasia secara bersamaan. |
| "Backend sudah memiliki resource terlampaui; buat backend baru untuk mengubah zone atau endpoint" | Akun sudah ada pada backend ini | Buat backend baru. |
| "Pilih master zone dengan layanan S3" | Zona bukan zona master atau tidak memiliki layanan S3 | Centang **Object Storage (S3)** pada zona. |
| "Invalid region" | Region berisi karakter selain huruf, digit, `-`, dan `_` | Gunakan `default` atau nama zonegroup RGW Anda. |
| "Ringkasan penggunaan Ceph tidak ada; tidak ditagih" | Log penggunaan dinonaktifkan | Aktifkan `rgw_enable_usage_log`. |
