Replikasi lintas cluster untuk Layanan Amazon OpenSearch - OpenSearch Layanan Amazon

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

Replikasi lintas cluster untuk Layanan Amazon OpenSearch

Dengan replikasi lintas klaster di Amazon OpenSearch Service, Anda dapat mereplikasi indeks, pemetaan, dan metadata pengguna dari satu domain Layanan ke domain Layanan lainnya. OpenSearch Menggunakan replikasi lintas cluster membantu memastikan pemulihan bencana jika terjadi pemadaman, dan memungkinkan Anda mereplikasi data di seluruh pusat data yang jauh secara geografis untuk mengurangi latensi. Anda membayar biaya transfer AWS data standar untuk data yang ditransfer antar domain.

Replikasi lintas cluster mengikuti model replikasi aktif-pasif di mana indeks lokal atau pengikut menarik data dari indeks jarak jauh atau pemimpin. Indeks pemimpin mengacu pada sumber data, atau indeks tempat Anda ingin mereplikasi data. Indeks pengikut mengacu pada target untuk data, atau indeks yang ingin Anda replikasi data.

Replikasi lintas-cluster tersedia di domain yang menjalankan Elasticsearch 7.10 atau 1.1 atau yang lebih baru. OpenSearch Dokumentasi lengkap untuk replikasi lintas cluster tersedia dalam dokumentasi. OpenSearch

Batasan

Replikasi lintas cluster memiliki keterbatasan sebagai berikut:

  • Anda tidak dapat mereplikasi data antara domain OpenSearch Layanan Amazon dan cluster yang dikelola sendiri OpenSearch atau Elasticsearch.

  • Anda tidak dapat mereplikasi indeks dari domain pengikut ke domain pengikut lain. Jika Anda ingin mereplikasi indeks ke beberapa domain pengikut, Anda hanya dapat mereplikasi indeks dari domain pemimpin tunggal.

  • Sebuah domain dapat dihubungkan, melalui kombinasi koneksi inbound dan outbound, hingga maksimal 20 domain lainnya.

  • Saat Anda pertama kali menyiapkan koneksi lintas-cluster, domain pemimpin harus berada pada versi yang sama atau lebih tinggi dari domain pengikut.

  • Anda tidak dapat menggunakan AWS CloudFormation untuk menghubungkan domain.

  • Anda tidak dapat menggunakan replikasi lintas cluster pada instance M3 atau burstable (T2 dan T3).

  • Anda tidak dapat mereplikasi data antara UltraWarm atau indeks dingin. Kedua indeks harus dalam penyimpanan panas.

  • Saat Anda menghapus indeks dari domain pemimpin, indeks yang sesuai pada domain pengikut tidak akan dihapus secara otomatis.

Prasyarat

Sebelum menyiapkan replikasi lintas klaster, pastikan domain Anda memenuhi persyaratan berikut:

Persyaratan izin

Untuk memulai replikasi, Anda harus menyertakan es:ESCrossClusterGet izin pada domain jarak jauh (pemimpin). Kami merekomendasikan kebijakan IAM berikut pada domain jarak jauh. Kebijakan ini juga memungkinkan Anda melakukan operasi lain, seperti mengindeks dokumen dan melakukan penelusuran standar:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/leader-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/leader-domain" } ] }

Pastikan bahwa izin es:ESCrossClusterGet diterapkan untuk /leader-domain dan bukan /leader-domain/*.

Agar pengguna non-admin dapat melakukan aktivitas replikasi, mereka juga perlu dipetakan ke izin yang sesuai. Sebagian besar izin sesuai dengan operasi REST API tertentu. Misalnya, indices:admin/plugins/replication/index/_resume izin memungkinkan Anda melanjutkan replikasi indeks. Untuk daftar lengkap izin, lihat Izin replikasi dalam dokumentasi. OpenSearch

catatan

Perintah untuk memulai replikasi dan membuat aturan replikasi adalah kasus khusus. Karena mereka memanggil proses latar belakang pada domain pemimpin dan pengikut, Anda harus lulus leader_cluster_role dan follower_cluster_role dalam permintaan. OpenSearch Layanan menggunakan peran ini dalam semua tugas replikasi backend. Untuk informasi tentang pemetaan dan penggunaan peran ini, lihat Memetakan peran klaster pemimpin dan pengikut dalam dokumentasi. OpenSearch

Siapkan koneksi lintas-cluster

Untuk mereplikasi indeks dari satu domain ke domain lainnya, Anda perlu menyiapkan koneksi lintas-cluster antar domain. Cara termudah untuk menghubungkan domain adalah melalui tab Koneksi pada dasbor domain. Anda juga dapat menggunakan API konfigurasi atau AWSCLI. Karena replikasi lintas cluster mengikuti model “tarik”, Anda memasukkan koneksi dari domain pengikut.

catatan

Jika sebelumnya Anda menghubungkan dua domain untuk melakukan pencarian lintas klaster, Anda tidak dapat menggunakan koneksi yang sama untuk replikasi. Koneksi ditandai seperti SEARCH_ONLY di konsol. Untuk melakukan replikasi antara dua domain yang terhubung sebelumnya, Anda harus menghapus koneksi dan membuatnya kembali. Setelah Anda melakukan ini, koneksi tersedia untuk pencarian lintas cluster dan replikasi lintas-cluster.

Untuk mengatur koneksi
  1. Di konsol OpenSearch Layanan Amazon, pilih domain pengikut, buka tab Koneksi, dan pilih Permintaan.

  2. Untuk alias Koneksi, masukkan nama untuk koneksi Anda.

  3. Pilih antara menghubungkan ke domain di wilayah Anda Akun AWS atau di akun atau Wilayah lain.

    • Untuk terhubung ke domain di Wilayah Akun AWS dan Anda, pilih domain dan pilih Permintaan.

    • Untuk terhubung ke domain di wilayah lain Akun AWS atau wilayah, tentukan ARN dari domain jarak jauh dan pilih Permintaan.

OpenSearch Layanan memvalidasi permintaan koneksi. Jika domain tidak kompatibel, koneksi gagal. Jika validasi berhasil, validasi dikirim ke domain tujuan untuk persetujuan. Ketika domain tujuan menyetujui permintaan, Anda dapat memulai replikasi.

Replikasi lintas cluster mendukung replikasi dua arah. Ini berarti Anda dapat membuat koneksi keluar dari domain A ke domain B, dan koneksi keluar lainnya dari domain B ke domain A. Anda kemudian dapat mengatur replikasi sehingga domain A mengikuti indeks di domain B, dan domain B mengikuti indeks di domain A.

Memulai replikasi

Setelah Anda membuat koneksi lintas cluster, Anda dapat mulai mereplikasi data. Pertama, buat indeks pada domain pemimpin untuk ditiru:

PUT leader-01

Untuk mereplikasi indeks itu, kirim perintah ini ke domain pengikut:

PUT _plugins/_replication/follower-01/_start { "leader_alias": "connection-alias", "leader_index": "leader-01", "use_roles":{ "leader_cluster_role": "all_access", "follower_cluster_role": "all_access" } }

Anda dapat menemukan alias koneksi di tab Connections di dasbor domain Anda.

Contoh ini mengasumsikan bahwa admin mengeluarkan permintaan dan penggunaan all_access untuk dan untuk leader_cluster_role kesederhanaanfollower_cluster_role. Namun, di lingkungan produksi, kami menyarankan Anda membuat pengguna replikasi pada indeks pemimpin dan pengikut, dan memetakannya sesuai dengan itu. Nama pengguna harus identik. Untuk informasi tentang peran ini dan cara memetakannya, lihat Memetakan peran klaster pemimpin dan pengikut dalam OpenSearch dokumentasi.

Konfirmasikan replikasi

Untuk mengonfirmasi bahwa replikasi sedang terjadi, dapatkan status replikasi:

GET _plugins/_replication/follower-01/_status { "status" : "SYNCING", "reason" : "User initiated", "leader_alias" : "connection-alias", "leader_index" : "leader-01", "follower_index" : "follower-01", "syncing_details" : { "leader_checkpoint" : -5, "follower_checkpoint" : -5, "seq_no" : 0 } }

Nilai pos pemeriksaan pemimpin dan pengikut dimulai sebagai bilangan bulat negatif dan mencerminkan jumlah pecahan yang Anda miliki (-1 untuk satu pecahan, -5 untuk lima pecahan, dan seterusnya). Nilai bertambah menjadi bilangan bulat positif dengan setiap perubahan yang Anda buat. Jika nilainya sama, itu berarti indeks disinkronkan sepenuhnya. Anda dapat menggunakan nilai pos pemeriksaan ini untuk mengukur latensi replikasi di seluruh domain Anda.

Untuk memvalidasi replikasi lebih lanjut, tambahkan dokumen ke indeks pemimpin:

PUT leader-01/_doc/1 { "Doctor Sleep":"Stephen King" }

Dan konfirmasikan bahwa itu muncul di indeks pengikut:

GET follower-01/_search { ... "max_score" : 1.0, "hits" : [ { "_index" : "follower-01", "_type" : "_doc", "_id" : "1", "_score" : 1.0, "_source" : { "Doctor Sleep" : "Stephen King" } } ] } }

Jeda dan lanjutkan replikasi

Anda dapat menghentikan sementara replikasi jika perlu memperbaiki masalah atau mengurangi beban pada domain pemimpin. Kirim permintaan ini ke domain pengikut. Pastikan untuk menyertakan badan permintaan kosong:

POST _plugins/_replication/follower-01/_pause {}

Kemudian dapatkan status untuk memastikan bahwa replikasi dijeda:

GET _plugins/_replication/follower-01/_status { "status" : "PAUSED", "reason" : "User initiated", "leader_alias" : "connection-alias", "leader_index" : "leader-01", "follower_index" : "follower-01" }

Setelah selesai membuat perubahan, lanjutkan replikasi. Kirim permintaan ini ke domain pengikut. Pastikan untuk menyertakan badan permintaan kosong:

POST _plugins/_replication/follower-01/_resume {}

Anda tidak dapat melanjutkan replikasi setelah dijeda selama lebih dari 12 jam. Anda harus menghentikan replikasi, menghapus indeks pengikut, dan memulai ulang replikasi pemimpin.

Hentikan replikasi

Ketika Anda menghentikan replikasi sepenuhnya, indeks pengikut berhenti mengikuti pemimpin dan menjadi indeks standar. Anda tidak dapat memulai ulang replikasi setelah Anda menghentikannya.

Hentikan replikasi dari domain pengikut. Pastikan untuk menyertakan badan permintaan kosong:

POST _plugins/_replication/follower-01/_stop {}

Ikuti otomatis

Anda dapat menentukan seperangkat aturan replikasi terhadap domain pemimpin tunggal yang secara otomatis mereplikasi indeks yang cocok dengan pola tertentu. Ketika indeks pada domain pemimpin cocok dengan salah satu pola (misalnya,books*), indeks pengikut yang cocok dibuat pada domain pengikut. OpenSearch Layanan mereplikasi indeks yang ada yang cocok dengan pola, serta indeks baru yang Anda buat. Itu tidak mereplikasi indeks yang sudah ada di domain pengikut.

Untuk mereplikasi semua indeks (dengan pengecualian indeks yang dibuat sistem, dan indeks yang sudah ada di domain pengikut), gunakan pola wildcard (). *

Buat aturan replikasi

Buat aturan replikasi pada domain pengikut, dan tentukan nama koneksi lintas-cluster:

POST _plugins/_replication/_autofollow { "leader_alias" : "connection-alias", "name": "rule-name", "pattern": "books*", "use_roles":{ "leader_cluster_role": "all_access", "follower_cluster_role": "all_access" } }

Anda dapat menemukan alias koneksi di tab Connections di dasbor domain Anda.

Contoh ini mengasumsikan bahwa admin mengeluarkan permintaan, dan digunakan all_access sebagai peran domain pemimpin dan pengikut untuk kesederhanaan. Namun, di lingkungan produksi, kami menyarankan Anda membuat pengguna replikasi pada indeks pemimpin dan pengikut dan memetakannya sesuai dengan itu. Nama pengguna harus identik. Untuk informasi tentang peran ini dan cara memetakannya, lihat Memetakan peran klaster pemimpin dan pengikut dalam OpenSearch dokumentasi.

Untuk mengambil daftar aturan replikasi yang ada di domain, gunakan operasi API statistik ikuti otomatis.

Untuk menguji aturan, buat indeks yang cocok dengan pola pada domain pemimpin:

PUT books-are-fun

Dan periksa apakah replika muncul di domain pengikut:

GET _cat/indices health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open books-are-fun ldfHO78xYYdxRMULuiTvSQ 1 1 0 0 208b 208b

Hapus aturan replikasi

Saat Anda menghapus aturan replikasi, OpenSearch Service berhenti mereplikasi indeks baru yang cocok dengan pola, tetapi melanjutkan aktivitas replikasi yang ada hingga Anda menghentikan replikasi indeks tersebut.

Hapus aturan replikasi dari domain pengikut:

DELETE _plugins/_replication/_autofollow { "leader_alias" : "connection-alias", "name": "rule-name" }

Meningkatkan domain yang terhubung

Untuk meningkatkan versi mesin dari dua domain yang memiliki koneksi lintas-cluster, tingkatkan domain pengikut terlebih dahulu dan kemudian domain pemimpin. Jangan hapus koneksi di antara mereka, jika tidak replikasi berhenti dan Anda tidak akan dapat melanjutkannya.