Frekuensi akses terhadap data yang disimpan di OSS umumnya menurun seiring waktu. Menyimpan data dingin dalam kelas penyimpanan Standard yang berbiaya tinggi tidak ekonomis, sementara pembersihan manual sejumlah besar file log atau backup juga tidak efisien. Manajemen siklus hidup memungkinkan Anda membuat aturan otomatis untuk memindahkan objek ke kelas penyimpanan berbiaya lebih rendah—seperti Infrequent Access atau Archive—setelah periode tertentu (misalnya, 30 hari) atau bahkan menghapus objek tersebut. Hal ini membantu Anda mengelola seluruh siklus hidup data secara cerdas dan hemat biaya.
Cara kerja
Manajemen siklus hidup menggunakan aturan yang ditentukan pengguna untuk melakukan operasi otomatis pada objek dalam bucket. OSS memuat aturan siklus hidup dalam waktu 24 jam setelah aturan tersebut dibuat. Setelah dimuat, OSS memindai dan mengeksekusi aturan yang sesuai pada waktu tetap setiap hari, biasanya setelah pukul 00:00 (UTC) hari berikutnya, yaitu pukul 08:00 (UTC+8).
Sebuah aturan siklus hidup terdiri dari tiga bagian utama:
Objek yang dikelola: Tentukan objek mana yang dikenai aturan tersebut. Anda dapat menyaring objek target berdasarkan awalan objek (Prefix), tag objek (Tag), atau ukuran objek (ObjectSize).
Aturan siklus hidup tidak mendukung karakter wildcard, pencocokan akhiran (suffix), atau ekspresi reguler.
Aksi yang dilakukan: Tentukan tindakan yang akan dilakukan terhadap objek yang telah difilter. Aksi utama meliputi hal-hal berikut:
Transisi kelas penyimpanan (Transition): Pindahkan objek ke kelas penyimpanan berbiaya lebih rendah seperti Infrequent Access, Archive, atau Cold Archive.
Kedaluwarsa dan penghapusan (Expiration): Hapus objek setelah mencapai periode siklus hidup tertentu.
Pembersihan fragmen (AbortMultipartUpload): Secara otomatis hapus bagian-bagian dari unggah multi-bagian yang tidak lengkap setelah jangka waktu tertentu.
Kebijakan pemicu: Tentukan kondisi yang memicu aksi terhadap objek yang telah difilter:
Waktu modifikasi terakhir (Last-Modified-Time): Pindahkan atau hapus objek berdasarkan waktu modifikasi terakhirnya. Ini cocok untuk data dengan siklus hidup yang jelas, seperti log dan backup. Anda dapat secara otomatis memindahkan kelas penyimpanan atau menghapus objek untuk menghemat biaya.
Waktu akses terakhir (Last-Access-Time): Setelah Anda mengaktifkan fitur access tracking, Anda dapat secara cerdas mengganti kelas penyimpanan berdasarkan waktu akses terakhir suatu objek. Ini berguna untuk skenario dengan pola akses yang tidak dapat diprediksi, seperti perpustakaan materi. Kelas penyimpanan dapat diturunkan ketika data menjadi dingin dan secara otomatis dipulihkan saat data tersebut diakses.
Untuk informasi lebih lanjut tentang cara mengonfigurasi kebijakan siklus hidup, lihat Elemen konfigurasi siklus hidup.
Skenario konfigurasi
Bersihkan otomatis file log yang kedaluwarsa
Server menghasilkan banyak log setiap hari dan mengunggahnya ke direktori tertentu. Anda dapat mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk menghapus semua objek dalam bucket setelah jumlah hari tertentu. Hal ini melepaskan ruang penyimpanan dan mengurangi biaya penyimpanan.
Gunakan tiering penyimpanan otomatis untuk data panas dan dingin
Untuk data dengan frekuensi akses yang tidak pasti, seperti citra website, video online, dan dokumen, Anda dapat mengaktifkan fitur access tracking. Kemudian, Anda dapat menggunakan aturan siklus hidup berdasarkan waktu akses terakhir untuk menerapkan tiering data cerdas. Sistem secara otomatis memindahkan data dingin ke kelas penyimpanan Infrequent Access, Archive, atau Cold Archive berdasarkan pola akses aktual. Hal ini mencapai tiering cerdas dan optimalisasi biaya.
Bersihkan otomatis versi sebelumnya
Setelah Anda mengaktifkan versioning, operasi overwrite dan penghapusan pada data disimpan sebagai versi sebelumnya. Ketika sebuah bucket mengumpulkan banyak versi sebelumnya atau penanda hapus yang kedaluwarsa, Anda dapat menggunakan aturan siklus hidup berdasarkan waktu modifikasi terakhir bersamaan dengan versioning untuk mengurangi biaya penyimpanan. Objek secara otomatis dihapus setelah jangka waktu tertentu. Hal ini mengurangi biaya penyimpanan dan meningkatkan performa daftar objek.
Bersihkan otomatis fragmen dari unggah multi-bagian
Jika unggah multi-bagian file besar terganggu, sistem menyimpan bagian-bagian yang belum digabung, yang tetap dikenai biaya. Anda dapat mengonfigurasi aturan siklus hidup untuk secara otomatis membersihkan bagian yang tidak lengkap setelah jangka waktu tertentu guna menghindari penggunaan resource yang tidak perlu.
Selain skenario di atas, Anda dapat menerapkan kebijakan manajemen data yang lebih detail halus. Untuk informasi lebih lanjut, lihat Contoh konfigurasi siklus hidup. Anda dapat menggabungkan berbagai aturan untuk mencapai manajemen data detail halus dalam bucket sesuai kebutuhan.
Beberapa aturan siklus hidup
Untuk memastikan beberapa aturan siklus hidup berjalan sesuai harapan, Anda perlu memahami dua mekanisme inti: Prioritas eksekusi aturan dan mekanisme timpa konfigurasi.
Prioritas eksekusi aturan
Anda dapat mengonfigurasi beberapa aturan siklus hidup untuk bucket yang sama. Aturan-aturan tersebut bersifat independen, sehingga objek yang sama mungkin sesuai dengan beberapa aturan. Aksi akhir ditentukan berdasarkan hasil semua aturan yang sesuai.
Ketika beberapa aturan sesuai dengan objek yang sama pada waktu yang sama, aturan tersebut dieksekusi dalam urutan prioritas berikut: Delete Object > Transition to Deep Cold Archive > Transition to Cold Archive > Transition to Archive > Transition to Infrequent Access > Transition to Standard.
Aksi penghapusan selalu memiliki prioritas lebih tinggi daripada transisi kelas penyimpanan. Tetapkan waktu aturan penghapusan lebih lama daripada waktu aturan transisi. Hal ini mencegah objek dihapus sebelum transisi selesai.
Contoh eksekusi
Asumsikan Anda menentukan dua aturan siklus hidup berikut, dan kedua aturan tersebut sesuai dengan objek yang sama.
Aturan 1: Menentukan bahwa objek yang dimodifikasi lebih dari 365 hari lalu dipindahkan ke kelas penyimpanan Infrequent Access.
Aturan 2: Menentukan bahwa objek yang dimodifikasi lebih dari 365 hari lalu dihapus.
Hasil: Objek yang sesuai dengan aturan tersebut akan dihapus lebih dari 365 hari setelah waktu modifikasi terakhirnya.
Mekanisme timpa konfigurasi
Saat menggunakan Konsol, Anda tidak perlu khawatir tentang penimpaan konfigurasi. Setiap kali Anda menambahkan atau mengubah aturan, Konsol secara otomatis membaca konfigurasi saat ini, menggabungkan perubahan, dan mengirimkan hasilnya. Hal ini mencegah hilangnya aturan yang ada secara tidak sengaja. Namun, berhati-hatilah saat mengonfigurasi aturan siklus hidup menggunakan ossutil, SDK, atau dengan langsung memanggil API. Setiap panggilan PutBucketLifecycle sepenuhnya menimpa seluruh konfigurasi siklus hidup yang ada untuk bucket tersebut. Jika Anda mengirimkan aturan baru tanpa menyertakan aturan yang sudah ada, aturan yang ada akan dihapus dan tidak lagi berlaku.
Contoh
Jika Anda ingin menambahkan aturan baru ke aturan yang sudah ada, lakukan langkah-langkah berikut:
Ambil semua aturan siklus hidup yang sedang berlaku (misalnya, Aturan 1).
Tambahkan aturan baru (misalnya, Aturan 2).
Kirim ulang konfigurasi lengkap yang mencakup semua aturan (Aturan 1 + Aturan 2).
Catatan: Jika Anda hanya mengirimkan konfigurasi yang berisi aturan baru (Aturan 2) tanpa menyertakan aturan yang sudah ada (Aturan 1), maka Aturan 1 akan dihapus dan tidak lagi berlaku.
Penerapan di lingkungan produksi
Untuk menggunakan manajemen siklus hidup secara aman dan efisien di lingkungan produksi, kami merekomendasikan hal-hal berikut:
Uji sebelum menerapkan: Buat aturan terlebih dahulu di bucket uji. Verifikasi bahwa perilakunya sesuai harapan sebelum menerapkannya ke bucket produksi.
Gunakan aturan penghapusan dengan hati-hati: Untuk aturan yang dikonfigurasi dengan kedaluwarsa dan penghapusan, tetapkan awalan secara tepat. Hal ini mencegah cakupan aturan meluas dan menghapus data penting secara tidak sengaja.
Aktifkan versioning sebagai perlindungan: Untuk data bisnis kritis, aktifkan fitur versioning untuk bucket tersebut. Dengan demikian, meskipun versi saat ini dari objek secara tidak sengaja dihapus oleh aturan siklus hidup, Anda masih dapat memulihkan data dari versi sebelumnya.
Gunakan transisi bertingkat untuk menghindari biaya tambahan: Saat merancang kebijakan transisi kelas penyimpanan, pastikan waktu pemicu tahap berikutnya berada setelah jumlah waktu pemicu tahap sebelumnya ditambah durasi penyimpanan minimum kelas penyimpanan tersebut. Hal ini menghindari biaya akibat transisi prematur.
Contoh salah: Standard
30 hari-> Infrequent Access40 hari-> Archive Storage. Konfigurasi ini menyebabkan objek hanya disimpan dalam kelas penyimpanan IA selama 10 hari (< 30 hari) sebelum ditransisikan lagi. Hal ini menimbulkan biaya.Contoh benar: Standard
30 hari-> Infrequent Access90 hari-> Archive Storage. (Objek ditransisikan ke kelas penyimpanan IA setelah 30 hari. Objek tetap berada di kelas penyimpanan IA selama 60 hari sebelum ditransisikan ke Archive Storage, total 90 hari).
Penagihan
Mengonfigurasi aturan siklus hidup tidak dikenai biaya. Biaya dikenakan saat aturan dieksekusi dan saat status penyimpanan berubah sebagai akibatnya.
Biaya permintaan: Saat aturan siklus hidup melakukan transisi kelas penyimpanan, menghapus objek, atau menghapus bagian, sistem memulai permintaan tipe
Put. Biaya permintaan dikenakan berdasarkan jumlah permintaan. Untuk informasi lebih lanjut tentang aturan penagihan, lihat Deskripsi biaya siklus hidup.Untuk bucket yang berisi banyak file kecil, biaya ini bisa signifikan. Evaluasi hal ini sebelum mengonfigurasi aturan.
Biaya penyimpanan: Setelah objek ditransisikan ke kelas penyimpanan baru, objek tersebut ditagih berdasarkan harga satuan kelas baru tersebut.
PentingKelas penyimpanan seperti Infrequent Access, Archive, dan Cold Archive memiliki persyaratan Durasi penyimpanan minimum (misalnya, 30 hari untuk Infrequent Access dan 60 hari untuk Archive). Jika aturan siklus hidup menghapus atau mentransisikan objek sebelum durasi penyimpanan minimum terpenuhi, Anda harus membayar untuk sisa durasi penyimpanan tersebut. Untuk menghindari biaya kapasitas kondisional untuk penyimpanan yang lebih singkat dari durasi yang ditentukan akibat transisi atau penghapusan, lihat Bagaimana cara menghindari biaya kapasitas untuk penyimpanan yang lebih singkat dari durasi yang ditentukan?. Pastikan durasi penyimpanan minimum terpenuhi sebelum mentransisikan atau menghapus.
Biaya pengambilan data: Aturan siklus hidup itu sendiri tidak menimbulkan biaya pengambilan data. Namun, saat Anda mengakses objek yang telah ditransisikan ke kelas penyimpanan seperti Infrequent Access atau Archive, biaya pengambilan data yang sesuai akan dikenakan.
Membaca objek Infrequent Access (IA) secara langsung menimbulkan biaya pengambilan data.
Membaca objek Archive secara langsung menimbulkan biaya kapasitas pengambilan data untuk akses real-time.
Memulihkan objek Archive menimbulkan biaya permintaan tipe Put dan biaya kapasitas pengambilan data.
Memulihkan objek Cold Archive atau Deep Cold Archive menimbulkan biaya permintaan pengambilan, biaya kapasitas pengambilan, dan biaya kapasitas pemulihan sementara.
PentingUntuk objek Cold Archive dan Deep Cold Archive, biayanya bervariasi tergantung pada prioritas pengambilan yang Anda pilih. Prioritas yang lebih tinggi menghasilkan biaya yang lebih tinggi.



