Memecahkan masalah replikasi - Amazon Simple Storage Service

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

Memecahkan masalah replikasi

Bagian ini mencantumkan tips pemecahan masalah untuk Replikasi Amazon S3 dan informasi tentang kesalahan Replikasi Batch S3.

Kiat pemecahan masalah untuk Replikasi S3

Jika replika objek tidak muncul di bucket tujuan setelah Anda mengonfigurasi replikasi, gunakan kiat pemecahan masalah ini untuk mengidentifikasi dan memperbaiki masalah.

  • Mayoritas objek bereplikasi dalam 15 menit. Waktu yang dibutuhkan Amazon S3 untuk mereplikasi suatu objek tergantung pada beberapa faktor, termasuk pasangan Wilayah sumber dan tujuan, serta ukuran objek. Untuk objek besar, replikasi dapat memakan waktu hingga beberapa jam. Untuk visibilitas waktu replikasi, Anda dapat menggunakan Kontrol Waktu Replikasi S3 (S3 RTC).

    Jika objek yang direplikasi berukuran besar, tunggu beberapa saat sebelum memeriksa apakah objek tersebut muncul di tempat tujuan. Anda juga dapat memeriksa status replikasi objek sumber. Jika status replikasi objekPENDING, Amazon S3 belum menyelesaikan replikasi. Jika status replikasi objek adalah FAILED, periksa konfigurasi replikasi yang ditetapkan pada bucket sumber.

    Selain itu, untuk menerima informasi tentang kegagalan selama replikasi, Anda dapat mengatur replikasi Notifikasi Peristiwa Amazon S3 agar menerima peristiwa kegagalan. Untuk informasi lebih lanjut, lihat Menerima peristiwa kegagalan replikasi dengan Notifikasi Peristiwa Amazon S3.

  • Untuk memeriksa status replikasi objek, Anda dapat memanggil operasi HeadObject API. Operasi HeadObject API mengembalikanPENDING,COMPLETED, atau status FAILED replikasi objek. Dalam menanggapi panggilan HeadObject API, status replikasi dikembalikan di x-amz-replication-status header.

    catatan

    Untuk menjalankan HeadObject, Anda harus memiliki akses baca ke objek yang Anda minta. Permintaan HEAD memiliki opsi yang sama dengan permintaan GET, tanpa melakukan operasi GET. Misalnya, untuk menjalankan HeadObject permintaan dengan menggunakan AWS Command Line Interface (AWS CLI), Anda dapat menjalankan perintah berikut. Ganti user input placeholders dengan informasi Anda sendiri.

    aws s3api head-object --bucket amzn-s3-demo-source-bucket --key index.html
  • Jika HeadObject mengembalikan objek dengan status FAILED replikasi, Anda dapat menggunakan Replikasi Batch S3 untuk mereplikasi objek yang gagal tersebut. Untuk informasi selengkapnya, lihat Mereplikasi objek yang ada dengan Batch Replication. Atau, Anda dapat mengunggah ulang objek yang gagal ke bucket sumber, yang akan memulai replikasi untuk objek baru.

  • Dalam konfigurasi replikasi pada bucket sumber, verifikasi hal berikut:

    • Amazon Resource Name (ARN) dari bucket tujuan sudah benar.

    • Prefiks nama kunci sudah benar. Misalnya, jika Anda mengatur konfigurasi agar mereplikasi objek dengan prefiks Tax, maka hanya objek dengan nama kunci seperti Tax/document1 atau Tax/document2 yang direplikasi. Objek dengan nama kunci document3 tidak direplikasi.

    • Status dari aturan replikasi adalah Enabled.

  • Verifikasi bahwa pembuatan versi belum ditangguhkan pada bucket apa pun dalam konfigurasi replikasi. Bucket sumber dan tujuan harus memiliki penentuan versi yang diaktifkan.

  • Jika aturan replikasi disetel ke Ubah kepemilikan objek ke pemilik bucket tujuan, maka peran AWS Identity and Access Management (IAM) yang digunakan untuk replikasi harus memiliki izin. s3:ObjectOwnerOverrideToBucketOwner Izin ini diberikan pada sumber daya (dalam hal ini, bucket tujuan). Misalnya, pernyataan Resource berikut menunjukkan cara memberikan izin ini di bucket tujuan:

    { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }
  • Jika bucket tujuan dimiliki oleh akun lain, pemilik bucket tujuan juga harus memberikan izin s3:ObjectOwnerOverrideToBucketOwner kepada pemilik bucket sumber melalui kebijakan bucket tujuan. Untuk menggunakan kebijakan bucket contoh berikut, ganti user input placeholders dengan informasi Anda sendiri:

    { "Version": "2012-10-17", "Id": "Policy1644945280205", "Statement": [ { "Sid": "Stmt1644945277847", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-replication-role" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] }
    catatan

    Jika setelan kepemilikan objek bucket tujuan menyertakan Diberlakukan oleh pemilik bucket, maka Anda tidak perlu memperbarui setelan ke Ubah kepemilikan objek ke pemilik bucket tujuan dalam aturan replikasi. Perubahan kepemilikan objek akan terjadi secara default. Untuk informasi selengkapnya tentang mengubah kepemilikan replika, lihat Mengubah pemilik replika.

  • Jika Anda menyetel konfigurasi replikasi dalam skenario lintas akun, di mana bucket sumber dan tujuan dimiliki oleh yang berbeda Akun AWS, bucket tujuan tidak dapat dikonfigurasi sebagai bucket Requester Pays. Untuk informasi selengkapnya, lihat Menggunakan bucket Pembayaran Pemohon untuk transfer dan penggunaan penyimpanan.

  • Jika objek sumber bucket dienkripsi dengan menggunakan enkripsi sisi server dengan AWS Key Management Service (AWS KMS) keys (SSE-KMS), maka aturan replikasi harus dikonfigurasi untuk menyertakan objek -enkripsi. AWS KMS Pastikan untuk memilih Replikasi objek yang dienkripsi AWS KMS di bawah pengaturan Enkripsi Anda di konsol Amazon S3. Kemudian, pilih AWS KMS kunci untuk mengenkripsi objek tujuan.

    catatan

    Jika bucket tujuan berada di akun yang berbeda, tentukan kunci yang dikelola AWS KMS pelanggan yang dimiliki oleh akun tujuan. Jangan gunakan kunci terkelola Amazon S3 default (aws/s3). Menggunakan kunci default mengenkripsi objek dengan kunci terkelola Amazon S3 yang dimiliki oleh akun sumber, mencegah objek dibagikan dengan akun lain. Akibatnya, akun tujuan tidak akan dapat mengakses objek di bucket tujuan.

    Untuk menggunakan AWS KMS kunci milik akun tujuan untuk mengenkripsi objek tujuan, akun tujuan harus memberikan kms:GenerateDataKey dan kms:Encrypt izin untuk peran replikasi dalam kebijakan kunci KMS. Untuk menggunakan contoh pernyataan berikut ini dalam kebijakan kunci KMS Anda, ganti user input placeholders dengan informasi Anda sendiri:

    { "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-replication-role" }, "Action": ["kms:GenerateDataKey", "kms:Encrypt"], "Resource": "*" }

    Jika Anda menggunakan tanda bintang (*) untuk pernyataan Resource dalam kebijakan kunci AWS KMS , kebijakan akan memberikan izin untuk menggunakan kunci KMS hanya pada peran replikasi. Kebijakan ini tidak mengizinkan peran replikasi untuk meningkatkan izinnya.

    Secara default, kebijakan kunci KMS memberikan izin penuh kepada pengguna root ke kunci tersebut. Izin ini dapat didelegasikan ke pengguna lain di akun yang sama. Kecuali terdapat pernyataan Deny dalam kebijakan kunci KMS sumber, menggunakan kebijakan IAM untuk memberikan izin peran replikasi ke kunci KMS sumber sudah cukup.

    catatan

    Kebijakan utama KMS yang membatasi akses ke rentang CIDR tertentu, titik akhir virtual private cloud (VPC), atau titik akses S3 dapat menyebabkan replikasi gagal.

    Jika kunci KMS sumber atau tujuan memberikan izin berdasarkan konteks enkripsi, konfirmasikan bahwa Kunci Bucket Amazon S3 diaktifkan untuk bucket. Jika bucket mengaktifkan Kunci Bucket S3, konteks enkripsi harus berupa sumber daya tingkat bucket, seperti ini:

    "kms:EncryptionContext:arn:aws:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] "kms:EncryptionContext:arn:aws:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ]

    Selain izin yang diberikan oleh kebijakan kunci KMS, akun sumber harus menambahkan izin minimum berikut ke kebijakan IAM peran replikasi:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "Source-KMS-Key-ARN" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "Destination-KMS-Key-ARN" ] }

    Untuk informasi selengkapnya tentang cara mereplikasi objek yang dienkripsi AWS KMS, lihat Mereplikasi objek terenkripsi.

  • Jika bucket tujuan dimiliki oleh yang lain Akun AWS, verifikasi bahwa pemilik bucket memiliki kebijakan bucket pada bucket tujuan yang memungkinkan pemilik bucket sumber untuk mereplikasi objek. Sebagai contoh, lihat Mengkonfigurasi replikasi untuk bucket di akun yang berbeda.

  • Untuk menggunakan Object Lock dengan replikasi, Anda harus memberikan dua izin tambahan pada bucket S3 sumber dalam peran AWS Identity and Access Management (IAM) yang Anda gunakan untuk mengatur replikasi. Dua izin tambahan tersebut adalah s3:GetObjectRetention dans3:GetObjectLegalHold. Jika peran tersebut memiliki pernyataan izin s3:Get*, pernyataan itu memenuhi persyaratan. Untuk informasi selengkapnya, lihat Menggunakan Kunci Objek dengan Replikasi S3.

  • Jika objek Anda masih tidak bereplikasi setelah Anda memvalidasi izin, periksa pernyataan Deny eksplisit di lokasi berikut:

    • Pernyataan Deny dalam kebijakan bucket sumber atau tujuan. Replikasi gagal jika kebijakan bucket menghalangi akses ke peran replikasi untuk tindakan-tindakan berikut:

      Bucket sumber:

      "s3:GetReplicationConfiguration", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging"

      Bucket tujuan:

      "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags"
    • Pernyataan atau batasan izin Deny yang dilampirkan pada peran IAM dapat menyebabkan replikasi gagal.

    • Denypernyataan dalam kebijakan kontrol AWS Organizations layanan (SCPs) yang dilampirkan ke akun sumber atau tujuan dapat menyebabkan replikasi gagal.

    • Denypernyataan dalam kebijakan kontrol AWS Organizations sumber daya (RCPs) yang dilampirkan ke bucket sumber atau tujuan dapat menyebabkan replikasi gagal.

  • Jika replika objek tidak muncul di bucket tujuan, masalah berikut mungkin dapat mencegah replikasi:

    • Amazon S3 tidak mereplikasi objek dalam bucket sumber yang merupakan replika yang dibuat oleh konfigurasi replikasi lain. Misalnya, jika Anda mengatur konfigurasi replikasi dari bucket A ke bucket B ke bucket C, Amazon S3 tidak mereplikasi replika objek di bucket B ke bucket C.

    • Pemilik bucket sumber dapat memberikan Akun AWS izin lain untuk mengunggah objek. Secara default, pemilik bucket sumber tidak memiliki izin untuk objek yang dibuat oleh akun lain. Konfigurasi replikasi hanya mereplikasi objek yang izin aksesnya dimiliki pemilik bucket sumber. Untuk menghindari masalah ini, pemilik bucket sumber dapat memberikan Akun AWS izin lain untuk membuat objek secara kondisional, yang memerlukan izin akses eksplisit pada objek tersebut. Untuk contoh kebijakan, lihat Berikan izin lintas akun untuk unggah objek sekaligus memastikan bahwa pemilik bucket memiliki kendali penuh.

  • Misalkan bahwa dalam konfigurasi replikasi, Anda menambahkan aturan untuk mereplikasi subset objek yang memiliki tag tertentu. Dalam kasus ini, Anda harus menetapkan kunci dan nilai tag spesifik pada saat objek dibuat agar Amazon S3 mereplikasi objek. Jika Anda membuat objek terlebih dahulu lalu menambahkan tag ke objek yang sudah ada, Amazon S3 tidak akan mereplikasi objek.

  • Gunakan Pemberitahuan Acara Amazon S3 untuk memberi tahu Anda tentang kejadian saat objek tidak mereplikasi ke tujuannya. Wilayah AWS Pemberitahuan Acara Amazon S3 tersedia melalui Amazon Simple Queue Service (Amazon SQS), Amazon Simple Notification Service (Amazon SNS), atau. AWS Lambda Untuk informasi selengkapnya, lihat Menerima peristiwa kegagalan replikasi dengan Notifikasi Peristiwa Amazon S3.

    Anda juga dapat melihat alasan kegagalan replikasi dengan menggunakan Notifikasi Peristiwa Amazon S3. Untuk meninjau daftar alasan kegagalan, lihat Alasan kegagalan replikasi Amazon S3.

Kesalahan Replikasi Batch

Untuk memecahkan masalah objek yang tidak bereplikasi ke bucket tujuan, periksa berbagai jenis izin untuk bucket, peran replikasi, dan peran IAM yang digunakan untuk membuat pekerjaan Replikasi Batch. Juga, pastikan untuk memeriksa pengaturan Blokir Akses Publik dan pengaturan Kepemilikan Objek S3 untuk bucket Anda.

Untuk tips pemecahan masalah tambahan untuk bekerja dengan Operasi Batch, lihat. Pemecahan Masalah Operasi Batch

Saat menggunakan Replikasi Batch, Anda mungkin akan menjumpai salah satu kesalahan berikut:

  • Pembuatan manifes tidak menemukan kunci yang cocok dengan kriteria filter.

    Kesalahan ini terjadi karena salah satu alasan berikut:

    • Saat objek di bucket sumber disimpan di kelas penyimpanan S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive.

      Untuk menggunakan Replikasi Batch pada objek ini, pertama-tama kembalikan ke kelas penyimpanan Standar S3 dengan menggunakan operasi Restore (S3InitiateRestoreObjectOperation) dalam pekerjaan Operasi Batch. Untuk informasi selengkapnya, lihat Memulihkan objek yang diarsipkan dan Memulihkan objek (Operasi Batch). Setelah Anda memulihkan objek, Anda dapat mereplikasi mereka dengan menggunakan pekerjaan Replikasi Batch.

    • Jika kriteria filter yang diberikan tidak cocok dengan objek yang valid di bucket sumber.

      Verifikasi dan perbaiki kriteria filter. Misalnya, dalam aturan Replikasi Batch, kriteria filter mencari semua objek di bucket sumber dengan awalanTax/. Jika nama awalan dimasukkan secara tidak akurat, dengan garis miring di awal dan akhir, /Tax/ bukan hanya di akhir, maka tidak ada objek S3 yang ditemukan. Untuk mengatasi kesalahan, perbaiki awalan, dalam hal ini, dari /Tax/ ke Tax/ dalam aturan replikasi.

  • Status operasi batch gagal karena alasan: Laporan pekerjaan tidak dapat ditulis ke bucket laporan Anda.

    Kesalahan ini terjadi jika peran IAM yang digunakan untuk pekerjaan Operasi Batch tidak dapat menempatkan laporan penyelesaian ke lokasi yang ditentukan saat Anda membuat pekerjaan. Untuk mengatasi kesalahan ini, periksa apakah peran IAM memiliki s3:PutObject izin untuk bucket tempat Anda ingin menyimpan laporan penyelesaian Operasi Batch. Kami merekomendasikan untuk mengirimkan laporan ke ember yang berbeda dari ember sumber.

    Untuk tips tambahan tentang mengatasi kesalahan ini, lihatLaporan pekerjaan tidak terkirim saat ada masalah izin atau mode retensi Kunci Objek S3 diaktifkan.

  • Operasi Batch selesai dengan kegagalan dan Total gagal bukan 0.

    Kesalahan ini terjadi jika terdapat masalah izin objek yang tidak memadai dengan pekerjaan Replikasi Batch yang sedang berjalan. Jika Anda menggunakan aturan replikasi untuk pekerjaan Replikasi Batch, pastikan bahwa peran IAM yang digunakan untuk replikasi memiliki izin yang tepat untuk mengakses objek baik dari keranjang sumber atau tujuan. Anda juga dapat memeriksa Laporan penyelesaian Replikasi Batch untuk meninjau alasan kegagalan replikasi Amazon S3 tertentu.

  • Pekerjaan batch berhasil berjalan tetapi jumlah objek yang diharapkan di bucket tujuan tidak sama.

    Kesalahan ini terjadi ketika ada ketidakcocokan antara objek yang tercantum dalam manifes yang disediakan dalam tugas Replikasi Batch dan filter yang Anda pilih saat membuat pekerjaan. Anda mungkin juga menerima pesan ini jika objek di bucket sumber Anda tidak cocok dengan aturan replikasi apa pun dan tidak disertakan dalam manifes yang dihasilkan.

Kegagalan Operasi Batch terjadi setelah menambahkan aturan replikasi baru ke konfigurasi replikasi yang ada

Operasi Batch mencoba melakukan replikasi objek yang ada untuk setiap aturan dalam konfigurasi replikasi bucket sumber. Jika ada masalah dengan salah satu aturan replikasi yang ada, kegagalan dapat terjadi.

Laporan penyelesaian pekerjaan Operasi Batch menjelaskan alasan kegagalan pekerjaan. Untuk daftar kesalahan umum, lihat Penyebab kegagalan replikasi Amazon S3.