Pemecahan masalah pembuatan versi - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan masalah pembuatan versi

Topik berikut ini dapat membantu Anda memecahkan beberapa masalah umum Penentuan Versi Amazon S3.

Saya ingin memulihkan objek yang secara tidak sengaja dihapus dalam bucket dengan Penentuan Versi diaktifkan

Secara umum, ketika versi objek dihapus dari bucket S3, tidak ada cara bagi Amazon S3 untuk memulihkannya. Namun, jika Anda sudah mengaktifkan Penentuan Versi S3 di bucket S3, permintaan DELETE yang tidak menentukan ID versi tidak dapat menghapus objek secara permanen. Sebagai gantinya, penanda hapus ditambahkan sebagai placeholder. Penanda hapus ini menjadi versi objek saat ini.

Untuk memverifikasi apakah objek yang dihapus telah dihapus secara permanen atau dihapus sementara (ditandai dengan penanda hapus), lakukan hal berikut:

  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Di dalam daftar Bucket, pilih nama bucket yang berisi objek.

  4. Pada daftar Objek, Aktifkan tombol Tampilkan versi di sebelah kanan bilah pencarian, lalu cari objek yang dihapus di bilah pencarian. Tombol beralih ini hanya tersedia jika Penentuan Versi sebelumnya telah diaktifkan di bucket.

    Anda juga dapat menggunakan Inventaris S3 untuk mencari objek yang dihapus.

  5. Jika Anda tidak dapat menemukan objek setelah mengalihkan Tampilkan versi atau membuat laporan inventaris, dan Anda juga tidak dapat menemukan penanda hapus objek, penghapusan bersifat permanen dan objek tidak dapat dipulihkan.

Anda juga dapat memverifikasi status objek yang dihapus dengan menggunakan operasi HeadObject API dari AWS Command Line Interface (AWS CLI). Untuk menggunakannya, ganti perintah head-object dengan user input placeholders informasi Anda sendiri:

aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html

Jika Anda menjalankan perintah head-object pada objek berversi yang versinya saat ini adalah penanda hapus, Anda akan menerima kesalahan 404 Tidak Ditemukan. Misalnya:

Terjadi kesalahan (404) saat memanggil HeadObject operasi: Tidak Ditemukan

Jika Anda menjalankan perintah head-object pada objek berversi dan memberikan ID versi objek, Amazon S3 mengambil metadata objek, mengonfirmasi bahwa objek tersebut masih ada dan tidak dihapus secara permanen.

aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html --version-id versionID

{
"AcceptRanges": "bytes",
"ContentType": "text/html",
"LastModified": "Thu, 16 Apr 2015 18:19:14 GMT",
"ContentLength": 77,
"VersionId": "Zg5HyL7m.eZU9iM7AVlJkrqAiE.0UG4q",
"ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"",
"Metadata": {}
}

Jika objek ditemukan dan versi terbaru adalah penanda hapus, versi objek sebelumnya masih akan ada. Karena penanda hapus adalah versi objek saat ini, Anda dapat memulihkan objek dengan menghapus penanda hapus.

Setelah Anda menghapus penanda hapus secara permanen, versi terbaru kedua dari objek akan menjadi versi objek saat ini, sehingga objek Anda akan kembali tersedia. Untuk gambaran visual tentang bagaimana objek dipulihkan, lihat Menghapus penanda hapus.

Untuk menghapus versi objek tertentu, Anda harus menjadi pemilik bucket. Untuk menghapus penanda hapus secara permanen, Anda harus menyertakan ID versinya dalam permintaan DeleteObject. Untuk menghapus penanda hapus, gunakan perintah berikut, lalu ganti user input placeholders dengan informasi Anda sendiri:

aws s3api delete-object --bucket amzn-s3-demo-bucket --key index.html --version-id versionID

Untuk informasi selengkapnya tentang perintah delete-object, lihat delete-object di Referensi Perintah AWS CLI . Untuk informasi selengkapnya tentang cara menghapus penanda hapus secara permanen, lihat. Mengelola penanda hapus

Saya ingin menghapus objek berversi secara permanen

Pada bucket dengan Penentuan Versi diaktifkan, permintaan DELETE tanpa ID versi tidak dapat menghapus objek secara permanen. Sebaliknya, permintaan semacam itu akan menyisipkan penanda hapus.

Untuk menghapus objek berversi secara permanen, Anda dapat memilih dari metode berikut:

  • Buat aturan Siklus Hidup S3 untuk menghapus versi tidak terkini secara permanen. Untuk menghapus versi tidak terkini secara permanen, pilih Hapus versi objek tidak terkini secara permanen, lalu masukkan nomor di bawah Hari setelah objek menjadi tidak terkini. Anda dapat secara opsional menentukan jumlah versi yang lebih baru untuk dipertahankan dengan memasukkan nilai di bawah Jumlah versi yang lebih baru untuk dipertahankan. Untuk informasi selengkapnya tentang membuat aturan ini, lihat Menyetel konfigurasi Siklus Hidup S3.

  • Hapus versi tertentu dengan menyertakan ID versi dalam permintaan DELETE. Untuk informasi selengkapnya, lihat Cara menghapus objek berversi secara permanen.

  • Buat aturan siklus hidup untuk mengakhiri versi saat ini. Untuk mengakhiri versi objek saat ini, pilih Akhiri versi objek saat ini, lalu tambahkan angka di bawah Hari setelah pembuatan objek. Untuk informasi selengkapnya tentang membuat aturan siklus hidup ini, lihat Mengatur konfigurasi Siklus Hidup S3.

  • Untuk menghapus semua objek berversi dan menghapus penanda secara permanen, buat dua aturan siklus hidup: satu untuk mengakhiri versi saat ini dan menghapus versi objek yang tidak terkini secara permanen, dan yang lainnya untuk menghapus penanda hapus objek yang kedaluwarsa.

Dalam bucket dengan Penentuan Versi yang diaktifkan, permintaan DELETE yang tidak menentukan ID versi hanya dapat menghapus objek dengan ID versi NULL. Jika objek diunggah saat Penentuan Versi diaktifkan, permintaan DELETEyang tidak menentukan ID versi akan membuat penanda hapus dari objek tersebut.

catatan

Untuk bucket berkemampuan Kunci Objek S3, permintaan objek DELETE dengan ID versi objek yang dilindungi menyebabkan kesalahan 403 Akses Ditolak. Permintaan objek DELETE tanpa ID versi menambahkan penanda hapus sebagai versi terbaru dari objek dengan respons 200 OK. Objek yang dilindungi oleh Kunci Objek tidak dapat dihapus secara permanen sampai periode retensi dan penahanan hukumnya dihapus. Untuk informasi selengkapnya, lihat Cara kerja Kunci Objek S3.

Saya mengalami penurunan kinerja setelah mengaktifkan Penentuan Versi bucket

Penurunan kinerja dapat terjadi pada bucket berkemampuan Penentuan Versi jika ada terlalu banyak penanda hapus atau objek berversi, dan jika praktik terbaik tidak diikuti.

Terlalu banyak penanda hapus

Setelah Anda mengaktifkan Penentuan Versi pada bucket, permintaan DELETE tanpa ID versi yang dibuat pada objek akan membuat penanda hapus dengan ID versi unik. Konfigurasi siklus hidup dengan aturan Akhiri versi objek saat ini menambahkan penanda hapus dengan ID versi unik ke setiap objek. Penanda hapus yang berlebihan dapat mengurangi kinerja dalam bucket.

Saat Penentuan Versi ditangguhkan pada bucket, Amazon S3 menandai ID versi sebagai NULL pada objek yang baru dibuat. Tindakan pengakhiran dalam bucket yang ditangguhkan Penentuan Versi menyebabkan Amazon S3 membuat penanda hapus dengan NULL sebagai ID versi. Dalam bucket yang ditangguhkan Penentuan Versi, penanda hapus NULL dibuat untuk permintaan penghapusan apa pun. Penanda hapus NULL ini juga disebut penanda hapus objek kedaluwarsa ketika semua versi objek dihapus dan hanya satu penanda hapus yang tersisa. Jika terlalu banyak penanda hapus NULL yang terakumulasi, akan terjadi penurunan kinerja dalam bucket.

Terlalu banyak objek berversi

Jika bucket berkemampuan Penentuan Versi berisi objek dengan jutaan versi, peningkatan kesalahan 503 Layanan Tidak Tersedia dapat terjadi. Jika Anda menyadari adanya peningkatan signifikan dalam jumlah HTTP 503 Layanan Tidak Tersedia yang diterima untuk permintaan objek PUT atau DELETE ke bucket dengan Penentuan Versi yang diaktifkan, Anda kemungkinan memiliki satu atau beberapa objek dalam bucket yang memiliki jutaan versi. Jika Anda memiliki objek dengan jutaan versi, Amazon S3 secara otomatis membatasi permintaan ke bucket tersebut. Permintaan pembatasan melindungi bucket Anda dari jumlah lalu lintas permintaan yang berlebihan, yang dapat berpotensi mengganggu permintaan lain yang dilakukan ke bucket yang sama.

Untuk menentukan objek mana yang memiliki jutaan versi, gunakan Inventaris S3. S3 Inventory menghasilkan laporan yang menyediakan daftar file datar dari objek dalam bucket. Untuk informasi selengkapnya, lihat Membuat katalog dan menganalisis data Anda dengan S3 Inventory.

Untuk memverifikasi apakah ada banyak objek berversi dalam bucket, gunakan metrik Lensa Penyimpanan S3 untuk melihat Jumlah objek versi saat ini, Jumlah objek versi tidak terkini, dan Jumlah objek penanda hapus. Untuk informasi lebih lanjut tentang metrik Lensa Penyimpanan, silakan lihat Glosarium metrik Lensa Penyimpanan Amazon S3.

Tim Amazon S3 menganjurkan pelanggan untuk menyelidiki aplikasi yang berulang kali menimpa objek yang sama, yang berpotensi menciptakan jutaan versi untuk objek tersebut, sehingga memastikan apakah aplikasi bekerja sebagaimana mestinya. Misalnya, aplikasi menimpa objek yang sama setiap menit selama seminggu dapat membuat lebih dari sepuluh ribu versi. Kami merekomendasikan menyimpan kurang dari seratus ribu versi untuk setiap objek. Jika Anda memiliki kasus penggunaan yang membutuhkan jutaan versi untuk satu atau lebih objek, hubungi AWS Dukungan tim untuk bantuan dalam menentukan solusi yang lebih baik.

Praktik terbaik

Untuk mencegah masalah penurunan performa terkait Penentuan Versi, kami sarankan Anda menerapkan praktik terbaik berikut:

  • Aktifkan aturan siklus hidup untuk mengakhiri versi objek sebelumnya. Misalnya, Anda dapat membuat aturan siklus hidup untuk mengakhiri versi tidak terkini setelah 30 hari objek menjadi tidak terkini. Anda juga dapat mempertahankan beberapa versi tidak terkini jika Anda tidak ingin menghapus semuanya. Untuk informasi selengkapnya, lihat Mengatur konfigurasi Siklus Hidup S3.

  • Aktifkan aturan siklus hidup untuk menghapus penanda penghapusan objek kedaluwarsa yang tidak memiliki objek data terkait di bucket. Untuk informasi selengkapnya, lihat Menghapus penanda hapus objek kedaluwarsa.

Untuk praktik terbaik pengoptimalan kinerja Amazon S3 tambahan, lihat Pola desain praktik terbaik.