Topik ini mencakup masalah umum saat menggunakan fitur Pengendalian versi di OSS, termasuk biaya penyimpanan yang tidak terduga, kinerja pencatatan (listing) yang lambat, dan ketidaksesuaian ukuran data.
Mengapa saya dikenakan biaya lebih setelah mengaktifkan Pengendalian versi?
Saat Pengendalian versi diaktifkan, OSS menyimpan setiap versi objek—bukan hanya versi terbaru. Menimpa objek tidak menghapus versi sebelumnya; versi tersebut menjadi versi noncurrent dan tetap dikenai biaya penyimpanan.
Objek yang sering ditimpa akan mengumpulkan versi noncurrent dengan cepat, yang dapat meningkatkan biaya penyimpanan secara signifikan. Untuk mengendalikan biaya, konfigurasikan aturan siklus hidup menggunakan NonCurrentVersionExpiration agar versi noncurrent kedaluwarsa secara otomatis.
Contoh: biaya penyimpanan untuk bulan 30 hari
Hari ke-1: Unggah objek berukuran 20 GB menggunakan
PutObject. Kelas penyimpanan: Standard (penyimpanan redundan lokal).Hari ke-16: Unggah versi baru objek yang sama berukuran 40 GB menggunakan
PutObject.
Setelah hari ke-16, kedua versi tersebut ada bersamaan dalam bucket. Versi 20 GB (kini noncurrent) disimpan selama 30 hari penuh, sedangkan versi 40 GB disimpan selama sisa 15 hari.
Biaya penyimpanan bulanan: (20 GB – 5 GB) × USD 0,016/GB/bulan + 40 GB × USD 0,016/GB/bulan ÷ 30 hari × 15 hari = USD 0,56
Pengurangan 5 GB dalam contoh ini mencerminkan tier penyimpanan gratis yang diterapkan pada versi noncurrent.
Biaya penyimpanan objek untuk bulan tersebut dihitung berdasarkan persamaan berikut: (20 GB – 5 GB) × USD 0,016 per GB per bulan + 40 GB × USD 0,016 per GB per bulan ÷ 30 hari × 15 hari = USD 0,56.
Untuk detail harga di berbagai kelas penyimpanan, lihat Biaya penyimpanan.
Mengapa pencatatan objek lambat di bucket yang telah diaktifkan Pengendalian versinya?
Tanggapan lambat dari GetBucket (ListObjects) pada bucket yang telah diaktifkan Pengendalian versinya biasanya disebabkan oleh salah satu dari dua kondisi berikut:
Versi noncurrent terlalu banyak: Objek mengumpulkan versi noncurrent seiring waktu. Operasi pencatatan harus memindai metadata jauh lebih banyak untuk setiap objek, sehingga menurunkan kinerja.
Penanda hapus kedaluwarsa terlalu banyak: Penanda hapus dibuat setiap kali Anda menghapus objek tanpa menentukan ID versi. Penanda hapus kedaluwarsa yang menumpuk tanpa pembersihan juga memperlambat proses pencatatan.
Langkah 1: Identifikasi penyebabnya
Gunakan salah satu metode berikut untuk memeriksa bucket Anda:
Panggil
GetBucketVersions (ListObjectVersions)untuk memeriksa jumlah versi per objek. Untuk informasi lebih lanjut, lihat ListObjectVersions (GetBucketVersions).Gunakan fitur Daftar Bucket untuk mendapatkan laporan lengkap mengenai objek, versi noncurrent, dan penanda hapus di seluruh bucket. Untuk informasi lebih lanjut, lihat Daftar Bucket.
Langkah 2: Konfigurasikan aturan lifecycle untuk membersihkan bucket
| Aturan | Tujuan |
|---|---|
NonCurrentVersionExpiration | Kedaluwarsa versi noncurrent setelah jumlah hari tertentu |
ExpiredObjectDeleteMarker | Hapus penanda hapus kedaluwarsa secara otomatis |
Untuk detail konfigurasi aturan lifecycle, lihat Elemen konfigurasi.
Konfigurasikan kedua aturan lifecycle tersebut saat Anda mengaktifkan Pengendalian versi—jangan menunggu hingga kinerja menurun.
Mengapa ukuran objek di halaman Objects berbeda dengan penggunaan penyimpanan di halaman Overview?
Halaman Objects secara default hanya menampilkan versi current (terbaru) dari setiap objek. Versi sebelumnya disembunyikan, sehingga penyimpanannya tidak tercermin dalam ukuran yang ditampilkan di halaman tersebut.
Agar ukurannya konsisten, klik Show di pojok kanan atas daftar objek. Tindakan ini akan menampilkan semua versi, dan ukuran totalnya akan sesuai dengan penggunaan penyimpanan di halaman Overview.